diff --git a/DRAFT_CHANGELOG.md b/DRAFT_CHANGELOG.md
index 62a10b3d6..3558f40c4 100644
--- a/DRAFT_CHANGELOG.md
+++ b/DRAFT_CHANGELOG.md
@@ -5,6 +5,9 @@
## Summary
+* divers correctifs sur le build par modules
+* MaJ des fichiers de styles MapBox (conformes au spec)
+
## Changelog
* [Added]
@@ -23,15 +26,6 @@
---
-
-
-
-
-
-
-
-
-
# Extension Geoportail Leaflet, version __VERSION__
**__DATE__**
@@ -58,13 +52,6 @@ Ajout possible de couches à accès restreint via une fichier de configuration c
---
-
-
-
-
-
-
-
# Extension Geoportail Itowns, version __VERSION__
**__DATE__**
diff --git a/build/webpack/webpack.config.openlayers.modules.js b/build/webpack/webpack.config.openlayers.modules.js
index 8359c9709..c652431e7 100644
--- a/build/webpack/webpack.config.openlayers.modules.js
+++ b/build/webpack/webpack.config.openlayers.modules.js
@@ -99,32 +99,44 @@ module.exports = (env, argv) => {
if (/^ol\/.+$/.test(request)) {
// liste des modules ES6 à garder dans le code...
if ([
- "ol/events/Event",
"ol/events/EventType",
+ "ol/events/EventType.js",
"ol/events",
- "ol/obj",
- "ol/render/canvas",
- "ol/css",
- "ol/dom",
- "ol/transform",
- "ol/asserts",
- "ol/AssertionError",
- "ol/util",
- "ol/render/canvas/LabelCache",
- "ol/structs/LRUCache",
- "ol/events/Target",
- "ol/Disposable",
- "ol/functions",
- "ol/proj/transforms"
+ "ol/events.js",
+ "ol/render/Feature",
+ "ol/render/Feature.js",
+ // "ol/obj",
+ // "ol/css",
+ // "ol/dom",
+ // "ol/transform",
+ // "ol/asserts",
+ // "ol/AssertionError",
+ // "ol/util",
+ // "ol/render/canvas/LabelCache",
+ // "ol/structs/LRUCache",
+ // "ol/events/Event",
+ // "ol/events/Target",
+ // "ol/Disposable",
+ // "ol/functions",
+ // "ol/proj/transforms"
].includes(request)) {
- // console.log("#### IN : ", request);
+ if (devMode) {
+ console.log("#### MODULE ES6 ONLY : " + request + " (" + context + ")");
+ }
return callback();
}
- // console.log("#### OUT : ", request);
- const replacedWith = request.replace(/\//g, '.');
+ if (devMode) {
+ console.log("#### OL : " + request + " (" + context + ")");
+ }
+ const replacedWith = request.replace(/\.js$/g, '').replace(/\//g, '.');
+ if (devMode) {
+ console.log(">>> : ", replacedWith);
+ }
return callback(null, replacedWith);
}
- // console.log("#### NULL : ", request);
+ if (devMode) {
+ console.log("#### OTHER : " + request + " (" + context + ")");
+ }
callback();
},
/**
diff --git a/jsdoc.1689959507162.conf.tmp b/jsdoc.1689959507162.conf.tmp
deleted file mode 100644
index 188bbc969..000000000
--- a/jsdoc.1689959507162.conf.tmp
+++ /dev/null
@@ -1 +0,0 @@
-{"tags":{"allowUnknownTags":true},"plugins":["plugins/markdown"],"source":{"include":["./src/OpenLayers","./src/Common","./build/jsdoc/README-openlayers.md"]},"templates":{"cleverLinks":false,"applicationName":"Geoportal Extension for OpenLayers","monospaceLinks":false,"dateFormat":"ddd MMM Do YYYY","outputSourceFiles":true,"outputSourcePath":true,"systemName":"Geoportal Extension for OpenLayers","footer":"API Reference","copyright":"Geoportail - Copyright (c) IGN, released under the CECILL-B license","navType":"inline","theme":"darkly","linenums":true,"collapseSymbols":true,"inverseNav":true,"highlightTutorialCode":false,"syntaxTheme":"default"},"markdown":{"parser":"gfm","hardwrap":true},"opts":{"template":"./build/jsdoc/jaguarjs-jsdoc","encoding":"utf8","destination":"./jsdoc/openlayers","recurse":true,"lenient":true,"verbose":true}}
\ No newline at end of file
diff --git a/samples-src/pages/openlayers/Editor/pages-ol-editor-modules-test.html b/samples-src/pages/openlayers/Editor/pages-ol-editor-modules-test.html
index 1f31e1820..d8077cdbe 100644
--- a/samples-src/pages/openlayers/Editor/pages-ol-editor-modules-test.html
+++ b/samples-src/pages/openlayers/Editor/pages-ol-editor-modules-test.html
@@ -50,7 +50,22 @@
+
+
+
Ajout d'une couche MapBox
+
+
+
+
+ Appliquer un style
-{{/content}}
-
-{{#content "js"}}
-
-{{/content}}
-
-{{/extend}}
+ });
+
+ };
+
+
+
+
+
+
diff --git a/samples-src/resources/data/mapbox/styles/planign/accentue.json b/samples-src/resources/data/mapbox/styles/planign/accentue.json
index b8d3be593..6ee6b2067 100644
--- a/samples-src/resources/data/mapbox/styles/planign/accentue.json
+++ b/samples-src/resources/data/mapbox/styles/planign/accentue.json
@@ -1,8567 +1,10727 @@
-{
- "version": 8,
- "name": "PLAN IGN",
- "sprite": "https://wxs.ign.fr/static/vectorTiles/styles/PLAN.IGN/sprite/PlanIgn",
- "sources": {
- "plan_ign": {
- "type": "vector",
- "url": "https://wxs.ign.fr/choisirgeoportail/geoportail/tms/1.0.0/PLAN.IGN/metadata.json"
- }
- },
- "transition": {
- "duration": 300,
- "delay": 0
- },
- "layers": [
- {
- "id": "bckgrd",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "fond_opaque",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 0m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_0"],
- "paint": {
- "fill-color": "#A9C96F",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 100m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_100"],
- "paint": {
- "fill-color": "#E2D07A",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 200m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_200"],
- "paint": {
- "fill-color": "#D2B46E",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 1000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_1000"],
- "paint": {
- "fill-color": "#C29353",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 3000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_3000"],
- "paint": {
- "fill-color": "#8E624E",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 4000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_4000"],
- "paint": {
- "fill-color": "#77503F",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 5000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_5000"],
- "paint": {
- "fill-color": "#592B20",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - glacier",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","GLACIER"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-opacity": 0.7
- }
- },
- {
- "id": "ocs - vegetation - zone boiséee, foret fermee, peupleraie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ZONE_BOISEE",
- "ZONE_FORET_FERMEE_FEUIL",
- "ZONE_FORET_FERMEE_CONI",
- "ZONE_FORET_FERMEE_MIXTE",
- "ZONE_PEUPLERAIE"
- ],
- "paint": {
- "fill-color": "#A8C18D",
- "fill-outline-color": "#A8C18D"
- }
- },
- {
- "id": "ocs - vegetation - forêt ouverte",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ZONE_FORET_OUVERTE"
- ],
- "paint": {
- "fill-color": "#C4D584",
- "fill-outline-color": "#C4D584"
- }
- },
- {
- "id": "ocs - vegetation - lande ligneuse",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_LANDE_LIGNEUSE"],
- "paint": {
- "fill-color": "#DBD074"
- }
- },
- {
- "id": "ocs - vegetation - vigne",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_VIGNE"],
- "paint": {
- "fill-color": "#FFB563"
- }
- },
- {
- "id": "ocs - vegetation - verger",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_VERGER"],
- "paint": {
- "fill-color": "#F1AF5E"
- }
- },
- {
- "id": "ocs - vegetation - canne à sucre, bananeraie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_CANNE_BANANE"],
- "paint": {
- "fill-color": "#DF8EDF"
- }
- },
- {
- "id": "hydro surfacique - Estran",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "hydro_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_D_ESTRAN"],
- "paint": {
- "fill-color": "#75B0CC",
- "fill-outline-color": "#75B0CC"
- }
- },
- {
- "id": "ocs - vegetation - mangrovre",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_MANGROVE"],
- "paint": {
- "fill-color": {"stops": [[9, "#4BB2B1"], [10, "#54B1AF"]]}
- }
- },
- {
- "id": "ocs - vegetation - marais",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_MARAIS"],
- "paint": {
- "fill-pattern": "Marais"
- }
- },
- {
- "id": "ocs - vegetation - marais salant",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_MARAIS_SALANT"],
- "paint": {
- "fill-pattern": "MaraisSalant"
- }
- },
- {
- "id": "ocs - Zone",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_ROCHEUSE"],
- "paint": {
- "fill-color": "#9C9C9C",
- "fill-opacity": 0.3
- }
- },
- {
- "id": "ocs - Zone sable sec",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_SABLE_SEC"],
- "paint": {
- "fill-pattern": "Sable"
- }
- },
- {
- "id": "ocs - Zone sable humide",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ZONE_SABLE_HUMIDE",
- "FOND_CUVETTE_HUMIDE"
- ],
- "paint": {
- "fill-pattern": "SableHumide"
- }
- },
- {
- "id": "ocs - Zone graviers galets secs",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","GRAVIERS_GALETS_SEC"],
- "paint": {
- "fill-pattern": "GravierSec"
- }
- },
- {
- "id": "ocs - Zone graviers galets humides",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","GRAVIERS_GALETS_HUM"],
- "paint": {
- "fill-pattern": "Gravier"
- }
- },
- {
- "id": "ocs - Zone rocher hydro",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_ROCHER_HYDRO"],
- "paint": {
- "fill-pattern": "RocherHydro"
- }
- },
- {
- "id": "ocs - Zone glacier",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_GLACIER"],
- "paint": {
- "fill-pattern": "Glacier",
- "fill-opacity": {"stops": [[10, 0.5], [12, 0.3]]}
- }
- },
- {
- "id": "zone batie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zone_surf",
- "minzoom": 7,
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_BATI"],
- "paint": {
- "fill-color": "#C3B488",
- "fill-opacity": {"stops": [[12, 1], [13, 0.9], [14, 0.5]]}
- }
- },
- {
- "id": "zone d'activité",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zone_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_INDUS_ACTI"],
- "paint": {
- "fill-color": "#A3A3A3"
- }
- },
- {
- "id": "oro - courbe et cuvette maitresse",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_MAITRESSE",
- "CUVETTE_MAITRESSE"
- ],
- "paint": {
- "line-color": "#BB9D66",
- "line-width": {
- "stops": [[13, 1.7], [15, 2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_NORMALE",
- "CUVETTE_NORMALE"
- ],
- "paint": {
- "line-color": "#BB9D66",
- "line-width": {
- "stops": [[13, 1], [15, 1.2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette intercalaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_INTERCALAIRE",
- "CUVETTE_INTERCAL",
- "CNV_SS_INTERCALAIRE"
- ],
- "paint": {
- "line-color": "#BB9D66",
- "line-width": 0.7,
- "line-dasharray": [20,7]
- }
- },
- {
- "id": "oro - courbe et cuvette glacier maitresse",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_GLACIER_MAITRESSE",
- "CUV_GLACIER_MAITRESSE"
- ],
- "paint": {
- "line-color": "#618FBD",
- "line-width": {
- "stops": [[13, 1.7], [15, 2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette glacier normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_GLACIER_NORMALE",
- "CUV_GLACIER_NORMALE"
- ],
- "paint": {
- "line-color": "#618FBD",
- "line-width": {
- "stops": [[13, 1], [15, 1.2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette glacier intercalaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_GLACIER_INTERCAL",
- "CUV_GLACIER_INTERCAL"
- ],
- "paint": {
- "line-color": "#618FBD",
- "line-width": {
- "stops": [[13, 0.7], [15, 0.9]]
- },
- "line-dasharray": [20,7]
- }
- },
- {
- "id": "oro - courbe et cuvette rocher maitresse",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_ROCHER_MAITRESSE",
- "CUV_ROCHER_MAITRESSE"
- ],
- "paint": {
- "line-color": "#808080",
- "line-width": 1.7
- }
- },
- {
- "id": "oro - courbe et cuvette rocher normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_ROCHER_NORMALE",
- "CUV_ROCHER_NORMALE"
- ],
- "paint": {
- "line-color": "#808080",
- "line-width": 1
- }
- },
- {
- "id": "oro - courbe et cuvette rocher intercalaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_ROCHER_INTERCAL",
- "CUV_ROCHER_INTERCAL"
- ],
- "paint": {
- "line-color": "#808080",
- "line-width": {
- "stops": [[13, 0.7], [15, 0.9]]
- },
- "line-dasharray": [20,7]
- }
- },
- {
- "id": "oro - courbe et cuvette bathymetrique",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_BATHYMETRIQUE",
- "CUV_BATHYMETRIQUE"
- ],
- "paint": {
- "line-color": "#0000BF",
- "line-width": 1
- }
- },
- {
- "id": "oro lin - talus",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_lin",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","TALUS"],
- "paint": {
- "line-color": "#BB9D66",
- "line-width": 1
- }
- },
- {
- "id": "oro lin - talus - trait perpendiculaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_lin",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","TALUS"],
- "paint": {
- "line-color": "#BB9D66",
- "line-width": {
- "stops": [[14, 7], [16, 9]]
- },
- "line-dasharray": [0.1,1],
- "line-translate": [0,4]
- }
- },
- {
- "id": "toponyme - cote de courbe normale",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "minzoom":13,
- "maxzoom":16,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 10], [15, 13]]},
- "text-anchor": "center",
- "text-rotation-alignment":"map",
- "text-pitch-alignment": "viewport",
- "text-keep-upright": false,
- "text-max-angle": 20,
- "text-max-width": 100,
- "text-font": ["Source Sans Pro Italic"]
- },
- "filter": ["all",
- ["!=","texte","0"],
- ["==","hors_zone","true"],
- ["in","symbo",
- "CNV_MAITRESSE",
- "CUVETTE_MAITRESSE"
- ]
- ],
- "paint": {
- "text-color": "#483723",
- "text-halo-width": 0.5,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - cote de courbe rocher",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "minzoom":13,
- "maxzoom":16,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 10], [15, 13]]},
- "text-anchor": "center",
- "text-rotation-alignment":"map",
- "text-pitch-alignment": "viewport",
- "text-keep-upright": false,
- "text-max-angle": 20,
- "text-max-width": 100,
- "text-font": ["Source Sans Pro Italic"]
- },
- "filter": ["all",
- ["!=","texte","0"],
- ["==","hors_zone","true"],
- ["in","symbo",
- "CNV_ROCHER_MAITRESSE",
- "CUV_ROCHER_MAITRESSE"
- ]
- ],
- "paint": {
- "text-color": "#262626",
- "text-halo-width": 0.5,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - cote de courbe glacier",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "minzoom":13,
- "maxzoom":16,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 10], [15, 13]]},
- "text-anchor": "center",
- "text-rotation-alignment":"map",
- "text-pitch-alignment": "viewport",
- "text-keep-upright": false,
- "text-max-angle": 20,
- "text-max-width": 100,
- "text-font": ["Source Sans Pro Italic"]
- },
- "filter": ["all",
- ["!=","texte","0"],
- ["==","hors_zone","true"],
- ["in","symbo",
- "CNV_GLACIER_MAITRESSE",
- "CUV_GLACIER_MAITRESSE"
- ]
- ],
- "paint": {
- "text-color": "#2E77BE",
- "text-halo-width": 0.5,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "hydro surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "hydro_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "SURFACE_D_EAU",
- "BASSIN",
- "ZONE_MARINE"
- ],
- "paint": {
- "fill-color": "#5AADD4",
- "fill-outline-color": "#5AADD4"
- }
- },
- {
- "id": "hydro surfacique temporaire",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "hydro_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","SURFACE_D_EAU_TEMP"],
- "paint": {
- "fill-color": "rgba(99, 161, 192, 0.5)"
- }
- },
- {
- "id": "réseau hydro - cours d'eau souterrain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "COURS_D_EAU_SOU",
- "COURS_D_EAU_MOY_SOU"
- ],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 1.5], [17, 6.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "réseau hydro - filet interieur - aqueduc souterrain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SOU"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 1.4], [16, 3.5], [17, 5.9]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "réseau hydro - carre - aqueduc souterrain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sou",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SOU"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 3.5], [16, 8.7], [17, 14.7]]
- },
- "line-dasharray": [1,5]
- }
- },
- {
- "id": "Ferre souterrain - voie normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SOU",
- "VF_2_SOU",
- "VF_ELEC_1_SOU",
- "VF_FERRO_ROUTIER_SOU"
- ],
- "paint": {
- "line-color": "#878787",
- "line-width": {
- "stops": [[10, 0.8], [17, 2.5]]
- }
- }
- },
- {
- "id": "Ferre souterrain - trait perpendic épais",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SOU",
- "VF_2_SOU",
- "VF_ELEC_1_SOU",
- "VF_FERRO_ROUTIER_SOU"
- ],
- "paint": {
- "line-color": "#878787",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre souterrain - voie etroite",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SOU",
- "VF_ETROITE_SOU"
- ],
- "paint": {
- "line-color": "#878787",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre souterrain - trait perpendic fin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SOU",
- "VF_ETROITE_SOU"
- ],
- "paint": {
- "line-color": "#878787",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre souterrain - voie service",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_SERVICE_SOU",
- "VF_NON_EXPLOITEE_SOU"
- ],
- "paint": {
- "line-color": "#878787",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [5,2,1,2]
- }
- },
- {
- "id": "Ferre souterrain - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SOU",
- "TRANSPORT_URBAIN_SOU"
- ],
- "paint": {
- "line-color": "#878787",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre souterrain - 2 trait perpendic - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SOU",
- "TRANSPORT_URBAIN_SOU"
- ],
- "paint": {
- "line-color": "#878787",
- "line-width": {
- "stops": [[10, 3.5], [17, 17]]
- },
- "line-dasharray": [0.1,0.2,0.1,10]
- }
- },
- {
- "id": "Chemin souterrain - piste cyclable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PISTE_CYCLABLE_SOU"],
- "paint": {
- "line-color": "#8348B2",
- "line-width": {
- "stops": [[14, 1.1], [15, 1.7], [16, 2], [17, 3.5]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "Chemin souterrain - filet exterieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SOU"],
- "paint": {
- "line-color": "#8F696C",
- "line-width": {
- "stops": [[14, 1.75], [15, 3], [16, 4.2], [17, 9.5]]
- }
- }
- },
- {
- "id": "Chemin souterrain - filet interieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SOU"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 1], [15, 1.9], [16, 2.7], [17, 5.8]]
- },
- "line-dasharray": [1,0.2]
- }
- },
- {
- "id": "Chemin souterrain - Rue pietonne",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","RUE_PIETONNE_SOU"],
- "paint": {
- "line-color": "#8F696C",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- },
- "line-dasharray": [1,3]
- }
- },
- {
- "id": "Chemin souterrain - sentier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","SENTIER_SOU"],
- "paint": {
- "line-color": "#8F696C",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- },
- "line-dasharray": [4,3]
- }
- },
- {
- "id": "Chemin souterrain - chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CHEMIN_SOU"],
- "paint": {
- "line-color": "#8F696C",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SOU"],
- "paint": {
- "line-color": "#838383",
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SOU",
- "BRET_AUTO_PEAGE_2_SOU",
- "BRET_AUTO_PEAGE_1_SOU",
- "BRET_AUTO_LIBRE_3_SOU",
- "BRET_AUTO_LIBRE_2_SOU",
- "BRET_AUTO_LIBRE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(167, 53, 10, 0.5)",
- "line-width": {
- "stops": [[12, 2.5], [14, 3.7], [15, 6.8], [16, 8.4], [17, 14]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SOU"],
- "paint": {
- "line-color": "#838383",
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SOU",
- "NON_CLASSEE_SOU"
- ],
- "paint": {
- "line-color": "#838383",
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SOU",
- "LOCALE_4_SOU",
- "LOCALE_3_SOU",
- "LOCALE_2_SOU",
- "LOCALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(97, 97, 97, 0.5)",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SOU"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SOU",
- "REGIONALE_4_SOU",
- "REGIONALE_3_SOU",
- "REGIONALE_2_SOU",
- "REGIONALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(97, 97, 97, 0.5)",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SOU"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 7,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SOU",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(167, 53, 10, 0.5)",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SOU"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 7,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SOU",
- "AUTOROU_LIBRE_SOU"
- ],
- "paint": {
- "line-color": "rgba(167, 53, 10, 0.5)",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SOU"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SOU"],
- "paint": {
- "line-color": "#A5A5A5",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SOU",
- "BRET_AUTO_PEAGE_2_SOU",
- "BRET_AUTO_PEAGE_1_SOU",
- "BRET_AUTO_LIBRE_3_SOU",
- "BRET_AUTO_LIBRE_2_SOU",
- "BRET_AUTO_LIBRE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[12, 1.5], [14, 2.6], [15, 5.2], [16, 6.7], [17, 10.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SOU"],
- "paint": {
- "line-color": "#7695FF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SOU",
- "NON_CLASSEE_SOU"
- ],
- "paint": {
- "line-color": "#A5A5A5",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SOU",
- "LOCALE_4_SOU",
- "LOCALE_3_SOU",
- "LOCALE_2_SOU",
- "LOCALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[9, 1.3], [14, 2.3], [15, 4.1], [16, 6.1], [17, 13.1]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SOU"],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#F9E742"], [17, "#F7E957"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- },
- "line-dasharray": [2, 2]
-
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SOU",
- "REGIONALE_4_SOU",
- "REGIONALE_3_SOU",
- "REGIONALE_2_SOU",
- "REGIONALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[6, 1.4], [9, 1.5], [14, 3.2], [15, 5.8], [16, 8.3], [17, 16.2]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SOU"],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#FBE72B"], [17, "#F7E854"]]
- },
- "line-width": {
- "stops": [[4, 0.4], [6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SOU",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.1], [14, 4.4], [15, 7.3], [16, 10], [17, 18.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SOU"],
- "paint": {
- "line-color": {"stops": [[9, "#ECA61C"], [17, "#E3B559"]]},
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - filet interieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SOU",
- "AUTOROU_LIBRE_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 2.7], [14, 5.8], [15, 9], [16, 12], [17, 20.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - axe central - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SOU",
- "AUTOROU_LIBRE_SOU"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SOU"],
- "paint": {
- "line-color": {"stops": [[9, "#E69912"], [17, "#EBA413"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - axe central - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SOU"],
- "paint": {
- "line-color": "#606060",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "réseau hydro - cours d'eau temporaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo","COURS_D_EAU_TEMP","COURS_D_EAU_TEMP_MOY"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 1.5], [17, 4]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "réseau hydro - cours d'eau",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "minzoom": 3,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","COURS_D_EAU"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[4, 0.3], [7, 1.5], [12, 1.5], [17, 6.5]]
- }
- }
- },
- {
- "id": "réseau hydro - canal",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CANAL"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 1.4], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - filet interieur - aqueduc",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_AU_SOL"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 1.4], [16, 3.5], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - carre - aqueduc",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_AU_SOL"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 3.5], [16, 8.7], [17, 14.7]]
- },
- "line-dasharray": [1,5]
- }
- },
- {
- "id": "réseau hydro - cours d'eau moyen ",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","COURS_D_EAU_MOY"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[7, 2], [12, 2.5]]
- }
- }
- },
- {
- "id": "réseau hydro - cours d'eau large ",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","COURS_D_EAU_LAR"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[7, 3], [11, 5]]
- }
- }
- },
- {
- "id": "parcellaire - parcelle surface",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "parcellaire_parcelle",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PARCELLE"],
- "paint": {
- "fill-color": "#FFFF9C",
- "fill-opacity": 0.7
- }
- },
- {
- "id": "bati surfacique mairie - Zoom 14",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "MAIRIE",
- "MAIRIE_ANNEXE"
- ],
- "paint": {
- "fill-color": "#FF3D3D"
- }
- },
- {
- "id": "bati surfacique mairie - Zoom 15,16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "MAIRIE",
- "MAIRIE_ANNEXE"
- ],
- "paint": {
- "fill-color": {"stops": [[14, "#FF3D3D"], [15, "#FF4343"]]},
- "fill-outline-color": "#FF1D1D"
- }
- },
- {
- "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 14,15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_COMMERCIAL",
- "BATI_INDUSTRIEL",
- "HANGAR",
- "HANGAR_COMMERCIAL",
- "HANGAR_INDUSTRIEL"
- ],
- "paint": {
- "fill-color": "#969696"
- }
- },
- {
- "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_COMMERCIAL",
- "BATI_INDUSTRIEL",
- "HANGAR",
- "HANGAR_COMMERCIAL",
- "HANGAR_INDUSTRIEL"
- ],
- "paint": {
- "fill-color": {
- "stops": [[15, "#9D9D9D"], [16, "#ADADAD"]]
- },
- "fill-outline-color": "#8A8A8A"
- }
- },
- {
- "id": "bati surfacique fonctionnel public - Zoom 14,15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_PUBLIC",
- "HANGAR_PUBLIC"
- ],
- "paint": {
- "fill-color": "#7C77B2"
- }
- },
- {
- "id": "bati surfacique fonctionnel public - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_PUBLIC",
- "HANGAR_PUBLIC"
- ],
- "paint": {
- "fill-color": {
- "stops": [[15, "#9882B8"], [16, "#A483D7"]]
- },
- "fill-outline-color": "#6860BA"
- }
- },
- {
- "id": "bati surfacique fonctionnel sportif - bordure",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","BATI_SPORTIF"],
- "paint": {
- "line-color": "#87BB68",
- "line-width": 4
- }
- },
- {
- "id": "bati surfacique fonctionnel sportif",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_SPORTIF"],
- "paint": {
- "fill-color": {
- "stops": [[14, "#85BBB2"], [15, "#9AB7B1"]]
- }
- }
- },
- {
- "id": "bati surfacique fonctionnel gare - Zoom 14,15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_GARE"],
- "paint": {
- "fill-color": "#5559E9"
- }
- },
- {
- "id": "bati surfacique fonctionnel gare - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_GARE"],
- "paint": {
- "fill-color": {
- "stops": [[15, "#6165E6"], [16, "#6D72E3"]]
- },
- "fill-outline-color": "#3F44EE"
- }
- },
- {
- "id": "bati surfacique quelconque - Zoom 15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_QQUE"],
- "paint": {
- "fill-color": "#B29379"
- }
- },
- {
- "id": "bati surfacique quelconque - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_QQUE"],
- "paint": {
- "fill-color": {
- "stops": [[15, "#C1B287"], [16, "#D2BF85"]]
- },
- "fill-outline-color": "#A58158"
- }
- },
- {
- "id": "cimetiere surfacique 1",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CIMETIERE_SURF",
- "CIMETIERE_MILI_SURF",
- "NECROPOLE_NATIONALE"
- ],
- "paint": {
- "fill-color": "#B4B4B4",
- "fill-opacity": 0.5,
- "fill-outline-color": "#616161"
- }
- },
- {
- "id": "cimetiere surfacique 2",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CIMETIERE_SURF",
- "CIMETIERE_MILI_SURF",
- "NECROPOLE_NATIONALE"
- ],
- "paint": {
- "fill-pattern": "Cimetiere"
- }
- },
- {
- "id": "bati hydro surfacique - Autre",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ECLUSE_SURF",
- "RESERVOIR_EAU_SURF"
- ],
- "paint": {
- "fill-color": "#6AA2BA",
- "fill-outline-color": "#264C73"
- }
- },
- {
- "id": "bati hydro surfacique - Pecherie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PECHERIE_SURF"],
- "paint": {
- "fill-color": "#68BADC",
- "fill-outline-color": "#1476DB"
- }
- },
- {
- "id": "bati hydro surfacique - Barrage",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BARRAGE_SURF"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#353535"
- }
- },
- {
- "id": "bati hydro surfacique - Chateau d'eau",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","CHATEAU_EAU_SURF"],
- "paint": {
- "fill-color": "#3479BD"
- }
- },
- {
- "id": "bati infra surfacique - Silo",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","SILO_SURF"],
- "paint": {
- "fill-color": "#A37173",
- "fill-outline-color": "#4F4F4F"
- }
- },
- {
- "id": "bati infra surfacique - Reservoir indus",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","RESERVOIR_INDUS_SURF"],
- "paint": {
- "fill-color": "#647686",
- "fill-outline-color": "#353535"
- }
- },
- {
- "id": "bati infra surfacique - Serre",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo","SERRE_SURF"],
- "paint": {
- "fill-color": "#8DA7AD",
- "fill-outline-color": "#696969"
- }
- },
- {
- "id": "bati infra surfacique - poste electrique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo","POSTE_ELEC_SURF"],
- "paint": {
- "fill-color": "#506C93",
- "fill-opacity": 0.3
- }
- },
- {
- "id": "bati infra surfacique - poste electrique bord",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","POSTE_ELEC_SURF"],
- "paint": {
- "line-color": "#000000",
- "line-width": {"stops": [[12, 0.3], [17, 1.2]]}
- }
- },
- {
- "id": "bati religieux surfacique - Zoom 14",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CHAPELLE_SURF",
- "EGLISE_SURF",
- "CHRETIEN_SURF",
- "SYNAGOGUE_SURF",
- "MOSQUEE_SURF",
- "AUTRE_CULTE_SURF"
- ],
- "paint": {
- "fill-color": "#E86A6A"
- }
- },
- {
- "id": "bati religieux surfacique - Zoom 15,16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CHAPELLE_SURF",
- "EGLISE_SURF",
- "CHRETIEN_SURF",
- "SYNAGOGUE_SURF",
- "MOSQUEE_SURF",
- "AUTRE_CULTE_SURF"
- ],
- "paint": {
- "fill-color": {"stops": [[14, "#E86A6A"], [15, "#DE8484"]]},
- "fill-outline-color": {"stops": [[14, "#EE4949"], [15, "#EC5656"]]}
- }
- },
- {
- "id": "bati remarquable surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "FORTIF_SURF",
- "CHATEAU_SURF",
- "TOUR_MOULIN_SURF",
- "ARENE_THEATRE",
- "ARC_TRIOMPHE_SURF",
- "MONUMENT_SURF"
- ],
- "paint": {
- "fill-color": "#747474",
- "fill-outline-color": "#535353"
- }
- },
- {
- "id": "bati sportif surfacique fond",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "TENNIS_SURF",
- "SPORT_INDIF_SURF",
- "FOOT_SURF",
- "MULTI_SPORT_SURF",
- "PISTE_SPORT_SURF",
- "NATATION_SURF"
- ],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#FFFFFF"
- }
- },
- {
- "id": "bati sportif surfacique",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "TENNIS_SURF",
- "SPORT_INDIF_SURF",
- "FOOT_SURF",
- "MULTI_SPORT_SURF",
- "PISTE_SPORT_SURF",
- "NATATION_SURF"
- ],
- "paint": {
- "line-color": "#87BB68",
- "line-width": 2
- }
- },
- {
- "id": "bati transport surfacique - piste",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "PISTE_DUR",
- "PISTE_HERBE"
- ],
- "paint": {
- "fill-color": "#A4A4A4",
- "fill-outline-color": "#606060"
-
- }
- },
- {
- "id": "bati ZAI - Autres",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zai",
- "minzoom":15,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","nature",
- "Lycée",
- "Université",
- "Capitainerie",
- "Gendarmerie",
- "Siège d'EPCI",
- "Musée",
- "Collège",
- "Maison de retraite",
- "Etablissement thermal",
- "Autre service déconcentré de l'Etat",
- "Etablissement pénitentiaire",
- "Divers public ou administratif",
- "Autre établissement d'enseignement",
- "Maison du parc",
- "Palais de justice",
- "Enseignement primaire",
- "Office de tourisme",
- "Hôpital",
- "Police",
- "Piscine",
- "Enseignement supérieur",
- "Poste",
- "Caserne",
- "Etablissement hospitalier",
- "Etablissement extraterritorial",
- "Science",
- "Structure d'accueil pour personnes handicapées",
- "Administration centrale de l'Etat",
- "Caserne de pompiers"
- ],
- "paint": {
- "fill-color": "#C376C1",
- "fill-opacity": 0.5,
- "fill-outline-color": "#CD54C9"
- }
- },
- {
- "id": "bati ZAI - Commandement",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zai",
- "minzoom":15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","nature",
- "Hôtel de département",
- "Hôtel de région",
- "Préfecture de région",
- "Préfecture",
- "Sous-préfecture"
- ],
- "paint": {
- "fill-color": "#BF0000",
- "fill-opacity": 0.3,
- "fill-outline-color": "#870000"
- }
- },
- {
- "id": "construction linéaire - mur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","MUR"],
- "paint": {
- "line-color": "#696969",
- "line-width": 0.3
- }
- },
- {
- "id": "construction linéaire - autre",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "RUINE_LIN",
- "MUR_SOUTENEMENT",
- "FORTIF_LIN"
- ],
- "paint": {
- "line-color": "#4B4B4B",
- "line-width": 0.5
- }
- },
- {
- "id": "construction hydrographique linéaire - Barrage",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","BARRAGE_LIN"],
- "paint": {
- "line-color": "#4B4B4B",
- "line-width": {"stops": [[13, 1.5], [17, 5]]}
- }
- },
- {
- "id": "construction hydrographique linéaire - Quai",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "QUAI",
- "DIGUE"
- ],
- "paint": {
- "line-color": "#616161",
- "line-width": {"stops": [[14, 1], [17, 2.5]]}
- }
- },
- {
- "id": "construction hydrographique linéaire - Pecherie",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PECHERIE_LIN"],
- "paint": {
- "line-color": "#004C99",
- "line-width": {"stops": [[14, 1], [17, 2.5]]}
- }
- },
- {
- "id": "Chemin a niveau - piste cyclable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PISTE_CYCLABLE"],
- "paint": {
- "line-color": {"stops": [[17, "#7635A9"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1.1], [15, 1.7], [16, 2], [17, 3.5], [18, 6]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "Chemin a niveau - filet exterieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER"],
- "paint": {
- "line-color": {"stops": [[17, "#695657"], [18, "#969696"]]},
- "line-width": {
- "stops": [[14, 1.75], [15, 3], [16, 4.2], [17, 9.5]]
- }
- }
- },
- {
- "id": "Chemin a niveau - filet interieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 1], [15, 1.9], [16, 2.7], [17, 5.8]]
- },
- "line-dasharray": [1,0.2]
- }
- },
- {
- "id": "Chemin a niveau - Rue pietonne",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","RUE_PIETONNE"],
- "paint": {
- "line-color": {"stops": [[17, "#695657"], [18, "#E8A872"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 5]]
- },
- "line-dasharray": [1,3]
- }
- },
- {
- "id": "Chemin a niveau - sentier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","SENTIER"],
- "paint": {
- "line-color": {"stops": [[17, "#695657"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 6]]
- },
- "line-dasharray": [4,3]
- }
- },
- {
- "id": "Chemin a niveau - chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CHEMIN"],
- "paint": {
- "line-color": {"stops": [[17, "#695657"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 7]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO"],
- "paint": {
- "line-color": {"stops": [[12, "#4B4B4B"], [17, "#696969"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5], [18, 16.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3",
- "BRET_AUTO_PEAGE_2",
- "BRET_AUTO_PEAGE_1",
- "BRET_AUTO_LIBRE_3",
- "BRET_AUTO_LIBRE_2",
- "BRET_AUTO_LIBRE_1"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#A7350A"], [17, "#B56600"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[12, 2.5], [14, 3.7], [15, 6.8], [16, 8.4], [17, 14]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT"],
- "paint": {
- "line-color": {"stops": [[17, "#717171"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4",
- "NON_CLASSEE"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#717171"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 7,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE",
- "LOCALE_4",
- "LOCALE_3",
- "LOCALE_2",
- "LOCALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[12, "#696969"], [13, "#878787"], [17, "#878787"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE",
- "REGIONALE_4",
- "REGIONALE_3",
- "REGIONALE_2",
- "REGIONALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[9, "#616161"], [10, "#878787"], [17, "#878787"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE",
- "PRINCIPALE_4",
- "PRINCIPALE_3",
- "PRINCIPALE_2",
- "PRINCIPALE_1"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#B17E18"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE",
- "AUTOROU_LIBRE"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#A7350A"], [17, "#B56600"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3",
- "BRET_AUTO_PEAGE_2",
- "BRET_AUTO_PEAGE_1",
- "BRET_AUTO_LIBRE_3",
- "BRET_AUTO_LIBRE_2",
- "BRET_AUTO_LIBRE_1"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#B56600"], [17, "#CD8D0D"]]},
- "line-width": {
- "stops": [[12, 1.5], [14, 2.6], [15, 5.2], [16, 6.7], [17, 10.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT"],
- "paint": {
- "line-color": "#D1DBFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4",
- "NON_CLASSEE"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE",
- "LOCALE_4",
- "LOCALE_3",
- "LOCALE_2",
- "LOCALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[6, "#EB8D13"],[7, "#FFFFFF"], [12, "#FFFFFF"], [13, "#F9E742"], [17, "#F7E957"]]
- },
- "line-width": {
- "stops": [[9, 1.3], [14, 2.3], [15, 4.1], [16, 6.1], [17, 13.1]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 11,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR"],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#F9E742"], [17, "#F7E957"], [18, "#B2B2B2"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- },
- "line-dasharray": [2, 2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE",
- "REGIONALE_4",
- "REGIONALE_3",
- "REGIONALE_2",
- "REGIONALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[6, "#DC8410"], [7, "#FFFFFF"], [9, "#FFFFFF"], [10, "#FBE72B"], [17, "#F7E854"]]
- },
- "line-width": {
- "stops": [[4, 1.1], [6, 1.4], [9, 1.5], [14, 3.2], [15, 5.8], [16, 8.3], [17, 16.2]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR"],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#FBE72B"], [17, "#F7E854"], [18, "#B2B2B2"]]
- },
- "line-width": {
- "stops": [[4, 0.4], [6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE",
- "PRINCIPALE_4",
- "PRINCIPALE_3",
- "PRINCIPALE_2",
- "PRINCIPALE_1"
- ],
- "paint": {
- "line-color": {"stops": [[6, "#C5750C"], [7, "#ECA61C"], [9, "#ECA61C"], [17, "#E3B559"]]},
- "line-width": {
- "stops": [[4, 0.6], [6, 1.8], [9, 2.1], [14, 4.4], [15, 7.3], [16, 10], [17, 18.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR"],
- "paint": {
- "line-color": {"stops": [[9, "#ECA61C"], [17, "#E3B559"], [18, "#B2B2B2"]]},
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE",
- "AUTOROU_LIBRE"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#B56600"], [17, "#CD8D0D"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 2.7], [14, 5.8], [15, 9], [16, 12], [17, 20.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - axe central - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE",
- "AUTOROU_LIBRE"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR"],
- "paint": {
- "line-color": {"stops": [[9, "#B56600"], [17, "#CD8D0D"], [18, "#B2B2B2"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - axe centrale - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR"],
- "paint": {
- "line-color": "#606060",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Ferre a niveau - voie normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1",
- "VF_2",
- "VF_3",
- "VF_4",
- "VF_ELEC_1",
- "VF_ELEC_2",
- "VF_ELEC_3",
- "VF_ELEC_4"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.8], [17, 2.5]]
- }
- }
- },
- {
- "id": "Ferre a niveau - voie normale trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1",
- "VF_2",
- "VF_3",
- "VF_4",
- "VF_ELEC_1",
- "VF_ELEC_2",
- "VF_ELEC_3",
- "VF_ELEC_4"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre a niveau - voie etroite",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1",
- "VF_ETROITE_2",
- "VF_ETROITE"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre a niveau - voie etroite trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1",
- "VF_ETROITE_2",
- "VF_ETROITE"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre a niveau - voie service",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_SERVICE",
- "VF_NON_EXPLOITEE"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [5,2,1,2]
- }
- },
- {
- "id": "Ferre a niveau - voie en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR"],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Ferre a niveau - voie en construction trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR"],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre a niveau - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE",
- "TRANSPORT_URBAIN"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre a niveau - 2 trait perpendic - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE",
- "TRANSPORT_URBAIN"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 3.5], [17, 17]]
- },
- "line-dasharray": [0.1,0.2,0.1,10]
- }
- },
- {
- "id": "liaison routiere - Bac Liaison Maritime",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "minzoom": 8,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BAC_AUTO",
- "LIAISON_MARITIME",
- "BAC_LIAISON_MARITIME"
- ],
- "paint": {
- "line-color": "#386E9B",
- "line-width": {
- "stops": [[8, 1], [13, 2.5]]
- }
- }
- },
- {
- "id": "liaison routiere - Gue route",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","GUE_ROUTE"],
- "paint": {
- "line-color": {
- "stops": [[13, "#8E8E8E"], [17, "#4B4B4B"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "liaison routiere - Gue chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","GUE_CHEMIN"],
- "paint": {
- "line-color": {
- "stops": [[13, "#8E8E8E"], [17, "#4B4B4B"]]
- },
- "line-width": {
- "stops": [[14, 1.6], [15, 2.9], [16, 4.4], [17, 6.5]]
- }
- }
- },
- {
- "id": "liaison routiere - filet extérieur - Pont passerelle",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "PONT_PASSERELLE",
- "PONT_LIN",
- "PONT_MOBILE_LIN"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#969696"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 2.2], [15, 3.8], [16, 5.4], [17, 11.8]]
- }
- }
- },
- {
- "id": "liaison routiere - filet intérieur - Pont passerelle",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "PONT_PASSERELLE",
- "PONT_LIN",
- "PONT_MOBILE_LIN"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 0.7], [15, 1.1], [16, 1.7], [17, 3.8]]
- }
- }
- },
- {
- "id": "Routier surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "SURF_ROUT_PRINC",
- "SURF_ROUT_REG",
- "SURF_ROUT_LOC",
- "SURF_ROUT_NON_CLA"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#000000"
- }
- },
- {
- "id": "Routier surfacique - Dalle de protection",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","DALLE_DE_PROTECTION"],
- "paint": {
- "fill-opacity": 0.5,
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#000000"
- }
- },
- {
- "id": "Routier surfacique - Escalier surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ESCALIER_SURF"],
- "paint": {
- "fill-opacity": 0.8,
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#6E5F6E"
- }
- },
- {
- "id": "Routier surfacique - Péage surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","SURF_PEAGE"],
- "paint": {
- "fill-color": "#E4B351",
- "fill-outline-color": "#B17E18"
- }
- },
- {
- "id": "bati transport surfacique - bati peage",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_PEAGE"],
- "paint": {
- "fill-color": "#A5A5A5",
- "fill-outline-color": "#606060"
-
- }
- },
- {
- "id": "réseau hydro - cours d'eau superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "COURS_D_EAU_SUP",
- "COURS_D_EAU_MOY_SUP"
- ],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 1.5], [17, 6.5]]
- }
- }
- },
- {
- "id": "réseau hydro - canal superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CANAL_SUP"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 1.4], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - filet interieur - aqueduc superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SUP"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 1.4], [16, 3.5], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - carre - aqueduc superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SUP"],
- "paint": {
- "line-color": "#5AADD4",
- "line-width": {
- "stops": [[12, 3.5], [16, 8.7], [17, 14.7]]
- },
- "line-dasharray": [1,5]
- }
- },
- {
- "id": "Chemin superieur - piste cyclable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PISTE_CYCLABLE_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#7635A9"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1.1], [15, 1.7], [16, 2], [17, 3.5], [18, 6]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "Chemin superieur - filet exterieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#695657"], [18, "#969696"]]},
- "line-width": {
- "stops": [[14, 1.75], [15, 3], [16, 4.2], [17, 9.5]]
- }
- }
- },
- {
- "id": "Chemin superieur - filet interieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SUP"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 1], [15, 1.9], [16, 2.7], [17, 5.8]]
- },
- "line-dasharray": [1,0.2]
- }
- },
- {
- "id": "Chemin superieur - Rue pietonne",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","RUE_PIETONNE_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#695657"], [18, "#B0B0B0"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 5]]
- },
- "line-dasharray": [1,3]
- }
- },
- {
- "id": "Chemin superieur - sentier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","SENTIER_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#695657"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 6]]
- },
- "line-dasharray": [4,3]
- }
- },
- {
- "id": "Chemin superieur - chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CHEMIN_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#695657"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 7]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SUP"],
- "paint": {
- "line-color": {"stops": [[12, "#4B4B4B"], [17, "#696969"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - filet extérieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SUP",
- "BRET_AUTO_PEAGE_2_SUP",
- "BRET_AUTO_PEAGE_1_SUP",
- "BRET_AUTO_LIBRE_3_SUP",
- "BRET_AUTO_LIBRE_2_SUP",
- "BRET_AUTO_LIBRE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#A7350A"], [17, "#B56600"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[12, 2.5], [14, 3.7], [15, 6.8], [16, 8.4], [17, 14]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#717171"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#717171"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SUP",
- "LOCALE_4_SUP",
- "LOCALE_3_SUP",
- "LOCALE_2_SUP",
- "LOCALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[12, "#696969"], [13, "#878787"], [17, "#878787"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SUP"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SUP",
- "REGIONALE_4_SUP",
- "REGIONALE_3_SUP",
- "REGIONALE_2_SUP",
- "REGIONALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[9, "#616161"], [10, "#878787"], [17, "#878787"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SUP"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SUP",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#B17E18"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SUP"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SUP",
- "AUTOROU_LIBRE_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#A7350A"], [17, "#B56600"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SUP"],
- "paint": {
- "line-color": "#969696",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SUP"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5], [18, 16.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SUP",
- "BRET_AUTO_PEAGE_2_SUP",
- "BRET_AUTO_PEAGE_1_SUP",
- "BRET_AUTO_LIBRE_3_SUP",
- "BRET_AUTO_LIBRE_2_SUP",
- "BRET_AUTO_LIBRE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#B56600"], [17, "#CD8D0D"]]},
- "line-width": {
- "stops": [[12, 1.5], [14, 2.6], [15, 5.2], [16, 6.7], [17, 10.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SUP"],
- "paint": {
- "line-color": "#D1DBFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_SUP"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SUP",
- "LOCALE_4_SUP",
- "LOCALE_3_SUP",
- "LOCALE_2_SUP",
- "LOCALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#F9E742"], [17, "#F7E957"]]
- },
- "line-width": {
- "stops": [[9, 1.3], [14, 2.3], [15, 4.1], [16, 6.1], [17, 13.1]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SUP"],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#F9E742"], [17, "#F7E957"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- },
- "line-dasharray": [2, 2]
- }
- },
- {
- "id": "Routier superieur - filet interieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SUP",
- "REGIONALE_4_SUP",
- "REGIONALE_3_SUP",
- "REGIONALE_2_SUP",
- "REGIONALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#FBE72B"], [17, "#F7E854"]]
- },
- "line-width": {
- "stops": [[6, 1.4], [9, 1.5], [14, 3.2], [15, 5.8], [16, 8.3], [17, 16.2]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SUP"],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#FBE72B"], [17, "#F7E854"]]
- },
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - filet interieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SUP",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#ECA61C"], [17, "#E3B559"]]},
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.1], [14, 4.4], [15, 7.3], [16, 10], [17, 18.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SUP"],
- "paint": {
- "line-color": {"stops": [[9, "#ECA61C"], [17, "#E3B559"]]},
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - filet interieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SUP",
- "AUTOROU_LIBRE_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#B56600"], [17, "#CD8D0D"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 2.7], [14, 5.8], [15, 9], [16, 12], [17, 20.8]]
- }
- }
- },
- {
- "id": "Routier superieur - axe central - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SUP",
- "AUTOROU_LIBRE_SUP"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SUP"],
- "paint": {
- "line-color": {"stops": [[9, "#B56600"], [17, "#CD8D0D"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - axe centrale - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SUP"],
- "paint": {
- "line-color": "#606060",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Ferre superieur - voie normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SUP",
- "VF_2_SUP",
- "VF_ELEC_1_SUP"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.8], [17, 2.5]]
- }
- }
- },
- {
- "id": "Ferre superieur - voie normale trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SUP",
- "VF_2_SUP",
- "VF_ELEC_1_SUP"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre superieur - voie etroite",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SUP",
- "VF_ETROITE_SUP"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre superieur - voie etroite trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SUP",
- "VF_ETROITE_SUP"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre superieur - voie service",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_SERVICE_SUP",
- "VF_NON_EXPLOITEE_SUP"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [5,2,1,2]
- }
- },
- {
- "id": "Ferre superieur - voie en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR_SUP"],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Ferre superieur - voie en construction trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR_SUP"],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre superieur - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SUP",
- "TRANSPORT_URBAIN_SUP"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre superieur - 2 trait perpendic - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SUP",
- "TRANSPORT_URBAIN_SUP"
- ],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": {
- "stops": [[10, 3.5], [17, 17]]
- },
- "line-dasharray": [0.1,0.2,0.1,10]
- }
- },
- {
- "id": "Limite - cloture",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","CLOTURE"],
- "paint": {
- "line-color": "#000000",
- "line-width": {
- "stops": [[13, 0.6], [17, 1]]
- },
- "line-dasharray": [1.5, 4]
- }
- },
- {
- "id": "Limite - layon",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LAYON"],
- "paint": {
- "line-color": "#8F696C",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- },
- "line-dasharray": [4,7]
- }
- },
- {
- "id": "Zone Règlementee - Enceinte militaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ZONE_REGLEMENTEE",
- "LIM_ENCEINTE_MILITAIRE",
- "LIM_ENCEINTE_MILI",
- "LIM_CHAMP_TIR"
- ],
- "paint": {
- "line-color": "rgba(202, 83, 36, 0.8)",
- "line-width": {
- "stops": [[13, 1.7], [17, 3.1]]
- },
- "line-dasharray": [4, 1, 2, 5]
- }
- },
- {
- "id": "limite zone naturelle",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ZONE_NATURELLE",
- "LIM_ZONE_NATURELLE_ILE",
- "LIM_RESERVE_NATURELLE"
- ],
- "paint": {
- "line-color": "#FF526A",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 1]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 10",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "maxzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#327A4D",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 1]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 11",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 10,
- "maxzoom": 11,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#327A4D",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 2]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 12",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 11,
- "maxzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#327A4D",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 3]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 13",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 12,
- "maxzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#327A4D",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 4]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 14",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "rgba(47, 122, 77, 0.7)",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 5]
- }
- },
- {
- "id": "limite zone naturelle - Parc marin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_PARC_NATUREL_MARIN"],
- "paint": {
- "line-color": "#20607A",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 1]
- }
- },
- {
- "id": "parcellaire - parcelle bordure",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "parcellaire_parcelle",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PARCELLE"],
- "paint": {
- "line-color": "#7200E6",
- "line-width": 1
- }
- },
- {
- "id": "parcellaire - section",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "parcellaire_section",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","SECTION"],
- "paint": {
- "line-color": "#1E5C00",
- "line-width": 1.9,
- "line-dasharray": [2,4,2]
- }
- },
- {
- "id": "toponyme - parcellaire - section",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_parcellaire_section",
- "filter": ["==","txt_typo","SECTION"],
- "layout": {
- "symbol-placement": "line",
- "text-offset": [0, 0],
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#1E5C00"
- }
- },
- {
- "id": "toponyme - parcellaire - parcelle",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_parcellaire_parcelle",
- "filter": ["==","txt_typo","PARCELLE"],
- "layout": {
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Bold"]
- },
- "paint": {
- "text-color": "#7200E6",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - parcellaire - adresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_parcellaire_adresse_ponc",
- "filter": ["==","txt_typo","ADRESSE"],
- "layout": {
- "symbol-placement": "point",
- "text-field": ["concat","{numero}","{indice_de_repetition}"],
- "text-size": 11,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Bold"]
- },
- "paint": {
- "text-color": "#4F4133",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "limite admin - limite de commune",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_COMMUNE",
- "LIM_CANTON",
- "LIM_ARRONDISSEMENT"
- ],
- "paint": {
- "line-color": "rgba(85, 78, 149, 0.5)",
- "line-width": {
- "stops": [[13, 3], [17, 5.5]]
- },
- "line-dasharray": [4, 2, 1, 1, 1, 1, 1, 2]
- }
- },
- {
- "id": "limite admin - limite de département bandeau",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 8,
- "maxzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_DEPARTEMENT"],
- "paint": {
- "line-color": "rgba(112, 107, 188, 0.4)",
- "line-width": {
- "stops": [[9, 4.1], [12, 6]]
- }
- }
- },
- {
- "id": "limite admin - limite de département tiret",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_DEPARTEMENT"],
- "paint": {
- "line-color": "rgba(85, 78, 149, 0.5)",
- "line-width": {
- "stops": [[13, 3], [17, 5.5]]
- },
- "line-dasharray": [4, 2, 1, 1, 1, 2]
- }
- },
- {
- "id": "limite admin - limite de région bandeau",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 7,
- "maxzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_REGION"],
- "paint": {
- "line-color": "rgba(112, 107, 188, 0.5)",
- "line-width": {
- "stops": [[9, 4.5], [12, 6.7]]
- }
- }
- },
- {
- "id": "limite admin - limite de région tiret",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_REGION"],
- "paint": {
- "line-color": "rgba(85, 78, 149, 0.5)",
- "line-width": {
- "stops": [[13, 3], [17, 5.5]]
- },
- "line-dasharray": [4, 2, 1, 2]
- }
- },
- {
- "id": "limite etat 1",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 2,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ETAT",
- "LIM_ETAT_ETRANGER"
- ],
- "paint": {
- "line-color": "rgba(112, 107, 188, 0.6)",
- "line-width": {
- "stops": [[2, 2], [3, 3.5], [9, 5], [14, 13], [15, 20], [16, 24], [17, 42]]
- }
- }
- },
- {
- "id": "limite etat 2",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 7,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ETAT",
- "LIM_ETAT_ETRANGER"
- ],
- "paint": {
- "line-color": "#6F6B95",
- "line-width": {
- "stops": [[9, 1.5], [14, 3.5], [15, 5.5], [16, 6.5], [17, 11]]
- },
- "line-dasharray": [4, 2]
- }
- },
- {
- "id": "limite cote",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 7,
- "maxzoom":10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo","LIM_COTE"],
- "paint": {
- "line-color": "#587E8F",
- "line-width": 1
- }
- },
- {
- "id": "ligne electrique",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIGNE_ELECTRIQUE"],
- "paint": {
- "line-color": "#606060",
- "line-width": {
- "stops": [[13, 1], [17, 2]]
- }
- }
- },
- {
- "id": "autre construction linéaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CABLE",
- "REMONTEE_MEC",
- "HYDROCARBURES",
- "CONDUITE_MATIERES_P",
- "SPORT_MONTAGNE_LIN",
- "PISTE_BOBSLEIGH",
- "PISTE_LUGE",
- "PISTE_AERO_LIN"
- ],
- "paint": {
- "line-color": "#606060",
- "line-width": 1
- }
- },
- {
- "id": "autre construction linéaire - trait perpend cable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","CABLE"],
- "paint": {
- "line-color": "#606060",
- "line-width": 5,
- "line-dasharray": [0.5,10]
- }
- },
- {
- "id": "autre construction linéaire - trait perpend 1 remont",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REMONTEE_MEC"],
- "paint": {
- "line-color": "#606060",
- "line-width": 6,
- "line-dasharray": [1,10]
- }
- },
- {
- "id": "autre construction linéaire - trait perpend 2 remont",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REMONTEE_MEC"],
- "paint": {
- "line-color": "#8E8E8E",
- "line-width": 6,
- "line-dasharray": [0.3,0.4,0.3,10]
- }
- },
- {
- "id": "autre construction linéaire - trait perpend carbur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "HYDROCARBURES",
- "CONDUITE_MATIERES_P"
- ],
- "paint": {
- "line-color": "#606060",
- "line-width": 5,
- "line-dasharray": [1,10]
- }
- },
- {
- "id": "routier ponctuel - peage ponctuel",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "routier_ponc",
- "minzoom": 8,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PEAGE_PONC"],
- "paint": {
- "circle-radius": {
- "stops": [[9, 3.5], [12, 6.5]]
- },
- "circle-color": "#B17E18",
- "circle-stroke-width": 1,
- "circle-stroke-color": "#606060"
- }
- },
- {
- "id": "routier ponctuel - barriere",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "routier_ponc",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "icon-image": "Barriere",
- "icon-size": {
- "stops": [[13, 0.25], [16, 0.45], [17, 0.7]]
- },
- "icon-allow-overlap": true,
- "icon-rotate": ["get", "rotation"]
- },
- "filter": ["==","symbo","BARRIERE"],
- "paint": {
- "icon-color": "#717171"
- }
- },
- {
- "id": "hydro ponctuel",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "hydro_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "FONTAINE",
- "POINT_D_EAU",
- "SOURCE",
- "SOURCE_CAPTEE",
- "PERTE",
- "RESURGENCE",
- "CASCADE",
- "AUTRE_HYDRO_PONC"
- ],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 7]]
- },
- "circle-color": "#FFFFFF",
- "circle-opacity": 1,
- "circle-stroke-width": {
- "stops": [[14, 2], [17, 5]]
- },
- "circle-stroke-color": "#3479BD"
- }
- },
- {
- "id": "point coté",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_ponc",
- "minzoom": 11,
- "maxzoom": 16,
- "filter": ["in","symbo",
- "POINT_COTE",
- "POINT_COTE_TOPO",
- "POINT_COTE_RESEAU",
- "POINT_RBF"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.1,
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.2, 0.4],
- "text-padding": 2,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#3C3C3C"
- }
- },
- {
- "id": "bati ponctuel : Hopital",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Hopital",
- "icon-size": 0.33
- },
- "filter": ["==","symbo","HOPITAL_PONC"],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel hydrographique",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "icon-image": "Pompage",
- "icon-size": { "stops": [[13, 0.2], [17, 0.6]] },
- "icon-allow-overlap": true
- },
- "filter": ["in","symbo",
- "CITERNE",
- "LAVOIR",
- "STATION_EPURATION",
- "STATION_DE_POMPAGE",
- "USINE_PRODUCTION_EAU",
- "USINE_ELEVATRICE"
- ],
- "paint": {
- "icon-color": "#2C669F"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Puits-Abreuvoir",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "PUITS",
- "ABREUVOIR"
- ],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 7]]
- },
- "circle-color": "#FFFFFF",
- "circle-opacity": 1,
- "circle-stroke-width": {
- "stops": [[14, 2], [17, 5]]
- },
- "circle-stroke-color": "#3479BD"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Phare",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "icon-image": "Phare",
- "icon-size": { "stops": [[13, 0.7], [17, 1.3]] }
- },
- "filter": ["==","symbo","PHARE"],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Amer-Feu",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "icon-image": "Feu",
- "icon-size": { "stops": [[13, 0.7], [17, 1.3]] }
- },
- "filter": ["in","symbo",
- "AMER",
- "FEU",
- "FEU_PONC",
- "TOURELLE_LUMINEUSE"
- ],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Balise",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "icon-image": "Balise",
- "icon-size": { "stops": [[13, 0.7], [17, 1.3]] }
- },
- "filter": ["in","symbo",
- "BALISE",
- "TOURELLE"
- ],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Ecluse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 12,
- "maxzoom": 15,
- "layout": {
- "visibility": "visible",
- "icon-image": "Ecluse",
- "icon-size": 0.2
- },
- "filter": ["==","symbo","ECLUSE_PONC"],
- "paint": {
- "icon-color": "#2C669F"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Barrage",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 12,
- "maxzoom": 14,
- "layout": {
- "visibility": "visible",
- "icon-image": "Barrage",
- "icon-size": 0.25
- },
- "filter": ["==","symbo","BARRAGE_PONC"],
- "paint": {
- "icon-color": "#2C669F"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Chateau d'eau",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","CHATEAU_EAU_PONC"],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 8]]
- },
- "circle-color": "#3479BD"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Réservoir d'eau",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","RESERVOIR_EAU_PONC"],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 8]]
- },
- "circle-color": "#5AADD4",
- "circle-opacity": 1,
- "circle-stroke-width": {
- "stops": [[14, 1], [17, 2.5]]
- },
- "circle-stroke-color": "#3479BD"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Constr spé",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "ConstrSpeciale",
- "icon-size": { "stops": [[13, 0.22], [17, 0.5]] }
- },
- "filter": ["in","symbo",
- "ANTENNE",
- "CONSTR_SPE_TECHNIQUE",
- "CONSTR_INDIF_PONC",
- "CHEMINEE",
- "CHEVALEMENT",
- "PUITS_GAZ",
- "PUITS_PETROLE",
- "PYLONE_METEO",
- "TORCHERE",
- "TOUR_GUET",
- "TOUR_HERTZIENNE"
- ],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Silo",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible",
- "icon-image": "Silo",
- "icon-size": { "stops": [[13, 0.22], [17, 0.5]] }
- },
- "filter": ["==","symbo","SILO_PONC"],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Eolienne",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Eolienne",
- "icon-size": { "stops": [[13, 0.4], [17, 1], [18, 0.8]] }
- },
- "filter": ["==","symbo","EOLIENNE"],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Reservoir",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible",
- "icon-image": "Reservoir",
- "icon-size": { "stops": [[13, 0.26], [17, 0.5]] }
- },
- "filter": ["==","symbo","RESERVOIR_PONC"],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel infrastructure - pylone électrique",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PYLONE_ELEC"],
- "paint": {
- "circle-radius" : {
- "stops": [[13, 1], [17, 2]]
- },
- "circle-color" : "#000000"
- }
- },
- {
- "id": "bati ponctuel montagne - Abri",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Abri",
- "icon-size": { "stops": [[13, 0.4], [15, 0.6], [17, 0.9]] }
- },
- "filter": ["==","symbo","ABRI"],
- "paint": {
- "icon-color": "#1B492A"
- }
- },
- {
- "id": "bati ponctuel montagne - Refuge Garde",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Refugegard",
- "icon-size": { "stops": [[13, 0.4], [15, 0.6], [17, 0.9]] }
- },
- "filter": ["==","symbo","REFUGE_GARDE"],
- "paint": {
- "icon-color": "#1B492A"
- }
- },
- {
- "id": "bati ponctuel montagne - Refuge Non Garde",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Refugenongard",
- "icon-size": { "stops": [[13, 0.4], [15, 0.6], [17, 0.9]] }
- },
- "filter": ["==","symbo","REFUGE"],
- "paint": {
- "icon-color": "#1B492A"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aeroport FXX",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Aeroport",
- "icon-size": 0.5
- },
- "filter": ["all",
- ["==","symbo","AEROPORT_PONC"],
- ["==","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aerodrome FXX",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Aerodrome",
- "icon-size": 0.4
- },
- "filter": ["all",
- ["==","symbo","AERODROME_PONC"],
- ["==","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aeroport DOM",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "icon-image": "Aeroport",
- "icon-size": 0.5
- },
- "filter": ["all",
- ["==","symbo","AEROPORT_PONC"],
- ["!=","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aerodrome DOM",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "icon-image": "Aerodrome",
- "icon-size": 0.4
- },
- "filter": ["all",
- ["==","symbo","AERODROME_PONC"],
- ["!=","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "bati ponctuel transport ferroviaire",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Gare",
- "icon-size" : 0.33
- },
- "filter": ["==","symbo","GARE_VOYAGEURS"],
- "paint": {
- "icon-color": "#5A5A5A"
- }
- },
- {
- "id": "toponyme - bornes postales haute - chemins",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "CHEMIN",
- "CHEMIN_SOU",
- "CHEMIN_SUP",
- "PISTE_CYCLABLE",
- "PISTE_CYCLABLE_SOU",
- "PISTE_CYCLABLE_SUP",
- "RUE_PIETONNE",
- "RUE_PIETONNE_SOU",
- "RUE_PIETONNE_SUP",
- "SENTIER",
- "SENTIER_SOU",
- "SENTIER_SUP",
- "ESCALIER",
- "ESCALIER_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - non revetue, non classee",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "NON_CLASSEE",
- "NON_CLASSEE_4",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_RESTREINT",
- "NON_CLASSEE_RESTREINT_SUP",
- "NON_CLASSEE_SOU",
- "NON_CLASSEE_SUP",
- "NON_REVETUE_CARRO",
- "NON_REVETUE_CARRO_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.3
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - locales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "LOCALE_1",
- "LOCALE_1_SOU",
- "LOCALE_1_SUP",
- "LOCALE_2",
- "LOCALE_2_SOU",
- "LOCALE_2_SUP",
- "LOCALE_3",
- "LOCALE_3_SOU",
- "LOCALE_3_SUP",
- "LOCALE_4",
- "LOCALE_4_SOU",
- "LOCALE_4_SUP",
- "LOCALE_CONSTR",
- "LOCALE_CONSTR_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.4
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - regionales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "REGIONALE_1",
- "REGIONALE_1_SOU",
- "REGIONALE_1_SUP",
- "REGIONALE_2",
- "REGIONALE_2_SOU",
- "REGIONALE_2_SUP",
- "REGIONALE_3",
- "REGIONALE_3_SOU",
- "REGIONALE_3_SUP",
- "REGIONALE_4",
- "REGIONALE_4_SUP",
- "REGIONALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.5
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - principales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "PRINCIPALE_1",
- "PRINCIPALE_1_SOU",
- "PRINCIPALE_1_SUP",
- "PRINCIPALE_2",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_3",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_4",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.6
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - chemins",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "CHEMIN",
- "CHEMIN_SOU",
- "CHEMIN_SUP",
- "PISTE_CYCLABLE",
- "PISTE_CYCLABLE_SOU",
- "PISTE_CYCLABLE_SUP",
- "RUE_PIETONNE",
- "RUE_PIETONNE_SOU",
- "RUE_PIETONNE_SUP",
- "SENTIER",
- "SENTIER_SOU",
- "SENTIER_SUP",
- "ESCALIER",
- "ESCALIER_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - non revetue, non classee",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "NON_CLASSEE",
- "NON_CLASSEE_4",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_RESTREINT",
- "NON_CLASSEE_RESTREINT_SUP",
- "NON_CLASSEE_SOU",
- "NON_CLASSEE_SUP",
- "NON_REVETUE_CARRO",
- "NON_REVETUE_CARRO_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.3
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - locales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "LOCALE_1",
- "LOCALE_1_SOU",
- "LOCALE_1_SUP",
- "LOCALE_2",
- "LOCALE_2_SOU",
- "LOCALE_2_SUP",
- "LOCALE_3",
- "LOCALE_3_SOU",
- "LOCALE_3_SUP",
- "LOCALE_4",
- "LOCALE_4_SOU",
- "LOCALE_4_SUP",
- "LOCALE_CONSTR",
- "LOCALE_CONSTR_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.4
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - regionales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "REGIONALE_1",
- "REGIONALE_1_SOU",
- "REGIONALE_1_SUP",
- "REGIONALE_2",
- "REGIONALE_2_SOU",
- "REGIONALE_2_SUP",
- "REGIONALE_3",
- "REGIONALE_3_SOU",
- "REGIONALE_3_SUP",
- "REGIONALE_4",
- "REGIONALE_4_SUP",
- "REGIONALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.5
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - principales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "PRINCIPALE_1",
- "PRINCIPALE_1_SOU",
- "PRINCIPALE_1_SUP",
- "PRINCIPALE_2",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_3",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_4",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.6
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5B4C3B",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - courbe rocher maitresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["==","txt_typo","ORO_COURBE_ROCHER"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 30,
- "text-rotate": { "type": "identity", "property": "rotation" },
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#262626",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - courbe glacier maitresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["==","txt_typo","ORO_COURBE_GLACIER"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 30,
- "text-rotate": { "type": "identity", "property": "rotation" },
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#2E77BE",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - courbe maitresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["==","txt_typo","ORO_COURBE"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 30,
- "text-rotate": { "type": "identity", "property": "rotation" },
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#483723",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - liaison maritime",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_liaison_lin",
- "minzoom": 8,
- "maxzoom": 18,
- "filter": ["==","txt_typo","LIAISON_MARITIME"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#386E9B",
- "text-halo-width": 5,
- "text-halo-color": "#5AADD4"
- }
- },
- {
- "id": "toponyme bati station de métro + bati ponctuel metro",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":14,
- "filter": ["all",
- ["==","txt_typo","TYPO_E_1"],
- ["==","symbo","STATION_METRO"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-offset": [0.30, -0.25],
- "text-padding": 3,
- "text-anchor": "bottom-left",
- "text-font": ["Source Sans Pro"],
- "icon-image": "Metro",
- "icon-size": { "stops": [[15, 0.33], [17, 0.6]] }
- },
- "paint": {
- "text-color": "#2D2D2D",
- "icon-color": "#4B4B4B"
- }
- },
- {
- "id": "toponyme ferre lineaire",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ferre_lin",
- "minzoom":12,
- "filter": ["in","txt_typo",
- "FER_NOM",
- "FER_OUVRAGE"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 10,
- "text-anchor": "center",
- "text-offset": [0,-1],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-width": 1,
- "text-halo-color": "rgba(255, 255, 255, 1)"
- }
- },
- {
- "id": "toponyme station epuration, de pompage, usine de production eau",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":14,
- "filter": ["==","txt_typo","station"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{designation}",
- "text-anchor": "left",
- "text-offset": [0.8, 0],
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#335F86"
- }
- },
- {
- "id": "toponyme bati ponc gare",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":15,
- "filter": ["==","txt_typo","gore"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{designation}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000"
- }
- },
- {
- "id": "toponyme bati ponc barrage",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "filter": ["==","txt_typo","BARRAGE_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "left",
- "text-offset": [0.8, 0],
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#335F86"
- }
- },
- {
- "id": "toponyme bati ponc phare - niveau 13",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "maxzoom":13,
- "filter": ["==","txt_typo","PHARE"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "right",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#3E1F1F"
- }
- },
- {
- "id": "toponyme bati ponc phare - niveau 14à19",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":13,
- "filter": ["all",
- ["==","symbo","PHARE"],
- ["in","txt_typo",
- "TYPO_C_6",
- "TYPO_C_7",
- "TYPO_C_8",
- "TYPO_E_GE"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "right",
- "text-size": { "stops": [[13, 12], [18, 18]] },
- "text-allow-overlap": false,
- "text-offset": [-2.00, 0],
- "text-padding": 3,
- "text-anchor": "right",
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#3E1F1F"
- }
- },
- {
- "id": "toponyme bati ponc autre",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "filter": ["in","txt_typo",
- "BAT_ACTIVITE",
- "BAT_FORTIF",
- "BAT_VILLAGE_DETRUIT"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#3E1F1F"
- }
- },
- {
- "id": "toponyme bati ponc aerogare",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":14,
- "maxzoom":17,
- "filter": ["all",
- ["==","txt_typo","TYPO_E_GE"],
- ["==","symbo","AEROGARE"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": {"stops": [[12, 9], [16, 11]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#0D0037",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme bati ponc aeroport 12",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":11,
- "maxzoom":12,
- "filter": ["==","txt_typo","AEROPORT_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -1.3],
- "text-size": 10.5,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#0D0037",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aeroport 13",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "maxzoom":13,
- "filter": ["==","txt_typo","AEROPORT_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -2],
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#0D0037",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aeroport",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":13,
- "maxzoom":17,
- "filter": ["all",
- ["==","txt_typo","TYPO_A_5"],
- ["==","symbo","AEROPORT"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": {"stops": [[12, 11], [16, 13]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#0D0037",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aerodrome 12",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":11,
- "maxzoom":12,
- "filter": ["==","txt_typo","AERODROME_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -1.3],
- "text-size": 9.5,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#0D0037",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aerodrome 13",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "maxzoom":13,
- "filter": ["==","txt_typo","AERODROME_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -2],
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#0D0037",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aerodrome",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":13,
- "maxzoom":17,
- "filter": ["all",
- ["==","txt_typo","TYPO_A_7"],
- ["==","symbo","AERODROME"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": {"stops": [[12, 10], [16, 12]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#0D0037",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - hydro ponc 5",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["in","txt_typo",
- "TYPO_D_9",
- "TYPO_D_10",
- "TYPO_E_1_cyan"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 11], [17, 14]]},
- "text-allow-overlap": true,
- "text-padding": 5,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - hydro ponc glacier",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["==","txt_typo","ORO_GLACIER_2"],
- "layout": {
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 14,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - limite militaire ponc 3 et 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "filter": ["in","txt_typo",
- "LIM_MILI_3",
- "LIM_MILI_4"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 12,
- "text-allow-overlap": false,
- "text-padding": 2,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#0A1800",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - limite parc ponc 3 et 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "filter": ["in","txt_typo",
- "LIM_PARC_3",
- "LIM_PARC_4",
- "RESERVE_NATURELLE_PONC"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": false,
- "text-padding": 2,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme numéro de route - départementale",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_numero_lin",
- "minzoom":11,
- "maxzoom":16,
- "filter": ["==","txt_typo","Départementale"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 10.5,
- "text-allow-overlap": false,
- "text-padding": 2,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Semibold"],
- "text-rotation-alignment": "viewport"
- },
- "paint": {
- "text-color": "#3A3A3A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme numéro de route - nationale",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_numero_lin",
- "minzoom":7,
- "maxzoom":16,
- "filter": ["==","txt_typo","Nationale"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 12,
- "text-allow-overlap": false,
- "text-padding": 0,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Regular"],
- "icon-image": "Ecluse",
- "icon-rotation-alignment": "viewport",
- "text-rotation-alignment": "viewport",
- "icon-text-fit": "both",
- "icon-size": 0
- },
- "paint": {
- "text-color": "#B4B4B4",
- "icon-color": "#4B4B4B",
- "text-halo-color": "rgba(60, 60, 60, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme numéro de route - autoroute",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_numero_lin",
- "minzoom":7,
- "maxzoom":16,
- "filter": ["==","txt_typo","Autoroute"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 0,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Regular"],
- "icon-image": "Ecluse",
- "icon-rotation-alignment": "viewport",
- "text-rotation-alignment": "viewport",
- "icon-text-fit": "both",
- "icon-size": 0
- },
- "paint": {
- "text-color": "#B4B4B4",
- "icon-color": "#4B4B4B",
- "text-halo-color": "rgba(60, 60, 60, 0.5)",
- "text-halo-width": 5
- }
- },
- {
- "id": "toponyme - odonyme abrégé",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_odonyme_lin",
- "minzoom": 15,
- "maxzoom":17,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{nom_gauche}",
- "text-size": 10,
- "text-anchor": "center",
- "text-max-angle": 30,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 1)"
- }
- },
- {
- "id": "toponyme - odonyme desabrégé",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_odonyme_lin",
- "minzoom": 17,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{nom_desabrege}",
- "text-size": 11,
- "text-anchor": "center",
- "text-max-angle": 30,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 1)"
- }
- },
- {
- "id": "toponyme - lieu dit non habité 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","LIEU-DIT_NON_HABITE"],
- ["in","txt_typo",
- "TYPO_B_10",
- "TYPO_B_11"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - bois",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_10",
- "TYPO_F_11"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - oro lineaire 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_SOMMET_3",
- "ORO_GORGE_2"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 11,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["in","txt_typo",
- "ORO_SOMMET_3",
- "ORO_GORGE_2",
- "GROTTE",
- "GORGE",
- "TYPO_G_9",
- "TYPO_G_10"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 11], [16, 16]]},
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1.5
- }
- },
- {
- "id": "toponyme - hydro ponc 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["in","txt_typo",
- "lac - étang - bassin",
- "HYD_SURF_4",
- "HYD_SURF_4_T",
- "HYD_SURF_5",
- "HYD_SURF_5_T",
- "TYPO_D_8",
- "SOURCE"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 13], [17, 16]]},
- "text-allow-overlap": true,
- "text-padding": 5,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme quartier ",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "filter": ["in","txt_typo",
- "BAT_QUARTIER",
- "BAT_QUARTIER_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA10",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["==","txt_typo","TYPO_A_10"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 11], [17, 13.5]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - lieu dit non habité",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","LIEU-DIT_NON_HABITE"],
- ["in","txt_typo",
- "TYPO_B_7",
- "TYPO_B_8",
- "TYPO_B_9"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 12,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - bois 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_7",
- "TYPO_F_8",
- "TYPO_F_9"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 16,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite hameau ",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 11,
- "maxzoom": 13,
- "filter": ["in","txt_typo",
- "BAT_HAMEAU",
- "BAT_HAMEAU_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.17,
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite importance 5",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 9,
- "filter": ["in","txt_typo",
- "commune 5",
- "BAT_COMMUNE_5",
- "BAT_COMMUNE_5_T",
- "BAT_CHEF_LIEU_COM",
- "BAT_CHEF_LIEU_COM_T",
- "BAT_CHEF_LIEU_COM-T",
- "BAT_ANCIENNE_COM",
- "BAT_ANCIENNE_COM_T",
- "BAT_COMMUNE_ASSOCIEE",
- "BAT_COMMUNE_ASSOCIEE_T",
- "Commune très petite"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.21,
- "text-field": "{texte}",
- "text-size": 11.5,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - ocs lineaire 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_lin",
- "filter": ["==","txt_typo","OCS_FORET_3"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 12], [12, 15]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-width": 1,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - lieu dit non habité 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","LIEU-DIT_NON_HABITE"],
- ["in","txt_typo",
- "TYPO_B_5",
- "TYPO_B_4"
-
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - bois 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_5",
- "TYPO_F_4"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 19,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - bois 0",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_3",
- "TYPO_F_2"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 22,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - ocs ponc 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["==","txt_typo","OCS_FORET_3"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 12], [12, 15]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - oro lineaire 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_ILE_3",
- "ORO_RELIEF_3",
- "ORO_RELIEF_3_T",
- "ORO_RELIEF_4",
- "ORO_RELIEF_4_T",
- "ORO_CAP_2",
- "ORO_CAP_3",
- "ORO_SOMMET_2",
- "ORO_COL_2",
- "ORO_GORGE_1",
- "ORO_GORGE-1"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 12,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["in","txt_typo",
- "ORO_ILE_3",
- "ORO_RELIEF_3",
- "ORO_RELIEF_3_T",
- "ORO_RELIEF_4",
- "ORO_RELIEF_4_T",
- "ORO_CAP_2",
- "ORO_CAP_3",
- "ORO_SOMMET_2",
- "ORO_COL_2",
- "ORO_GORGE_1",
- "ORO_GORGE-1",
- "TYPO_G_7",
- "TYPO_G_8"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 12], [16, 17]]},
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 1.5
- }
- },
- {
- "id": "toponyme - hydro lineaire 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "HYD_LIN_3",
- "HYD_LIN_4",
- "HYD_LIN_5",
- "petite rivière",
- "canal",
- "HYD_SURF_3",
- "HYD_SURF_3_T",
- "HYD_SURF_4",
- "HYD_SURF_4_T",
- "HYD_SURF_5",
- "HYD_SURF_5_T",
- "TYPO_D_5"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 12], [18, 19]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.7)"
- }
- },
- {
- "id": "toponyme - hydro lineaire 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "minzoom":14,
- "filter": ["in","txt_typo",
- "TYPO_D_6",
- "TYPO_D_8",
- "TYPO_D_9",
- "TYPO_D_10"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 10], [18, 16]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.7)"
- }
- },
- {
- "id": "toponyme - hydro ponc 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["in","txt_typo",
- "petit golfe",
- "grande baie",
- "baie",
- "HYD_SURF_3",
- "TYPO_D_5",
- "TYPO_D_6",
- "TYPO_D_7"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 15], [17, 18]]},
- "text-allow-overlap": true,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc zai zoom 16",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":15,
- "maxzoom":16,
- "filter": ["==","txt_typo","zai"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{designation}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000"
- }
- },
- {
- "id": "toponyme bati ponc zai zoom 17 et 18",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":16,
- "filter": ["==","txt_typo","zai"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000"
- }
- },
- {
- "id": "toponyme localite importance 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 7,
- "filter": ["in","txt_typo",
- "commune 4",
- "BAT_COMMUNE_4",
- "BAT_COMMUNE_4_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.21,
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA9",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["==","txt_typo","TYPO_A_9"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 11.5], [17, 14]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA8",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["==","txt_typo","TYPO_A_8"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 12], [17, 15]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - limite militaire ponc 1 et 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "filter": ["in","txt_typo",
- "LIM_MILI_1",
- "LIM_MILI_2"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 5,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#0A1800",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - limite parc marin",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "minzoom": 8,
- "filter": ["==","txt_typo","LIM_PARC_NATUREL_MARIN"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 10,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#20607A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - limite parc ponc 1 et 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "minzoom":8,
- "filter": ["in","txt_typo",
- "LIM_PARC_1",
- "LIM_PARC_2",
- "LIM_PARC_NATUREL"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 10,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - ocs lineaire 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_lin",
- "filter": ["==","txt_typo","OCS_FORET_2"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 15], [12, 18]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - ocs ponc 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["==","txt_typo","OCS_FORET_2"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 15], [12, 18]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro lineaire 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_ILE_2",
- "ORO_RELIEF_2",
- "ORO_RELIEF_2_T",
- "ORO_CAP_1",
- "ORO_SOMMET_1"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-padding": 10,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom":9,
- "filter": ["in","txt_typo",
- "ORO_ILE_2",
- "ORO_RELIEF_2",
- "ORO_RELIEF_2_T",
- "ORO_CAP_1",
- "ORO_COL_1",
- "sommet ou col",
- "ORO_SOMMET_1",
- "TYPO_G_4",
- "TYPO_G_6"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[9, 13], [10, 15], [13, 15], [16, 19]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro ponc 2B",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom":8,
- "filter": ["in","txt_typo",
- "île",
- "cap ou pointe"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - hydro lineaire 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "HYD_LIN_2",
- "rivière moyenne",
- "HYD_SURF_2",
- "HYD_SURF_2_T",
- "TYPO_D_3"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 15], [18, 21]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro ponc 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "minzoom": 5,
- "filter": ["in","txt_typo",
- "moyen",
- "golfe moyen",
- "HYD_SURF_2",
- "TYPO_D_2",
- "TYPO_D_3",
- "TYPO_D_4"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[5, 12], [6, 18], [10, 17], [18, 21]]},
- "text-allow-overlap": false,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite importance 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 5,
- "filter": ["in","txt_typo",
- "commune 3",
- "BAT_COMMUNE_3",
- "BAT_COMMUNE_3_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.21,
- "text-field": "{texte}",
- "text-size": {"stops": [[5, 10], [6, 15]]},
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA7 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_7"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 13], [17, 16]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA6 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_6"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 15], [17, 18]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro lineaire 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_ILE_1",
- "ORO_RELIEF_1",
- "ORO_RELIEF_1_T"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 20,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-padding": 5,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc monde",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom": 5,
- "filter": ["in","txt_typo",
- "Basin",
- "Depression",
- "Desert",
- "Geoarea",
- "Gorge",
- "Isthmus",
- "Lake",
- "Lowland",
- "Pen/cape",
- "Plain",
- "Plateau",
- "Range/mtn",
- "Tundra",
- "Valley",
- "Island",
- "Island group"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA4 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_4"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 17,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme - ocs lineaire 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_lin",
- "filter": ["==","txt_typo","OCS_FORET_1"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 18], [12, 22]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-padding": 1,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - ocs ponc 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["==","txt_typo","OCS_FORET_1"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 18], [12, 22]]},
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#1E5C00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro ponc 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom":8,
- "filter": ["in","txt_typo",
- "grande île",
- "ORO_ILE_1",
- "ORO_RELIEF_1",
- "ORO_RELIEF_1_T",
- "TYPO_G_3",
- "TYPO_G_2",
- "TYPO_G_1"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 21,
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#652A25",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - hydro lineaire glacier",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "ORO_GLACIER_1",
- "ORO_GLACIER_2"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro lineaire 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "HYD_LIN_1",
- "HYD-LIN-1",
- "grande rivière",
- "HYD_SURF_1",
- "HYD_SURF_1_T",
- "TYPO_D_1",
- "TYPO_D_2"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 18,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro lineaire ocean",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["==","txt_typo","mer et océan"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 30,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-width": 4,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro ponc 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "minzoom": 4,
- "filter": ["in","txt_typo",
- "mer",
- "grand",
- "grand golfe",
- "HYD_SURF_1",
- "TYPO_D_1"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[4, 16], [6, 30], [10, 25]]},
- "text-allow-overlap": true,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite importance 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 4,
- "filter": ["in","txt_typo",
- "commune 2",
- "BAT_COMMUNE_2",
- "BAT_COMMUNE-2",
- "BAT_COMMUNE_2_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.25,
- "text-field": "{texte}",
- "text-size": {"stops": [[4, 10], [6, 17]]},
- "text-allow-overlap": true,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.2],
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": {"stops": [[1, ["Source Sans Pro Regular"]], [7, ["Source Sans Pro Bold"]], [10, ["Source Sans Pro Regular"]]]}
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA3 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_3"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 19,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA2 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_2"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 21,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite n0 typoA7 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_7"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 13], [17, 16]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA6 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_6"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 15], [17, 18]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA1 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_1"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 23,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite n0 typoA4 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_4"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 17,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA3 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_3"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 19,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA2 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_2"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 21,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite importance 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 3,
- "filter": ["in","txt_typo",
- "commune 1",
- "BAT_COMMUNE_1",
- "BAT_COMMUNE_1_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.3,
- "text-field": "{texte}",
- "text-size": {"stops": [[3, 10], [6, 20]]},
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.25, -0.10],
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": {"stops": [[1, ["Source Sans Pro Regular"]], [7, ["Source Sans Pro Bold"]], [10, ["Source Sans Pro Regular"]]]}
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite n0 typoA1 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_1"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 23,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme - hydro ponc ocean",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "minzoom": 1,
- "filter": ["==","txt_typo","ocean"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[1, 16], [6, 30]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#335F86",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme pays 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 4,
- "maxzoom": 5,
- "filter": ["==","txt_typo","pays 3"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 9,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme pays 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 2,
- "maxzoom": 5,
- "filter": ["==","txt_typo","pays 2"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 2,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme pays 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 2,
- "maxzoom": 5,
- "filter": ["==","txt_typo","pays 1"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 2,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme continent",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 3,
- "filter": ["==","txt_typo","continent"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Bold"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- }
- ]
-}
\ No newline at end of file
+{
+ "version": 8,
+ "name": "PLAN IGN",
+ "sources": {
+ "plan_ign": {
+ "type": "vector",
+ "url": "https://wxs.ign.fr/choisirgeoportail/geoportail/tms/1.0.0/PLAN.IGN/metadata.json"
+ }
+ },
+ "sprite": "https://wxs.ign.fr/static/vectorTiles/styles/PLAN.IGN/sprite/PlanIgn",
+ "transition": {"duration": 300, "delay": 0},
+ "layers": [
+ {
+ "id": "bckgrd",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "fond_opaque",
+ "minzoom": 0,
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 0m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_0"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#A9C96F", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 100m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_100"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#E2D07A", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 200m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_200"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#D2B46E", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 1000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_1000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#C29353", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 3000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_3000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#8E624E", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 4000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_4000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#77503F", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 5000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_5000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#592B20", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - glacier",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "GLACIER"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-opacity": 0.7}
+ },
+ {
+ "id": "ocs - vegetation - zone boiséee, foret fermee, peupleraie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "ZONE_BOISEE",
+ "ZONE_FORET_FERMEE_CONI",
+ "ZONE_FORET_FERMEE_FEUIL",
+ "ZONE_FORET_FERMEE_MIXTE",
+ "ZONE_PEUPLERAIE"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#A8C18D", "fill-outline-color": "#A8C18D"}
+ },
+ {
+ "id": "ocs - vegetation - forêt ouverte",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["ZONE_FORET_OUVERTE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#C4D584", "fill-outline-color": "#C4D584"}
+ },
+ {
+ "id": "ocs - vegetation - lande ligneuse",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_LANDE_LIGNEUSE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DBD074"}
+ },
+ {
+ "id": "ocs - vegetation - vigne",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_VIGNE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFB563"}
+ },
+ {
+ "id": "ocs - vegetation - verger",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_VERGER"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#F1AF5E"}
+ },
+ {
+ "id": "ocs - vegetation - canne à sucre, bananeraie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_CANNE_BANANE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DF8EDF"}
+ },
+ {
+ "id": "hydro surfacique - Estran",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "hydro_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_D_ESTRAN"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#75B0CC", "fill-outline-color": "#75B0CC"}
+ },
+ {
+ "id": "ocs - vegetation - mangrovre",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_MANGROVE"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#4BB2B1",
+ 10,
+ "#54B1AF"
+ ]
+ }
+ },
+ {
+ "id": "ocs - vegetation - marais",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_MARAIS"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Marais"}
+ },
+ {
+ "id": "ocs - vegetation - marais salant",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_MARAIS_SALANT"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "MaraisSalant"}
+ },
+ {
+ "id": "ocs - Zone",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_ROCHEUSE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#9C9C9C", "fill-opacity": 0.3}
+ },
+ {
+ "id": "ocs - Zone sable sec",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_SABLE_SEC"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Sable"}
+ },
+ {
+ "id": "ocs - Zone sable humide",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FOND_CUVETTE_HUMIDE", "ZONE_SABLE_HUMIDE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "SableHumide"}
+ },
+ {
+ "id": "ocs - Zone graviers galets secs",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "GRAVIERS_GALETS_SEC"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "GravierSec"}
+ },
+ {
+ "id": "ocs - Zone graviers galets humides",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "GRAVIERS_GALETS_HUM"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Gravier"}
+ },
+ {
+ "id": "ocs - Zone rocher hydro",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_ROCHER_HYDRO"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "RocherHydro"}
+ },
+ {
+ "id": "ocs - Zone glacier",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_GLACIER"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-pattern": "Glacier",
+ "fill-opacity": ["interpolate", ["linear"], ["zoom"], 10, 0.5, 12, 0.3]
+ }
+ },
+ {
+ "id": "zone batie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zone_surf",
+ "minzoom": 7,
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "ZONE_BATI"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#C3B488",
+ "fill-opacity": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 0.9,
+ 14,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "zone d'activité",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zone_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_INDUS_ACTI"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#A3A3A3"}
+ },
+ {
+ "id": "oro - courbe et cuvette maitresse",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_MAITRESSE", "CUVETTE_MAITRESSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#BB9D66",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.7, 15, 2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_NORMALE", "CUVETTE_NORMALE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#BB9D66",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 1.2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette intercalaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_INTERCALAIRE", "CNV_SS_INTERCALAIRE", "CUVETTE_INTERCAL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#BB9D66",
+ "line-width": 0.7,
+ "line-dasharray": [20, 7]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette glacier maitresse",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_MAITRESSE", "CUV_GLACIER_MAITRESSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#618FBD",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.7, 15, 2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette glacier normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_NORMALE", "CUV_GLACIER_NORMALE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#618FBD",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 1.2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette glacier intercalaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_INTERCAL", "CUV_GLACIER_INTERCAL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#618FBD",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 15, 0.9],
+ "line-dasharray": [20, 7]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette rocher maitresse",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_MAITRESSE", "CUV_ROCHER_MAITRESSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#808080", "line-width": 1.7}
+ },
+ {
+ "id": "oro - courbe et cuvette rocher normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_NORMALE", "CUV_ROCHER_NORMALE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#808080", "line-width": 1}
+ },
+ {
+ "id": "oro - courbe et cuvette rocher intercalaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_INTERCAL", "CUV_ROCHER_INTERCAL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#808080",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 15, 0.9],
+ "line-dasharray": [20, 7]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette bathymetrique",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_BATHYMETRIQUE", "CUV_BATHYMETRIQUE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#0000BF", "line-width": 1}
+ },
+ {
+ "id": "oro lin - talus",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_lin",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "TALUS"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#BB9D66", "line-width": 1}
+ },
+ {
+ "id": "oro lin - talus - trait perpendiculaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_lin",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "TALUS"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#BB9D66",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 14, 7, 16, 9],
+ "line-dasharray": [0.1, 1],
+ "line-translate": [0, 4]
+ }
+ },
+ {
+ "id": "toponyme - cote de courbe normale",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "minzoom": 13,
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "texte"], "0"],
+ ["==", ["get", "hors_zone"], "true"],
+ [
+ "match",
+ ["get", "symbo"],
+ ["CNV_MAITRESSE", "CUVETTE_MAITRESSE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10, 15, 13],
+ "text-anchor": "center",
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-keep-upright": false,
+ "text-max-angle": 20,
+ "text-max-width": 100,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#483723",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - cote de courbe rocher",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "minzoom": 13,
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "texte"], "0"],
+ ["==", ["get", "hors_zone"], "true"],
+ [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_MAITRESSE", "CUV_ROCHER_MAITRESSE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10, 15, 13],
+ "text-anchor": "center",
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-keep-upright": false,
+ "text-max-angle": 20,
+ "text-max-width": 100,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#262626",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - cote de courbe glacier",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "minzoom": 13,
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "texte"], "0"],
+ ["==", ["get", "hors_zone"], "true"],
+ [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_MAITRESSE", "CUV_GLACIER_MAITRESSE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10, 15, 13],
+ "text-anchor": "center",
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-keep-upright": false,
+ "text-max-angle": 20,
+ "text-max-width": 100,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#2E77BE",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "hydro surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "hydro_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BASSIN", "SURFACE_D_EAU", "ZONE_MARINE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#5AADD4", "fill-outline-color": "#5AADD4"}
+ },
+ {
+ "id": "hydro surfacique temporaire",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "hydro_surf",
+ "filter": ["==", ["get", "symbo"], "SURFACE_D_EAU_TEMP"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "rgba(99, 161, 192, 0.5)"}
+ },
+ {
+ "id": "réseau hydro - cours d'eau souterrain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["COURS_D_EAU_MOY_SOU", "COURS_D_EAU_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.5, 17, 6.5],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "réseau hydro - filet interieur - aqueduc souterrain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.4,
+ 16,
+ 3.5,
+ 17,
+ 5.9
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "réseau hydro - carre - aqueduc souterrain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sou",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 3.5,
+ 16,
+ 8.7,
+ 17,
+ 14.7
+ ],
+ "line-dasharray": [1, 5]
+ }
+ },
+ {
+ "id": "Ferre souterrain - voie normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SOU", "VF_2_SOU", "VF_ELEC_1_SOU", "VF_FERRO_ROUTIER_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#878787",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.8, 17, 2.5]
+ }
+ },
+ {
+ "id": "Ferre souterrain - trait perpendic épais",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SOU", "VF_2_SOU", "VF_ELEC_1_SOU", "VF_FERRO_ROUTIER_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#878787",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre souterrain - voie etroite",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SOU", "VF_ETROITE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#878787",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre souterrain - trait perpendic fin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SOU", "VF_ETROITE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#878787",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre souterrain - voie service",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_NON_EXPLOITEE_SOU", "VF_SERVICE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#878787",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [5, 2, 1, 2]
+ }
+ },
+ {
+ "id": "Ferre souterrain - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SOU", "TRANSPORT_URBAIN_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#878787",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre souterrain - 2 trait perpendic - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SOU", "TRANSPORT_URBAIN_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#878787",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 17],
+ "line-dasharray": [0.1, 0.2, 0.1, 10]
+ }
+ },
+ {
+ "id": "Chemin souterrain - piste cyclable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PISTE_CYCLABLE_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#8348B2",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.1,
+ 15,
+ 1.7,
+ 16,
+ 2,
+ 17,
+ 3.5
+ ],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "Chemin souterrain - filet exterieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#8F696C",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.75,
+ 15,
+ 3,
+ 16,
+ 4.2,
+ 17,
+ 9.5
+ ]
+ }
+ },
+ {
+ "id": "Chemin souterrain - filet interieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.9,
+ 16,
+ 2.7,
+ 17,
+ 5.8
+ ],
+ "line-dasharray": [1, 0.2]
+ }
+ },
+ {
+ "id": "Chemin souterrain - Rue pietonne",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "RUE_PIETONNE_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#8F696C",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ],
+ "line-dasharray": [1, 3]
+ }
+ },
+ {
+ "id": "Chemin souterrain - sentier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "SENTIER_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#8F696C",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ],
+ "line-dasharray": [4, 3]
+ }
+ },
+ {
+ "id": "Chemin souterrain - chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "CHEMIN_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#8F696C",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#838383",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SOU",
+ "BRET_AUTO_LIBRE_2_SOU",
+ "BRET_AUTO_LIBRE_3_SOU",
+ "BRET_AUTO_PEAGE_1_SOU",
+ "BRET_AUTO_PEAGE_2_SOU",
+ "BRET_AUTO_PEAGE_3_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(167, 53, 10, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 2.5,
+ 14,
+ 3.7,
+ 15,
+ 6.8,
+ 16,
+ 8.4,
+ 17,
+ 14
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#838383",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SOU", "NON_CLASSEE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#838383",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SOU",
+ "LOCALE_1_SOU",
+ "LOCALE_2_SOU",
+ "LOCALE_3_SOU",
+ "LOCALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(97, 97, 97, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SOU",
+ "REGIONALE_1_SOU",
+ "REGIONALE_2_SOU",
+ "REGIONALE_3_SOU",
+ "REGIONALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(97, 97, 97, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 7,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SOU",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(167, 53, 10, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 7,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SOU", "AUTOROU_PEAGE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(167, 53, 10, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A5A5A5",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SOU",
+ "BRET_AUTO_LIBRE_2_SOU",
+ "BRET_AUTO_LIBRE_3_SOU",
+ "BRET_AUTO_PEAGE_1_SOU",
+ "BRET_AUTO_PEAGE_2_SOU",
+ "BRET_AUTO_PEAGE_3_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.5,
+ 14,
+ 2.6,
+ 15,
+ 5.2,
+ 16,
+ 6.7,
+ 17,
+ 10.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7695FF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SOU", "NON_CLASSEE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A5A5A5",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SOU",
+ "LOCALE_1_SOU",
+ "LOCALE_2_SOU",
+ "LOCALE_3_SOU",
+ "LOCALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.3,
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.1,
+ 17,
+ 13.1
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F9E742",
+ 17,
+ "#F7E957"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SOU",
+ "REGIONALE_1_SOU",
+ "REGIONALE_2_SOU",
+ "REGIONALE_3_SOU",
+ "REGIONALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.4,
+ 9,
+ 1.5,
+ 14,
+ 3.2,
+ 15,
+ 5.8,
+ 16,
+ 8.3,
+ 17,
+ 16.2
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FBE72B",
+ 17,
+ "#F7E854"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.4,
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SOU",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.1,
+ 14,
+ 4.4,
+ 15,
+ 7.3,
+ 16,
+ 10,
+ 17,
+ 18.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#ECA61C",
+ 17,
+ "#E3B559"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SOU", "AUTOROU_PEAGE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 2.7,
+ 14,
+ 5.8,
+ 15,
+ 9,
+ 16,
+ 12,
+ 17,
+ 20.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - axe central - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SOU", "AUTOROU_PEAGE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#E69912",
+ 17,
+ "#EBA413"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - axe central - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#606060",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau temporaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["COURS_D_EAU_TEMP", "COURS_D_EAU_TEMP_MOY"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.5, 17, 4],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "minzoom": 3,
+ "filter": ["==", ["get", "symbo"], "COURS_D_EAU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.3,
+ 7,
+ 1.5,
+ 12,
+ 1.5,
+ 17,
+ 6.5
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - canal",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": ["==", ["get", "symbo"], "CANAL"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.4, 17, 5.9]
+ }
+ },
+ {
+ "id": "réseau hydro - filet interieur - aqueduc",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_AU_SOL"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.4,
+ 16,
+ 3.5,
+ 17,
+ 5.9
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - carre - aqueduc",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_AU_SOL"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 3.5,
+ 16,
+ 8.7,
+ 17,
+ 14.7
+ ],
+ "line-dasharray": [1, 5]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau moyen ",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": ["==", ["get", "symbo"], "COURS_D_EAU_MOY"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 7, 2, 12, 2.5]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau large ",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": ["==", ["get", "symbo"], "COURS_D_EAU_LAR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 7, 3, 11, 5]
+ }
+ },
+ {
+ "id": "parcellaire - parcelle surface",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "parcellaire_parcelle",
+ "filter": ["==", ["get", "symbo"], "PARCELLE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFF9C", "fill-opacity": 0.7}
+ },
+ {
+ "id": "bati surfacique mairie - Zoom 14",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["MAIRIE", "MAIRIE_ANNEXE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FF3D3D"}
+ },
+ {
+ "id": "bati surfacique mairie - Zoom 15,16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["MAIRIE", "MAIRIE_ANNEXE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#FF3D3D",
+ 15,
+ "#FF4343"
+ ],
+ "fill-outline-color": "#FF1D1D"
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 14,15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BATI_COMMERCIAL",
+ "BATI_INDUSTRIEL",
+ "HANGAR",
+ "HANGAR_COMMERCIAL",
+ "HANGAR_INDUSTRIEL"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#969696"}
+ },
+ {
+ "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BATI_COMMERCIAL",
+ "BATI_INDUSTRIEL",
+ "HANGAR",
+ "HANGAR_COMMERCIAL",
+ "HANGAR_INDUSTRIEL"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#9D9D9D",
+ 16,
+ "#ADADAD"
+ ],
+ "fill-outline-color": "#8A8A8A"
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel public - Zoom 14,15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BATI_PUBLIC", "HANGAR_PUBLIC"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#7C77B2"}
+ },
+ {
+ "id": "bati surfacique fonctionnel public - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BATI_PUBLIC", "HANGAR_PUBLIC"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#9882B8",
+ 16,
+ "#A483D7"
+ ],
+ "fill-outline-color": "#6860BA"
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel sportif - bordure",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_SPORTIF"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#87BB68", "line-width": 4}
+ },
+ {
+ "id": "bati surfacique fonctionnel sportif",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "BATI_SPORTIF"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#85BBB2",
+ 15,
+ "#9AB7B1"
+ ]
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel gare - Zoom 14,15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_GARE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#5559E9"}
+ },
+ {
+ "id": "bati surfacique fonctionnel gare - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_GARE"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#6165E6",
+ 16,
+ "#6D72E3"
+ ],
+ "fill-outline-color": "#3F44EE"
+ }
+ },
+ {
+ "id": "bati surfacique quelconque - Zoom 15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_QQUE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#B29379"}
+ },
+ {
+ "id": "bati surfacique quelconque - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_QQUE"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#C1B287",
+ 16,
+ "#D2BF85"
+ ],
+ "fill-outline-color": "#A58158"
+ }
+ },
+ {
+ "id": "cimetiere surfacique 1",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CIMETIERE_MILI_SURF", "CIMETIERE_SURF", "NECROPOLE_NATIONALE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#B4B4B4",
+ "fill-opacity": 0.5,
+ "fill-outline-color": "#616161"
+ }
+ },
+ {
+ "id": "cimetiere surfacique 2",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CIMETIERE_MILI_SURF", "CIMETIERE_SURF", "NECROPOLE_NATIONALE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Cimetiere"}
+ },
+ {
+ "id": "bati hydro surfacique - Autre",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["ECLUSE_SURF", "RESERVOIR_EAU_SURF"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#6AA2BA", "fill-outline-color": "#264C73"}
+ },
+ {
+ "id": "bati hydro surfacique - Pecherie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "PECHERIE_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#68BADC", "fill-outline-color": "#1476DB"}
+ },
+ {
+ "id": "bati hydro surfacique - Barrage",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "BARRAGE_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-outline-color": "#353535"}
+ },
+ {
+ "id": "bati hydro surfacique - Chateau d'eau",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "CHATEAU_EAU_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#3479BD"}
+ },
+ {
+ "id": "bati infra surfacique - Silo",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "SILO_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#A37173", "fill-outline-color": "#4F4F4F"}
+ },
+ {
+ "id": "bati infra surfacique - Reservoir indus",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "RESERVOIR_INDUS_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#647686", "fill-outline-color": "#353535"}
+ },
+ {
+ "id": "bati infra surfacique - Serre",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": ["match", ["get", "symbo"], ["SERRE_SURF"], true, false],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#8DA7AD", "fill-outline-color": "#696969"}
+ },
+ {
+ "id": "bati infra surfacique - poste electrique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["match", ["get", "symbo"], ["POSTE_ELEC_SURF"], true, false],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#506C93", "fill-opacity": 0.3}
+ },
+ {
+ "id": "bati infra surfacique - poste electrique bord",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "POSTE_ELEC_SURF"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#000000",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 0.3, 17, 1.2]
+ }
+ },
+ {
+ "id": "bati religieux surfacique - Zoom 14",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "AUTRE_CULTE_SURF",
+ "CHAPELLE_SURF",
+ "CHRETIEN_SURF",
+ "EGLISE_SURF",
+ "MOSQUEE_SURF",
+ "SYNAGOGUE_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#E86A6A"}
+ },
+ {
+ "id": "bati religieux surfacique - Zoom 15,16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "AUTRE_CULTE_SURF",
+ "CHAPELLE_SURF",
+ "CHRETIEN_SURF",
+ "EGLISE_SURF",
+ "MOSQUEE_SURF",
+ "SYNAGOGUE_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#E86A6A",
+ 15,
+ "#DE8484"
+ ],
+ "fill-outline-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#EE4949",
+ 15,
+ "#EC5656"
+ ]
+ }
+ },
+ {
+ "id": "bati remarquable surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "ARC_TRIOMPHE_SURF",
+ "ARENE_THEATRE",
+ "CHATEAU_SURF",
+ "FORTIF_SURF",
+ "MONUMENT_SURF",
+ "TOUR_MOULIN_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#747474", "fill-outline-color": "#535353"}
+ },
+ {
+ "id": "bati sportif surfacique fond",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "FOOT_SURF",
+ "MULTI_SPORT_SURF",
+ "NATATION_SURF",
+ "PISTE_SPORT_SURF",
+ "SPORT_INDIF_SURF",
+ "TENNIS_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-outline-color": "#FFFFFF"}
+ },
+ {
+ "id": "bati sportif surfacique",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "FOOT_SURF",
+ "MULTI_SPORT_SURF",
+ "NATATION_SURF",
+ "PISTE_SPORT_SURF",
+ "SPORT_INDIF_SURF",
+ "TENNIS_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#87BB68", "line-width": 2}
+ },
+ {
+ "id": "bati transport surfacique - piste",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["PISTE_DUR", "PISTE_HERBE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#A4A4A4", "fill-outline-color": "#606060"}
+ },
+ {
+ "id": "bati ZAI - Autres",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zai",
+ "minzoom": 15,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "nature"],
+ [
+ "Administration centrale de l'Etat",
+ "Autre service déconcentré de l'Etat",
+ "Autre établissement d'enseignement",
+ "Capitainerie",
+ "Caserne",
+ "Caserne de pompiers",
+ "Collège",
+ "Divers public ou administratif",
+ "Enseignement primaire",
+ "Enseignement supérieur",
+ "Etablissement extraterritorial",
+ "Etablissement hospitalier",
+ "Etablissement pénitentiaire",
+ "Etablissement thermal",
+ "Gendarmerie",
+ "Hôpital",
+ "Lycée",
+ "Maison de retraite",
+ "Maison du parc",
+ "Musée",
+ "Office de tourisme",
+ "Palais de justice",
+ "Piscine",
+ "Police",
+ "Poste",
+ "Science",
+ "Siège d'EPCI",
+ "Structure d'accueil pour personnes handicapées",
+ "Université"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#C376C1",
+ "fill-opacity": 0.5,
+ "fill-outline-color": "#CD54C9"
+ }
+ },
+ {
+ "id": "bati ZAI - Commandement",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zai",
+ "minzoom": 15,
+ "filter": [
+ "match",
+ ["get", "nature"],
+ [
+ "Hôtel de département",
+ "Hôtel de région",
+ "Préfecture",
+ "Préfecture de région",
+ "Sous-préfecture"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#BF0000",
+ "fill-opacity": 0.3,
+ "fill-outline-color": "#870000"
+ }
+ },
+ {
+ "id": "construction linéaire - mur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "MUR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#696969", "line-width": 0.3}
+ },
+ {
+ "id": "construction linéaire - autre",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FORTIF_LIN", "MUR_SOUTENEMENT", "RUINE_LIN"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#4B4B4B", "line-width": 0.5}
+ },
+ {
+ "id": "construction hydrographique linéaire - Barrage",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "BARRAGE_LIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#4B4B4B",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.5, 17, 5]
+ }
+ },
+ {
+ "id": "construction hydrographique linéaire - Quai",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "minzoom": 12,
+ "filter": ["match", ["get", "symbo"], ["DIGUE", "QUAI"], true, false],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#616161",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 14, 1, 17, 2.5]
+ }
+ },
+ {
+ "id": "construction hydrographique linéaire - Pecherie",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "PECHERIE_LIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#004C99",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 14, 1, 17, 2.5]
+ }
+ },
+ {
+ "id": "Chemin a niveau - piste cyclable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "PISTE_CYCLABLE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7635A9",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.1,
+ 15,
+ 1.7,
+ 16,
+ 2,
+ 17,
+ 3.5,
+ 18,
+ 6
+ ],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "Chemin a niveau - filet exterieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#695657",
+ 18,
+ "#969696"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.75,
+ 15,
+ 3,
+ 16,
+ 4.2,
+ 17,
+ 9.5
+ ]
+ }
+ },
+ {
+ "id": "Chemin a niveau - filet interieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.9,
+ 16,
+ 2.7,
+ 17,
+ 5.8
+ ],
+ "line-dasharray": [1, 0.2]
+ }
+ },
+ {
+ "id": "Chemin a niveau - Rue pietonne",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "RUE_PIETONNE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#695657",
+ 18,
+ "#E8A872"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 5
+ ],
+ "line-dasharray": [1, 3]
+ }
+ },
+ {
+ "id": "Chemin a niveau - sentier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "SENTIER"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#695657",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 6
+ ],
+ "line-dasharray": [4, 3]
+ }
+ },
+ {
+ "id": "Chemin a niveau - chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "CHEMIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#695657",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#4B4B4B",
+ 17,
+ "#696969"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5,
+ 18,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1",
+ "BRET_AUTO_LIBRE_2",
+ "BRET_AUTO_LIBRE_3",
+ "BRET_AUTO_PEAGE_1",
+ "BRET_AUTO_PEAGE_2",
+ "BRET_AUTO_PEAGE_3"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#A7350A",
+ 17,
+ "#B56600",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 2.5,
+ 14,
+ 3.7,
+ 15,
+ 6.8,
+ 16,
+ 8.4,
+ 17,
+ 14
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#717171",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE", "NON_CLASSEE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#717171",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 7,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BRET_LOCALE", "LOCALE_1", "LOCALE_2", "LOCALE_3", "LOCALE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#696969",
+ 13,
+ "#878787",
+ 17,
+ "#878787",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE",
+ "REGIONALE_1",
+ "REGIONALE_2",
+ "REGIONALE_3",
+ "REGIONALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#616161",
+ 10,
+ "#878787",
+ 17,
+ "#878787",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE",
+ "PRINCIPALE_1",
+ "PRINCIPALE_2",
+ "PRINCIPALE_3",
+ "PRINCIPALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#B17E18",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE", "AUTOROU_PEAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#A7350A",
+ 17,
+ "#B56600",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1",
+ "BRET_AUTO_LIBRE_2",
+ "BRET_AUTO_LIBRE_3",
+ "BRET_AUTO_PEAGE_1",
+ "BRET_AUTO_PEAGE_2",
+ "BRET_AUTO_PEAGE_3"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#B56600",
+ 17,
+ "#CD8D0D"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.5,
+ 14,
+ 2.6,
+ 15,
+ 5.2,
+ 16,
+ 6.7,
+ 17,
+ 10.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#D1DBFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE", "NON_CLASSEE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BRET_LOCALE", "LOCALE_1", "LOCALE_2", "LOCALE_3", "LOCALE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ "#EB8D13",
+ 7,
+ "#FFFFFF",
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F9E742",
+ 17,
+ "#F7E957"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.3,
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.1,
+ 17,
+ 13.1
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 11,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F9E742",
+ 17,
+ "#F7E957",
+ 18,
+ "#B2B2B2"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE",
+ "REGIONALE_1",
+ "REGIONALE_2",
+ "REGIONALE_3",
+ "REGIONALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ "#DC8410",
+ 7,
+ "#FFFFFF",
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FBE72B",
+ 17,
+ "#F7E854"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 1.1,
+ 6,
+ 1.4,
+ 9,
+ 1.5,
+ 14,
+ 3.2,
+ 15,
+ 5.8,
+ 16,
+ 8.3,
+ 17,
+ 16.2
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FBE72B",
+ 17,
+ "#F7E854",
+ 18,
+ "#B2B2B2"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.4,
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE",
+ "PRINCIPALE_1",
+ "PRINCIPALE_2",
+ "PRINCIPALE_3",
+ "PRINCIPALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ "#C5750C",
+ 7,
+ "#ECA61C",
+ 9,
+ "#ECA61C",
+ 17,
+ "#E3B559"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.6,
+ 6,
+ 1.8,
+ 9,
+ 2.1,
+ 14,
+ 4.4,
+ 15,
+ 7.3,
+ 16,
+ 10,
+ 17,
+ 18.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#ECA61C",
+ 17,
+ "#E3B559",
+ 18,
+ "#B2B2B2"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE", "AUTOROU_PEAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#B56600",
+ 17,
+ "#CD8D0D"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 2.7,
+ 14,
+ 5.8,
+ 15,
+ 9,
+ 16,
+ 12,
+ 17,
+ 20.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - axe central - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE", "AUTOROU_PEAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#B56600",
+ 17,
+ "#CD8D0D",
+ 18,
+ "#B2B2B2"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - axe centrale - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#606060",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "VF_1",
+ "VF_2",
+ "VF_3",
+ "VF_4",
+ "VF_ELEC_1",
+ "VF_ELEC_2",
+ "VF_ELEC_3",
+ "VF_ELEC_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.8, 17, 2.5]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie normale trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "VF_1",
+ "VF_2",
+ "VF_3",
+ "VF_4",
+ "VF_ELEC_1",
+ "VF_ELEC_2",
+ "VF_ELEC_3",
+ "VF_ELEC_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie etroite",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE", "VF_ETROITE_1", "VF_ETROITE_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie etroite trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE", "VF_ETROITE_1", "VF_ETROITE_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie service",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_NON_EXPLOITEE", "VF_SERVICE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [5, 2, 1, 2]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie en construction trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre a niveau - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE", "TRANSPORT_URBAIN"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre a niveau - 2 trait perpendic - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE", "TRANSPORT_URBAIN"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 17],
+ "line-dasharray": [0.1, 0.2, 0.1, 10]
+ }
+ },
+ {
+ "id": "liaison routiere - Bac Liaison Maritime",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "minzoom": 8,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BAC_AUTO", "BAC_LIAISON_MARITIME", "LIAISON_MARITIME"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#386E9B",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 8, 1, 13, 2.5]
+ }
+ },
+ {
+ "id": "liaison routiere - Gue route",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "filter": ["==", ["get", "symbo"], "GUE_ROUTE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ "#8E8E8E",
+ 17,
+ "#4B4B4B",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "liaison routiere - Gue chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "GUE_CHEMIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ "#8E8E8E",
+ 17,
+ "#4B4B4B"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.6,
+ 15,
+ 2.9,
+ 16,
+ 4.4,
+ 17,
+ 6.5
+ ]
+ }
+ },
+ {
+ "id": "liaison routiere - filet extérieur - Pont passerelle",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["PONT_LIN", "PONT_MOBILE_LIN", "PONT_PASSERELLE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#969696",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.2,
+ 15,
+ 3.8,
+ 16,
+ 5.4,
+ 17,
+ 11.8
+ ]
+ }
+ },
+ {
+ "id": "liaison routiere - filet intérieur - Pont passerelle",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["PONT_LIN", "PONT_MOBILE_LIN", "PONT_PASSERELLE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 0.7,
+ 15,
+ 1.1,
+ 16,
+ 1.7,
+ 17,
+ 3.8
+ ]
+ }
+ },
+ {
+ "id": "Routier surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "SURF_ROUT_LOC",
+ "SURF_ROUT_NON_CLA",
+ "SURF_ROUT_PRINC",
+ "SURF_ROUT_REG"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-outline-color": "#000000"}
+ },
+ {
+ "id": "Routier surfacique - Dalle de protection",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "DALLE_DE_PROTECTION"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-opacity": 0.5,
+ "fill-color": "#FFFFFF",
+ "fill-outline-color": "#000000"
+ }
+ },
+ {
+ "id": "Routier surfacique - Escalier surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-opacity": 0.8,
+ "fill-color": "#FFFFFF",
+ "fill-outline-color": "#6E5F6E"
+ }
+ },
+ {
+ "id": "Routier surfacique - Péage surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "SURF_PEAGE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#E4B351", "fill-outline-color": "#B17E18"}
+ },
+ {
+ "id": "bati transport surfacique - bati peage",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "BATI_PEAGE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#A5A5A5", "fill-outline-color": "#606060"}
+ },
+ {
+ "id": "réseau hydro - cours d'eau superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["COURS_D_EAU_MOY_SUP", "COURS_D_EAU_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.5, 17, 6.5]
+ }
+ },
+ {
+ "id": "réseau hydro - canal superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": ["==", ["get", "symbo"], "CANAL_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.4, 17, 5.9]
+ }
+ },
+ {
+ "id": "réseau hydro - filet interieur - aqueduc superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.4,
+ 16,
+ 3.5,
+ 17,
+ 5.9
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - carre - aqueduc superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5AADD4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 3.5,
+ 16,
+ 8.7,
+ 17,
+ 14.7
+ ],
+ "line-dasharray": [1, 5]
+ }
+ },
+ {
+ "id": "Chemin superieur - piste cyclable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "PISTE_CYCLABLE_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7635A9",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.1,
+ 15,
+ 1.7,
+ 16,
+ 2,
+ 17,
+ 3.5,
+ 18,
+ 6
+ ],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "Chemin superieur - filet exterieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#695657",
+ 18,
+ "#969696"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.75,
+ 15,
+ 3,
+ 16,
+ 4.2,
+ 17,
+ 9.5
+ ]
+ }
+ },
+ {
+ "id": "Chemin superieur - filet interieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.9,
+ 16,
+ 2.7,
+ 17,
+ 5.8
+ ],
+ "line-dasharray": [1, 0.2]
+ }
+ },
+ {
+ "id": "Chemin superieur - Rue pietonne",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "RUE_PIETONNE_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#695657",
+ 18,
+ "#B0B0B0"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 5
+ ],
+ "line-dasharray": [1, 3]
+ }
+ },
+ {
+ "id": "Chemin superieur - sentier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "SENTIER_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#695657",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 6
+ ],
+ "line-dasharray": [4, 3]
+ }
+ },
+ {
+ "id": "Chemin superieur - chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "CHEMIN_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#695657",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#4B4B4B",
+ 17,
+ "#696969"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SUP",
+ "BRET_AUTO_LIBRE_2_SUP",
+ "BRET_AUTO_LIBRE_3_SUP",
+ "BRET_AUTO_PEAGE_1_SUP",
+ "BRET_AUTO_PEAGE_2_SUP",
+ "BRET_AUTO_PEAGE_3_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#A7350A",
+ 17,
+ "#B56600",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 2.5,
+ 14,
+ 3.7,
+ 15,
+ 6.8,
+ 16,
+ 8.4,
+ 17,
+ 14
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#717171",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SUP", "NON_CLASSEE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#717171",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SUP",
+ "LOCALE_1_SUP",
+ "LOCALE_2_SUP",
+ "LOCALE_3_SUP",
+ "LOCALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#696969",
+ 13,
+ "#878787",
+ 17,
+ "#878787",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SUP",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#616161",
+ 10,
+ "#878787",
+ 17,
+ "#878787",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SUP",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#B17E18",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SUP", "AUTOROU_PEAGE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#A7350A",
+ 17,
+ "#B56600",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#969696",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5,
+ 18,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SUP",
+ "BRET_AUTO_LIBRE_2_SUP",
+ "BRET_AUTO_LIBRE_3_SUP",
+ "BRET_AUTO_PEAGE_1_SUP",
+ "BRET_AUTO_PEAGE_2_SUP",
+ "BRET_AUTO_PEAGE_3_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#B56600",
+ 17,
+ "#CD8D0D"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.5,
+ 14,
+ 2.6,
+ 15,
+ 5.2,
+ 16,
+ 6.7,
+ 17,
+ 10.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#D1DBFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SUP", "NON_CLASSEE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SUP",
+ "LOCALE_1_SUP",
+ "LOCALE_2_SUP",
+ "LOCALE_3_SUP",
+ "LOCALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F9E742",
+ 17,
+ "#F7E957"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.3,
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.1,
+ 17,
+ 13.1
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F9E742",
+ 17,
+ "#F7E957"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SUP",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FBE72B",
+ 17,
+ "#F7E854"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.4,
+ 9,
+ 1.5,
+ 14,
+ 3.2,
+ 15,
+ 5.8,
+ 16,
+ 8.3,
+ 17,
+ 16.2
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FBE72B",
+ 17,
+ "#F7E854"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SUP",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#ECA61C",
+ 17,
+ "#E3B559"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.1,
+ 14,
+ 4.4,
+ 15,
+ 7.3,
+ 16,
+ 10,
+ 17,
+ 18.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#ECA61C",
+ 17,
+ "#E3B559"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SUP", "AUTOROU_PEAGE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#B56600",
+ 17,
+ "#CD8D0D"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 2.7,
+ 14,
+ 5.8,
+ 15,
+ 9,
+ 16,
+ 12,
+ 17,
+ 20.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - axe central - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SUP", "AUTOROU_PEAGE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#B56600",
+ 17,
+ "#CD8D0D"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - axe centrale - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#606060",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SUP", "VF_2_SUP", "VF_ELEC_1_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.8, 17, 2.5]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie normale trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SUP", "VF_2_SUP", "VF_ELEC_1_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie etroite",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SUP", "VF_ETROITE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie etroite trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SUP", "VF_ETROITE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie service",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_NON_EXPLOITEE_SUP", "VF_SERVICE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [5, 2, 1, 2]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie en construction trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre superieur - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SUP", "TRANSPORT_URBAIN_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre superieur - 2 trait perpendic - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SUP", "TRANSPORT_URBAIN_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 17],
+ "line-dasharray": [0.1, 0.2, 0.1, 10]
+ }
+ },
+ {
+ "id": "Limite - cloture",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "filter": ["==", ["get", "symbo"], "CLOTURE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#000000",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.6, 17, 1],
+ "line-dasharray": [1.5, 4]
+ }
+ },
+ {
+ "id": "Limite - layon",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LAYON"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#8F696C",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ],
+ "line-dasharray": [4, 7]
+ }
+ },
+ {
+ "id": "Zone Règlementee - Enceinte militaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LIM_CHAMP_TIR",
+ "LIM_ENCEINTE_MILI",
+ "LIM_ENCEINTE_MILITAIRE",
+ "LIM_ZONE_REGLEMENTEE"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(202, 83, 36, 0.8)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.7, 17, 3.1],
+ "line-dasharray": [4, 1, 2, 5]
+ }
+ },
+ {
+ "id": "limite zone naturelle",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LIM_RESERVE_NATURELLE",
+ "LIM_ZONE_NATURELLE",
+ "LIM_ZONE_NATURELLE_ILE"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FF526A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 1]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 10",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "maxzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#327A4D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 1]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 11",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 10,
+ "maxzoom": 11,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#327A4D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 12",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 11,
+ "maxzoom": 12,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#327A4D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 3]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 13",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 12,
+ "maxzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#327A4D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 4]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 14",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(47, 122, 77, 0.7)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 5]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc marin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LIM_PARC_NATUREL_MARIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#20607A",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 1]
+ }
+ },
+ {
+ "id": "parcellaire - parcelle bordure",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "parcellaire_parcelle",
+ "filter": ["==", ["get", "symbo"], "PARCELLE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#7200E6", "line-width": 1}
+ },
+ {
+ "id": "parcellaire - section",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "parcellaire_section",
+ "filter": ["==", ["get", "symbo"], "SECTION"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#1E5C00",
+ "line-width": 1.9,
+ "line-dasharray": [2, 4, 2]
+ }
+ },
+ {
+ "id": "toponyme - parcellaire - section",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_parcellaire_section",
+ "filter": ["==", ["get", "txt_typo"], "SECTION"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-offset": [0, 0],
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {"text-color": "#1E5C00"}
+ },
+ {
+ "id": "toponyme - parcellaire - parcelle",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_parcellaire_parcelle",
+ "filter": ["==", ["get", "txt_typo"], "PARCELLE"],
+ "layout": {
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Bold"]
+ },
+ "paint": {
+ "text-color": "#7200E6",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - parcellaire - adresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_parcellaire_adresse_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ADRESSE"],
+ "layout": {
+ "symbol-placement": "point",
+ "text-field": ["concat", "{numero}", "{indice_de_repetition}"],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Bold"]
+ },
+ "paint": {
+ "text-color": "#4F4133",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "limite admin - limite de commune",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_ARRONDISSEMENT", "LIM_CANTON", "LIM_COMMUNE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(85, 78, 149, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 3, 17, 5.5],
+ "line-dasharray": [4, 2, 1, 1, 1, 1, 1, 2]
+ }
+ },
+ {
+ "id": "limite admin - limite de département bandeau",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 8,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "symbo"], "LIM_DEPARTEMENT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(112, 107, 188, 0.4)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 9, 4.1, 12, 6]
+ }
+ },
+ {
+ "id": "limite admin - limite de département tiret",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LIM_DEPARTEMENT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(85, 78, 149, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 3, 17, 5.5],
+ "line-dasharray": [4, 2, 1, 1, 1, 2]
+ }
+ },
+ {
+ "id": "limite admin - limite de région bandeau",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 7,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "symbo"], "LIM_REGION"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(112, 107, 188, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 9, 4.5, 12, 6.7]
+ }
+ },
+ {
+ "id": "limite admin - limite de région tiret",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LIM_REGION"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(85, 78, 149, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 3, 17, 5.5],
+ "line-dasharray": [4, 2, 1, 2]
+ }
+ },
+ {
+ "id": "limite etat 1",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 2,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_ETAT", "LIM_ETAT_ETRANGER"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(112, 107, 188, 0.6)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 2,
+ 2,
+ 3,
+ 3.5,
+ 9,
+ 5,
+ 14,
+ 13,
+ 15,
+ 20,
+ 16,
+ 24,
+ 17,
+ 42
+ ]
+ }
+ },
+ {
+ "id": "limite etat 2",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 7,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_ETAT", "LIM_ETAT_ETRANGER"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#6F6B95",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.5,
+ 14,
+ 3.5,
+ 15,
+ 5.5,
+ 16,
+ 6.5,
+ 17,
+ 11
+ ],
+ "line-dasharray": [4, 2]
+ }
+ },
+ {
+ "id": "limite cote",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 7,
+ "maxzoom": 10,
+ "filter": ["match", ["get", "symbo"], ["LIM_COTE"], true, false],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#587E8F", "line-width": 1}
+ },
+ {
+ "id": "ligne electrique",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "LIGNE_ELECTRIQUE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#606060",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1, 17, 2]
+ }
+ },
+ {
+ "id": "autre construction linéaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CABLE",
+ "CONDUITE_MATIERES_P",
+ "HYDROCARBURES",
+ "PISTE_AERO_LIN",
+ "PISTE_BOBSLEIGH",
+ "PISTE_LUGE",
+ "REMONTEE_MEC",
+ "SPORT_MONTAGNE_LIN"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#606060", "line-width": 1}
+ },
+ {
+ "id": "autre construction linéaire - trait perpend cable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "CABLE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#606060",
+ "line-width": 5,
+ "line-dasharray": [0.5, 10]
+ }
+ },
+ {
+ "id": "autre construction linéaire - trait perpend 1 remont",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "REMONTEE_MEC"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#606060",
+ "line-width": 6,
+ "line-dasharray": [1, 10]
+ }
+ },
+ {
+ "id": "autre construction linéaire - trait perpend 2 remont",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "REMONTEE_MEC"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#8E8E8E",
+ "line-width": 6,
+ "line-dasharray": [0.3, 0.4, 0.3, 10]
+ }
+ },
+ {
+ "id": "autre construction linéaire - trait perpend carbur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CONDUITE_MATIERES_P", "HYDROCARBURES"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#606060",
+ "line-width": 5,
+ "line-dasharray": [1, 10]
+ }
+ },
+ {
+ "id": "routier ponctuel - peage ponctuel",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "routier_ponc",
+ "minzoom": 8,
+ "filter": ["==", ["get", "symbo"], "PEAGE_PONC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 9, 3.5, 12, 6.5],
+ "circle-color": "#B17E18",
+ "circle-stroke-width": 1,
+ "circle-stroke-color": "#606060"
+ }
+ },
+ {
+ "id": "routier ponctuel - barriere",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "routier_ponc",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "BARRIERE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Barriere",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.25,
+ 16,
+ 0.45,
+ 17,
+ 0.7
+ ],
+ "icon-allow-overlap": true,
+ "icon-rotate": ["get", "rotation"]
+ },
+ "paint": {"icon-color": "#717171"}
+ },
+ {
+ "id": "hydro ponctuel",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "hydro_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "AUTRE_HYDRO_PONC",
+ "CASCADE",
+ "FONTAINE",
+ "PERTE",
+ "POINT_D_EAU",
+ "RESURGENCE",
+ "SOURCE",
+ "SOURCE_CAPTEE"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 7],
+ "circle-color": "#FFFFFF",
+ "circle-opacity": 1,
+ "circle-stroke-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2,
+ 17,
+ 5
+ ],
+ "circle-stroke-color": "#3479BD"
+ }
+ },
+ {
+ "id": "point coté",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_ponc",
+ "minzoom": 11,
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["POINT_COTE", "POINT_COTE_RESEAU", "POINT_COTE_TOPO", "POINT_RBF"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.1,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.2, 0.4],
+ "text-padding": 2,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#3C3C3C"}
+ },
+ {
+ "id": "bati ponctuel : Hopital",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "HOPITAL_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Hopital",
+ "icon-size": 0.33
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel hydrographique",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CITERNE",
+ "LAVOIR",
+ "STATION_DE_POMPAGE",
+ "STATION_EPURATION",
+ "USINE_ELEVATRICE",
+ "USINE_PRODUCTION_EAU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Pompage",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.2, 17, 0.6],
+ "icon-allow-overlap": true
+ },
+ "paint": {"icon-color": "#2C669F"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Puits-Abreuvoir",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["ABREUVOIR", "PUITS"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 7],
+ "circle-color": "#FFFFFF",
+ "circle-opacity": 1,
+ "circle-stroke-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2,
+ 17,
+ 5
+ ],
+ "circle-stroke-color": "#3479BD"
+ }
+ },
+ {
+ "id": "bati ponctuel hydrographique - Phare",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "PHARE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Phare",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 17, 1.3]
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Amer-Feu",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AMER", "FEU", "FEU_PONC", "TOURELLE_LUMINEUSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Feu",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 17, 1.3]
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Balise",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BALISE", "TOURELLE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Balise",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 17, 1.3]
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Ecluse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "ECLUSE_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Ecluse",
+ "icon-size": 0.2
+ },
+ "paint": {"icon-color": "#2C669F"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Barrage",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 14,
+ "filter": ["==", ["get", "symbo"], "BARRAGE_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Barrage",
+ "icon-size": 0.25
+ },
+ "paint": {"icon-color": "#2C669F"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Chateau d'eau",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "CHATEAU_EAU_PONC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 8],
+ "circle-color": "#3479BD"
+ }
+ },
+ {
+ "id": "bati ponctuel hydrographique - Réservoir d'eau",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "RESERVOIR_EAU_PONC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 8],
+ "circle-color": "#5AADD4",
+ "circle-opacity": 1,
+ "circle-stroke-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 17,
+ 2.5
+ ],
+ "circle-stroke-color": "#3479BD"
+ }
+ },
+ {
+ "id": "bati ponctuel infrastructure - Constr spé",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "ANTENNE",
+ "CHEMINEE",
+ "CHEVALEMENT",
+ "CONSTR_INDIF_PONC",
+ "CONSTR_SPE_TECHNIQUE",
+ "PUITS_GAZ",
+ "PUITS_PETROLE",
+ "PYLONE_METEO",
+ "TORCHERE",
+ "TOUR_GUET",
+ "TOUR_HERTZIENNE"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "ConstrSpeciale",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.22, 17, 0.5]
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - Silo",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "SILO_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Silo",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.22, 17, 0.5]
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - Eolienne",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "EOLIENNE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Eolienne",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 17,
+ 1,
+ 18,
+ 0.8
+ ]
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - Reservoir",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "RESERVOIR_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Reservoir",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.26, 17, 0.5]
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - pylone électrique",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "PYLONE_ELEC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 13, 1, 17, 2],
+ "circle-color": "#000000"
+ }
+ },
+ {
+ "id": "bati ponctuel montagne - Abri",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "ABRI"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Abri",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 15,
+ 0.6,
+ 17,
+ 0.9
+ ]
+ },
+ "paint": {"icon-color": "#1B492A"}
+ },
+ {
+ "id": "bati ponctuel montagne - Refuge Garde",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "REFUGE_GARDE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Refugegard",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 15,
+ 0.6,
+ 17,
+ 0.9
+ ]
+ },
+ "paint": {"icon-color": "#1B492A"}
+ },
+ {
+ "id": "bati ponctuel montagne - Refuge Non Garde",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "REFUGE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Refugenongard",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 15,
+ 0.6,
+ 17,
+ 0.9
+ ]
+ },
+ "paint": {"icon-color": "#1B492A"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aeroport FXX",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AEROPORT_PONC"],
+ ["==", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aeroport",
+ "icon-size": 0.5
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aerodrome FXX",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AERODROME_PONC"],
+ ["==", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aerodrome",
+ "icon-size": 0.4
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aeroport DOM",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AEROPORT_PONC"],
+ ["!=", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aeroport",
+ "icon-size": 0.5
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aerodrome DOM",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AERODROME_PONC"],
+ ["!=", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aerodrome",
+ "icon-size": 0.4
+ },
+ "paint": {"icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati ponctuel transport ferroviaire",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "GARE_VOYAGEURS"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Gare",
+ "icon-size": 0.33
+ },
+ "paint": {"icon-color": "#5A5A5A"}
+ },
+ {
+ "id": "toponyme - bornes postales haute - chemins",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CHEMIN",
+ "CHEMIN_SOU",
+ "CHEMIN_SUP",
+ "ESCALIER",
+ "ESCALIER_SUP",
+ "PISTE_CYCLABLE",
+ "PISTE_CYCLABLE_SOU",
+ "PISTE_CYCLABLE_SUP",
+ "RUE_PIETONNE",
+ "RUE_PIETONNE_SOU",
+ "RUE_PIETONNE_SUP",
+ "SENTIER",
+ "SENTIER_SOU",
+ "SENTIER_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - non revetue, non classee",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "NON_CLASSEE",
+ "NON_CLASSEE_4",
+ "NON_CLASSEE_4_SUP",
+ "NON_CLASSEE_RESTREINT",
+ "NON_CLASSEE_RESTREINT_SUP",
+ "NON_CLASSEE_SOU",
+ "NON_CLASSEE_SUP",
+ "NON_REVETUE_CARRO",
+ "NON_REVETUE_CARRO_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.3],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - locales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LOCALE_1",
+ "LOCALE_1_SOU",
+ "LOCALE_1_SUP",
+ "LOCALE_2",
+ "LOCALE_2_SOU",
+ "LOCALE_2_SUP",
+ "LOCALE_3",
+ "LOCALE_3_SOU",
+ "LOCALE_3_SUP",
+ "LOCALE_4",
+ "LOCALE_4_SOU",
+ "LOCALE_4_SUP",
+ "LOCALE_CONSTR",
+ "LOCALE_CONSTR_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.4],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - regionales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "REGIONALE_1",
+ "REGIONALE_1_SOU",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2",
+ "REGIONALE_2_SOU",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3",
+ "REGIONALE_3_SOU",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4",
+ "REGIONALE_4_SUP",
+ "REGIONALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.5],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - principales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "PRINCIPALE_1",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4",
+ "PRINCIPALE_4_SOU",
+ "PRINCIPALE_4_SUP",
+ "PRINCIPALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.6],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - chemins",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CHEMIN",
+ "CHEMIN_SOU",
+ "CHEMIN_SUP",
+ "ESCALIER",
+ "ESCALIER_SUP",
+ "PISTE_CYCLABLE",
+ "PISTE_CYCLABLE_SOU",
+ "PISTE_CYCLABLE_SUP",
+ "RUE_PIETONNE",
+ "RUE_PIETONNE_SOU",
+ "RUE_PIETONNE_SUP",
+ "SENTIER",
+ "SENTIER_SOU",
+ "SENTIER_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - non revetue, non classee",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "NON_CLASSEE",
+ "NON_CLASSEE_4",
+ "NON_CLASSEE_4_SUP",
+ "NON_CLASSEE_RESTREINT",
+ "NON_CLASSEE_RESTREINT_SUP",
+ "NON_CLASSEE_SOU",
+ "NON_CLASSEE_SUP",
+ "NON_REVETUE_CARRO",
+ "NON_REVETUE_CARRO_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.3],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - locales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LOCALE_1",
+ "LOCALE_1_SOU",
+ "LOCALE_1_SUP",
+ "LOCALE_2",
+ "LOCALE_2_SOU",
+ "LOCALE_2_SUP",
+ "LOCALE_3",
+ "LOCALE_3_SOU",
+ "LOCALE_3_SUP",
+ "LOCALE_4",
+ "LOCALE_4_SOU",
+ "LOCALE_4_SUP",
+ "LOCALE_CONSTR",
+ "LOCALE_CONSTR_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.4],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - regionales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "REGIONALE_1",
+ "REGIONALE_1_SOU",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2",
+ "REGIONALE_2_SOU",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3",
+ "REGIONALE_3_SOU",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4",
+ "REGIONALE_4_SUP",
+ "REGIONALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.5],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - principales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "PRINCIPALE_1",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4",
+ "PRINCIPALE_4_SOU",
+ "PRINCIPALE_4_SUP",
+ "PRINCIPALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.6],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5B4C3B",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - courbe rocher maitresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_COURBE_ROCHER"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 30,
+ "text-rotate": ["get", "rotation"],
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#262626",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - courbe glacier maitresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_COURBE_GLACIER"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 30,
+ "text-rotate": ["get", "rotation"],
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#2E77BE",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - courbe maitresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_COURBE"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 30,
+ "text-rotate": ["get", "rotation"],
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#483723",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - liaison maritime",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_liaison_lin",
+ "minzoom": 8,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "LIAISON_MARITIME"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#386E9B",
+ "text-halo-width": 5,
+ "text-halo-color": "#5AADD4"
+ }
+ },
+ {
+ "id": "toponyme bati station de métro + bati ponctuel metro",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_E_1"],
+ ["==", ["get", "symbo"], "STATION_METRO"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-offset": [0.3, -0.25],
+ "text-padding": 3,
+ "text-anchor": "bottom-left",
+ "text-font": ["Source Sans Pro"],
+ "icon-image": "Metro",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 15, 0.33, 17, 0.6]
+ },
+ "paint": {"text-color": "#2D2D2D", "icon-color": "#4B4B4B"}
+ },
+ {
+ "id": "toponyme ferre lineaire",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ferre_lin",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["FER_NOM", "FER_OUVRAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-anchor": "center",
+ "text-offset": [0, -1],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-width": 1,
+ "text-halo-color": "rgba(255, 255, 255, 1)"
+ }
+ },
+ {
+ "id": "toponyme station epuration, de pompage, usine de production eau",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 14,
+ "filter": ["==", ["get", "txt_typo"], "station"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "designation"]],
+ "text-anchor": "left",
+ "text-offset": [0.8, 0],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#335F86"}
+ },
+ {
+ "id": "toponyme bati ponc gare",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 15,
+ "filter": ["==", ["get", "txt_typo"], "gore"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "designation"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#000000"}
+ },
+ {
+ "id": "toponyme bati ponc barrage",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "filter": ["==", ["get", "txt_typo"], "BARRAGE_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "left",
+ "text-offset": [0.8, 0],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#335F86"}
+ },
+ {
+ "id": "toponyme bati ponc phare - niveau 13",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "maxzoom": 13,
+ "filter": ["==", ["get", "txt_typo"], "PHARE"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "right",
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#3E1F1F"}
+ },
+ {
+ "id": "toponyme bati ponc phare - niveau 14à19",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "PHARE"],
+ [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_C_6", "TYPO_C_7", "TYPO_C_8", "TYPO_E_GE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "right",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 18, 18],
+ "text-allow-overlap": false,
+ "text-offset": [-2, 0],
+ "text-padding": 3,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#3E1F1F"}
+ },
+ {
+ "id": "toponyme bati ponc autre",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_ACTIVITE", "BAT_FORTIF", "BAT_VILLAGE_DETRUIT"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#3E1F1F"}
+ },
+ {
+ "id": "toponyme bati ponc aerogare",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 14,
+ "maxzoom": 17,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_E_GE"],
+ ["==", ["get", "symbo"], "AEROGARE"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 9, 16, 11],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#0D0037",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme bati ponc aeroport 12",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 11,
+ "maxzoom": 12,
+ "filter": ["==", ["get", "txt_typo"], "AEROPORT_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -1.3],
+ "text-size": 10.5,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#0D0037",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aeroport 13",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "txt_typo"], "AEROPORT_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -2],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#0D0037",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aeroport",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 13,
+ "maxzoom": 17,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_A_5"],
+ ["==", ["get", "symbo"], "AEROPORT"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 11, 16, 13],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#0D0037",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aerodrome 12",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 11,
+ "maxzoom": 12,
+ "filter": ["==", ["get", "txt_typo"], "AERODROME_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -1.3],
+ "text-size": 9.5,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#0D0037",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aerodrome 13",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "txt_typo"], "AERODROME_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -2],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#0D0037",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aerodrome",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 13,
+ "maxzoom": 17,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_A_7"],
+ ["==", ["get", "symbo"], "AERODROME"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 10, 16, 12],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#0D0037",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 5",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_D_10", "TYPO_D_9", "TYPO_E_1_cyan"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 11, 17, 14],
+ "text-allow-overlap": true,
+ "text-padding": 5,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc glacier",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_GLACIER_2"],
+ "layout": {
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 14,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - limite militaire ponc 3 et 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_MILI_3", "LIM_MILI_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-allow-overlap": false,
+ "text-padding": 2,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#0A1800",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - limite parc ponc 3 et 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_PARC_3", "LIM_PARC_4", "RESERVE_NATURELLE_PONC"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": false,
+ "text-padding": 2,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme numéro de route - départementale",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_numero_lin",
+ "minzoom": 11,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "Départementale"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10.5,
+ "text-allow-overlap": false,
+ "text-padding": 2,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Semibold"],
+ "text-rotation-alignment": "viewport"
+ },
+ "paint": {
+ "text-color": "#3A3A3A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme numéro de route - nationale",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_numero_lin",
+ "minzoom": 7,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "Nationale"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-allow-overlap": false,
+ "text-padding": 0,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Regular"],
+ "icon-image": "Ecluse",
+ "icon-rotation-alignment": "viewport",
+ "text-rotation-alignment": "viewport",
+ "icon-text-fit": "both",
+ "icon-size": 0
+ },
+ "paint": {
+ "text-color": "#B4B4B4",
+ "icon-color": "#4B4B4B",
+ "text-halo-color": "rgba(60, 60, 60, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme numéro de route - autoroute",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_numero_lin",
+ "minzoom": 7,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "Autoroute"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 0,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Regular"],
+ "icon-image": "Ecluse",
+ "icon-rotation-alignment": "viewport",
+ "text-rotation-alignment": "viewport",
+ "icon-text-fit": "both",
+ "icon-size": 0
+ },
+ "paint": {
+ "text-color": "#B4B4B4",
+ "icon-color": "#4B4B4B",
+ "text-halo-color": "rgba(60, 60, 60, 0.5)",
+ "text-halo-width": 5
+ }
+ },
+ {
+ "id": "toponyme - odonyme abrégé",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_odonyme_lin",
+ "minzoom": 15,
+ "maxzoom": 17,
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "nom_gauche"]],
+ "text-size": 10,
+ "text-anchor": "center",
+ "text-max-angle": 30,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 1)"
+ }
+ },
+ {
+ "id": "toponyme - odonyme desabrégé",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_odonyme_lin",
+ "minzoom": 17,
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "nom_desabrege"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-max-angle": 30,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 1)"
+ }
+ },
+ {
+ "id": "toponyme - lieu dit non habité 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "LIEU-DIT_NON_HABITE"],
+ ["match", ["get", "txt_typo"], ["TYPO_B_10", "TYPO_B_11"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - bois",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ ["match", ["get", "txt_typo"], ["TYPO_F_10", "TYPO_F_11"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["ORO_GORGE_2", "ORO_SOMMET_3"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "GORGE",
+ "GROTTE",
+ "ORO_GORGE_2",
+ "ORO_SOMMET_3",
+ "TYPO_G_10",
+ "TYPO_G_9"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 11, 16, 16],
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_SURF_4",
+ "HYD_SURF_4_T",
+ "HYD_SURF_5",
+ "HYD_SURF_5_T",
+ "SOURCE",
+ "TYPO_D_8",
+ "lac - étang - bassin"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 13, 17, 16],
+ "text-allow-overlap": true,
+ "text-padding": 5,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme quartier ",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_QUARTIER", "BAT_QUARTIER_T"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA10",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "TYPO_A_10"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 11, 17, 13.5],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - lieu dit non habité",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "LIEU-DIT_NON_HABITE"],
+ [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_B_7", "TYPO_B_8", "TYPO_B_9"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - bois 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_F_7", "TYPO_F_8", "TYPO_F_9"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 16,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite hameau ",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 11,
+ "maxzoom": 13,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_HAMEAU", "BAT_HAMEAU_T"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.17,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite importance 5",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 9,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "BAT_ANCIENNE_COM",
+ "BAT_ANCIENNE_COM_T",
+ "BAT_CHEF_LIEU_COM",
+ "BAT_CHEF_LIEU_COM-T",
+ "BAT_CHEF_LIEU_COM_T",
+ "BAT_COMMUNE_5",
+ "BAT_COMMUNE_5_T",
+ "BAT_COMMUNE_ASSOCIEE",
+ "BAT_COMMUNE_ASSOCIEE_T",
+ "Commune très petite",
+ "commune 5"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.21,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11.5,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - ocs lineaire 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_lin",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_3"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 12, 12, 15],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-width": 1,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - lieu dit non habité 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "LIEU-DIT_NON_HABITE"],
+ ["match", ["get", "txt_typo"], ["TYPO_B_4", "TYPO_B_5"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - bois 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ ["match", ["get", "txt_typo"], ["TYPO_F_4", "TYPO_F_5"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 19,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - bois 0",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ ["match", ["get", "txt_typo"], ["TYPO_F_2", "TYPO_F_3"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 22,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - ocs ponc 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_3"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 12, 12, 15],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_2",
+ "ORO_CAP_3",
+ "ORO_COL_2",
+ "ORO_GORGE-1",
+ "ORO_GORGE_1",
+ "ORO_ILE_3",
+ "ORO_RELIEF_3",
+ "ORO_RELIEF_3_T",
+ "ORO_RELIEF_4",
+ "ORO_RELIEF_4_T",
+ "ORO_SOMMET_2"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_2",
+ "ORO_CAP_3",
+ "ORO_COL_2",
+ "ORO_GORGE-1",
+ "ORO_GORGE_1",
+ "ORO_ILE_3",
+ "ORO_RELIEF_3",
+ "ORO_RELIEF_3_T",
+ "ORO_RELIEF_4",
+ "ORO_RELIEF_4_T",
+ "ORO_SOMMET_2",
+ "TYPO_G_7",
+ "TYPO_G_8"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 16, 17],
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_LIN_3",
+ "HYD_LIN_4",
+ "HYD_LIN_5",
+ "HYD_SURF_3",
+ "HYD_SURF_3_T",
+ "HYD_SURF_4",
+ "HYD_SURF_4_T",
+ "HYD_SURF_5",
+ "HYD_SURF_5_T",
+ "TYPO_D_5",
+ "canal",
+ "petite rivière"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 12, 18, 19],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.7)"
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_D_10", "TYPO_D_6", "TYPO_D_8", "TYPO_D_9"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 10, 18, 16],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.7)"
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_SURF_3",
+ "TYPO_D_5",
+ "TYPO_D_6",
+ "TYPO_D_7",
+ "baie",
+ "grande baie",
+ "petit golfe"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 15, 17, 18],
+ "text-allow-overlap": true,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc zai zoom 16",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 15,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "zai"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "designation"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#000000"}
+ },
+ {
+ "id": "toponyme bati ponc zai zoom 17 et 18",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "zai"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#000000"}
+ },
+ {
+ "id": "toponyme localite importance 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 7,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE_4", "BAT_COMMUNE_4_T", "commune 4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.21,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA9",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "TYPO_A_9"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 11.5, 17, 14],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA8",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "TYPO_A_8"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 12, 17, 15],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - limite militaire ponc 1 et 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_MILI_1", "LIM_MILI_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 5,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#0A1800",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - limite parc marin",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "minzoom": 8,
+ "filter": ["==", ["get", "txt_typo"], "LIM_PARC_NATUREL_MARIN"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 10,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#20607A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - limite parc ponc 1 et 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_PARC_1", "LIM_PARC_2", "LIM_PARC_NATUREL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 10,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - ocs lineaire 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_lin",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_2"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 15, 12, 18],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - ocs ponc 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_2"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 15, 12, 18],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_1",
+ "ORO_ILE_2",
+ "ORO_RELIEF_2",
+ "ORO_RELIEF_2_T",
+ "ORO_SOMMET_1"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-padding": 10,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 9,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_1",
+ "ORO_COL_1",
+ "ORO_ILE_2",
+ "ORO_RELIEF_2",
+ "ORO_RELIEF_2_T",
+ "ORO_SOMMET_1",
+ "TYPO_G_4",
+ "TYPO_G_6",
+ "sommet ou col"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 13,
+ 10,
+ 15,
+ 13,
+ 15,
+ 16,
+ 19
+ ],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 2B",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["cap ou pointe", "île"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_LIN_2",
+ "HYD_SURF_2",
+ "HYD_SURF_2_T",
+ "TYPO_D_3",
+ "rivière moyenne"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 15, 18, 21],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "minzoom": 5,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_SURF_2",
+ "TYPO_D_2",
+ "TYPO_D_3",
+ "TYPO_D_4",
+ "golfe moyen",
+ "moyen"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 5,
+ 12,
+ 6,
+ 18,
+ 10,
+ 17,
+ 18,
+ 21
+ ],
+ "text-allow-overlap": false,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite importance 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 5,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE_3", "BAT_COMMUNE_3_T", "commune 3"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.21,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 5, 10, 6, 15],
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA7 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_7"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 13, 17, 16],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA6 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_6"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 15, 17, 18],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["ORO_ILE_1", "ORO_RELIEF_1", "ORO_RELIEF_1_T"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 20,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-padding": 5,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc monde",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 5,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "Basin",
+ "Depression",
+ "Desert",
+ "Geoarea",
+ "Gorge",
+ "Island",
+ "Island group",
+ "Isthmus",
+ "Lake",
+ "Lowland",
+ "Pen/cape",
+ "Plain",
+ "Plateau",
+ "Range/mtn",
+ "Tundra",
+ "Valley"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA4 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_4"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 17,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme - ocs lineaire 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_lin",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_1"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 18, 12, 22],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-padding": 1,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - ocs ponc 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_1"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 18, 12, 22],
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#1E5C00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_ILE_1",
+ "ORO_RELIEF_1",
+ "ORO_RELIEF_1_T",
+ "TYPO_G_1",
+ "TYPO_G_2",
+ "TYPO_G_3",
+ "grande île"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 21,
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#652A25",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire glacier",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["ORO_GLACIER_1", "ORO_GLACIER_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD-LIN-1",
+ "HYD_LIN_1",
+ "HYD_SURF_1",
+ "HYD_SURF_1_T",
+ "TYPO_D_1",
+ "TYPO_D_2",
+ "grande rivière"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 18,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire ocean",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": ["==", ["get", "txt_typo"], "mer et océan"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 30,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-width": 4,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "minzoom": 4,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["HYD_SURF_1", "TYPO_D_1", "grand", "grand golfe", "mer"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 16,
+ 6,
+ 30,
+ 10,
+ 25
+ ],
+ "text-allow-overlap": true,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite importance 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 4,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE-2", "BAT_COMMUNE_2", "BAT_COMMUNE_2_T", "commune 2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.25,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 4, 10, 6, 17],
+ "text-allow-overlap": true,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.2],
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": [
+ "step",
+ ["zoom"],
+ ["literal", ["Source Sans Pro Regular"]],
+ 7,
+ ["literal", ["Source Sans Pro Bold"]],
+ 10,
+ ["literal", ["Source Sans Pro Regular"]]
+ ]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA3 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_3"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 19,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA2 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_2"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 21,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA7 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_7"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 13, 17, 16],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA6 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_6"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 15, 17, 18],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA1 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_1"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 23,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA4 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_4"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 17,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA3 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_3"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 19,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA2 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_2"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 21,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite importance 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 3,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE_1", "BAT_COMMUNE_1_T", "commune 1"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.3,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 3, 10, 6, 20],
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.25, -0.1],
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": [
+ "step",
+ ["zoom"],
+ ["literal", ["Source Sans Pro Regular"]],
+ 7,
+ ["literal", ["Source Sans Pro Bold"]],
+ 10,
+ ["literal", ["Source Sans Pro Regular"]]
+ ]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA1 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_1"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 23,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc ocean",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "minzoom": 1,
+ "filter": ["==", ["get", "txt_typo"], "ocean"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 1, 16, 6, 30],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#335F86",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme pays 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 4,
+ "maxzoom": 5,
+ "filter": ["==", ["get", "txt_typo"], "pays 3"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 9,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme pays 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 2,
+ "maxzoom": 5,
+ "filter": ["==", ["get", "txt_typo"], "pays 2"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 2,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme pays 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 2,
+ "maxzoom": 5,
+ "filter": ["==", ["get", "txt_typo"], "pays 1"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 2,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme continent",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 3,
+ "filter": ["==", ["get", "txt_typo"], "continent"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Bold"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ }
+ ]
+}
diff --git a/samples-src/resources/data/mapbox/styles/planign/gris.json b/samples-src/resources/data/mapbox/styles/planign/gris.json
index 63f5440ac..32548372d 100644
--- a/samples-src/resources/data/mapbox/styles/planign/gris.json
+++ b/samples-src/resources/data/mapbox/styles/planign/gris.json
@@ -1,8567 +1,10727 @@
-{
- "version": 8,
- "name": "PLAN IGN",
- "sprite": "https://wxs.ign.fr/static/vectorTiles/styles/PLAN.IGN/sprite/PlanIgn-Gris",
- "sources": {
- "plan_ign": {
- "type": "vector",
- "url": "https://wxs.ign.fr/choisirgeoportail/geoportail/tms/1.0.0/PLAN.IGN/metadata.json"
- }
- },
- "transition": {
- "duration": 300,
- "delay": 0
- },
- "layers": [
- {
- "id": "bckgrd",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "fond_opaque",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 0m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_0"],
- "paint": {
- "fill-color": "#E1E1E1",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 100m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_100"],
- "paint": {
- "fill-color": "#F6F6F6",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 200m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_200"],
- "paint": {
- "fill-color": "#E3E3E3",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 1000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_1000"],
- "paint": {
- "fill-color": "#C7C7C7",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 3000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_3000"],
- "paint": {
- "fill-color": "#979797",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 4000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_4000"],
- "paint": {
- "fill-color": "#7C7C7C",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 5000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_5000"],
- "paint": {
- "fill-color": "#505050",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - glacier",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","GLACIER"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-opacity": 0.7
- }
- },
- {
- "id": "ocs - vegetation - zone boiséee, foret fermee, peupleraie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ZONE_BOISEE",
- "ZONE_FORET_FERMEE_FEUIL",
- "ZONE_FORET_FERMEE_CONI",
- "ZONE_FORET_FERMEE_MIXTE",
- "ZONE_PEUPLERAIE"
- ],
- "paint": {
- "fill-color": "#E8E8E8",
- "fill-outline-color": "#E8E8E8"
- }
- },
- {
- "id": "ocs - vegetation - forêt ouverte",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ZONE_FORET_OUVERTE"
- ],
- "paint": {
- "fill-color": "#F3F3F3",
- "fill-outline-color": "#F3F3F3"
- }
- },
- {
- "id": "ocs - vegetation - lande ligneuse",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_LANDE_LIGNEUSE"],
- "paint": {
- "fill-color": "#FCFCFC"
- }
- },
- {
- "id": "ocs - vegetation - vigne",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_VIGNE"],
- "paint": {
- "fill-color": "#F5F5F5"
- }
- },
- {
- "id": "ocs - vegetation - verger",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_VERGER"],
- "paint": {
- "fill-color": "#EBEBEB"
- }
- },
- {
- "id": "ocs - vegetation - canne à sucre, bananeraie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_CANNE_BANANE"],
- "paint": {
- "fill-color": "#F7F7F7"
- }
- },
- {
- "id": "hydro surfacique - Estran",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "hydro_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_D_ESTRAN"],
- "paint": {
- "fill-color": "#DCDCDC",
- "fill-outline-color": "#DCDCDC"
- }
- },
- {
- "id": "ocs - vegetation - mangrovre",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_MANGROVE"],
- "paint": {
- "fill-color": {"stops": [[9, "#BCBCBC"], [10, "#BFBFBF"]]}
- }
- },
- {
- "id": "ocs - vegetation - marais",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_MARAIS"],
- "paint": {
- "fill-pattern": "Marais"
- }
- },
- {
- "id": "ocs - vegetation - marais salant",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_MARAIS_SALANT"],
- "paint": {
- "fill-pattern": "MaraisSalant"
- }
- },
- {
- "id": "ocs - Zone",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_ROCHEUSE"],
- "paint": {
- "fill-color": "#D5D5D5",
- "fill-opacity": 0.3
- }
- },
- {
- "id": "ocs - Zone sable sec",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_SABLE_SEC"],
- "paint": {
- "fill-pattern": "Sable"
- }
- },
- {
- "id": "ocs - Zone sable humide",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ZONE_SABLE_HUMIDE",
- "FOND_CUVETTE_HUMIDE"
- ],
- "paint": {
- "fill-pattern": "SableHumide"
- }
- },
- {
- "id": "ocs - Zone graviers galets secs",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","GRAVIERS_GALETS_SEC"],
- "paint": {
- "fill-pattern": "GravierSec"
- }
- },
- {
- "id": "ocs - Zone graviers galets humides",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","GRAVIERS_GALETS_HUM"],
- "paint": {
- "fill-pattern": "Gravier"
- }
- },
- {
- "id": "ocs - Zone rocher hydro",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_ROCHER_HYDRO"],
- "paint": {
- "fill-pattern": "RocherHydro"
- }
- },
- {
- "id": "ocs - Zone glacier",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_GLACIER"],
- "paint": {
- "fill-pattern": "Glacier",
- "fill-opacity": {"stops": [[10, 0.5], [12, 0.3]]}
- }
- },
- {
- "id": "zone batie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zone_surf",
- "minzoom": 7,
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_BATI"],
- "paint": {
- "fill-color": "#E7E7E7",
- "fill-opacity": {"stops": [[12, 1], [13, 0.9], [14, 0.5]]}
- }
- },
- {
- "id": "zone d'activité",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zone_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_INDUS_ACTI"],
- "paint": {
- "fill-color": "#DEDEDE"
- }
- },
- {
- "id": "oro - courbe et cuvette maitresse",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_MAITRESSE",
- "CUVETTE_MAITRESSE"
- ],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[13, 1.7], [15, 2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_NORMALE",
- "CUVETTE_NORMALE"
- ],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[13, 1], [15, 1.2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette intercalaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_INTERCALAIRE",
- "CUVETTE_INTERCAL",
- "CNV_SS_INTERCALAIRE"
- ],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": 0.7,
- "line-dasharray": [20,7]
- }
- },
- {
- "id": "oro - courbe et cuvette glacier maitresse",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_GLACIER_MAITRESSE",
- "CUV_GLACIER_MAITRESSE"
- ],
- "paint": {
- "line-color": "#BFBFBF",
- "line-width": {
- "stops": [[13, 1.7], [15, 2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette glacier normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_GLACIER_NORMALE",
- "CUV_GLACIER_NORMALE"
- ],
- "paint": {
- "line-color": "#BFBFBF",
- "line-width": {
- "stops": [[13, 1], [15, 1.2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette glacier intercalaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_GLACIER_INTERCAL",
- "CUV_GLACIER_INTERCAL"
- ],
- "paint": {
- "line-color": "#BFBFBF",
- "line-width": {
- "stops": [[13, 0.7], [15, 0.9]]
- },
- "line-dasharray": [20,7]
- }
- },
- {
- "id": "oro - courbe et cuvette rocher maitresse",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_ROCHER_MAITRESSE",
- "CUV_ROCHER_MAITRESSE"
- ],
- "paint": {
- "line-color": "#AFAFAF",
- "line-width": 1.7
- }
- },
- {
- "id": "oro - courbe et cuvette rocher normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_ROCHER_NORMALE",
- "CUV_ROCHER_NORMALE"
- ],
- "paint": {
- "line-color": "#AFAFAF",
- "line-width": 1
- }
- },
- {
- "id": "oro - courbe et cuvette rocher intercalaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_ROCHER_INTERCAL",
- "CUV_ROCHER_INTERCAL"
- ],
- "paint": {
- "line-color": "#AFAFAF",
- "line-width": {
- "stops": [[13, 0.7], [15, 0.9]]
- },
- "line-dasharray": [20,7]
- }
- },
- {
- "id": "oro - courbe et cuvette bathymetrique",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_BATHYMETRIQUE",
- "CUV_BATHYMETRIQUE"
- ],
- "paint": {
- "line-color": "#212121",
- "line-width": 1
- }
- },
- {
- "id": "oro lin - talus",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_lin",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","TALUS"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": 1
- }
- },
- {
- "id": "oro lin - talus - trait perpendiculaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_lin",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","TALUS"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[14, 7], [16, 9]]
- },
- "line-dasharray": [0.1,1],
- "line-translate": [0,4]
- }
- },
- {
- "id": "toponyme - cote de courbe normale",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "minzoom":13,
- "maxzoom":16,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 10], [15, 13]]},
- "text-anchor": "center",
- "text-rotation-alignment":"map",
- "text-pitch-alignment": "viewport",
- "text-keep-upright": false,
- "text-max-angle": 20,
- "text-max-width": 100,
- "text-font": ["Source Sans Pro Italic"]
- },
- "filter": ["all",
- ["!=","texte","0"],
- ["==","hors_zone","true"],
- ["in","symbo",
- "CNV_MAITRESSE",
- "CUVETTE_MAITRESSE"
- ]
- ],
- "paint": {
- "text-color": "#535353",
- "text-halo-width": 0.5,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - cote de courbe rocher",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "minzoom":13,
- "maxzoom":16,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 10], [15, 13]]},
- "text-anchor": "center",
- "text-rotation-alignment":"map",
- "text-pitch-alignment": "viewport",
- "text-keep-upright": false,
- "text-max-angle": 20,
- "text-max-width": 100,
- "text-font": ["Source Sans Pro Italic"]
- },
- "filter": ["all",
- ["!=","texte","0"],
- ["==","hors_zone","true"],
- ["in","symbo",
- "CNV_ROCHER_MAITRESSE",
- "CUV_ROCHER_MAITRESSE"
- ]
- ],
- "paint": {
- "text-color": "#383838",
- "text-halo-width": 0.5,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - cote de courbe glacier",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "minzoom":13,
- "maxzoom":16,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 10], [15, 13]]},
- "text-anchor": "center",
- "text-rotation-alignment":"map",
- "text-pitch-alignment": "viewport",
- "text-keep-upright": false,
- "text-max-angle": 20,
- "text-max-width": 100,
- "text-font": ["Source Sans Pro Italic"]
- },
- "filter": ["all",
- ["!=","texte","0"],
- ["==","hors_zone","true"],
- ["in","symbo",
- "CNV_GLACIER_MAITRESSE",
- "CUV_GLACIER_MAITRESSE"
- ]
- ],
- "paint": {
- "text-color": "#989898",
- "text-halo-width": 0.5,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "hydro surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "hydro_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "SURFACE_D_EAU",
- "BASSIN",
- "ZONE_MARINE"
- ],
- "paint": {
- "fill-color": "#CFCFCF",
- "fill-outline-color": "#CFCFCF"
- }
- },
- {
- "id": "hydro surfacique temporaire",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "hydro_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","SURFACE_D_EAU_TEMP"],
- "paint": {
- "fill-color": "rgba(199, 199, 199, 0.5)"
- }
- },
- {
- "id": "réseau hydro - cours d'eau souterrain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "COURS_D_EAU_SOU",
- "COURS_D_EAU_MOY_SOU"
- ],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 1.5], [17, 6.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "réseau hydro - filet interieur - aqueduc souterrain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SOU"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 1.4], [16, 3.5], [17, 5.9]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "réseau hydro - carre - aqueduc souterrain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sou",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SOU"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 3.5], [16, 8.7], [17, 14.7]]
- },
- "line-dasharray": [1,5]
- }
- },
- {
- "id": "Ferre souterrain - voie normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SOU",
- "VF_2_SOU",
- "VF_ELEC_1_SOU",
- "VF_FERRO_ROUTIER_SOU"
- ],
- "paint": {
- "line-color": "#B9B9B9",
- "line-width": {
- "stops": [[10, 0.8], [17, 2.5]]
- }
- }
- },
- {
- "id": "Ferre souterrain - trait perpendic épais",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SOU",
- "VF_2_SOU",
- "VF_ELEC_1_SOU",
- "VF_FERRO_ROUTIER_SOU"
- ],
- "paint": {
- "line-color": "#B9B9B9",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre souterrain - voie etroite",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SOU",
- "VF_ETROITE_SOU"
- ],
- "paint": {
- "line-color": "#B9B9B9",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre souterrain - trait perpendic fin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SOU",
- "VF_ETROITE_SOU"
- ],
- "paint": {
- "line-color": "#B9B9B9",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre souterrain - voie service",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_SERVICE_SOU",
- "VF_NON_EXPLOITEE_SOU"
- ],
- "paint": {
- "line-color": "#B9B9B9",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [5,2,1,2]
- }
- },
- {
- "id": "Ferre souterrain - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SOU",
- "TRANSPORT_URBAIN_SOU"
- ],
- "paint": {
- "line-color": "#B9B9B9",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre souterrain - 2 trait perpendic - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SOU",
- "TRANSPORT_URBAIN_SOU"
- ],
- "paint": {
- "line-color": "#B9B9B9",
- "line-width": {
- "stops": [[10, 3.5], [17, 17]]
- },
- "line-dasharray": [0.1,0.2,0.1,10]
- }
- },
- {
- "id": "Chemin souterrain - piste cyclable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PISTE_CYCLABLE_SOU"],
- "paint": {
- "line-color": "#9B9B9B",
- "line-width": {
- "stops": [[14, 1.1], [15, 1.7], [16, 2], [17, 3.5]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "Chemin souterrain - filet exterieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SOU"],
- "paint": {
- "line-color": "#A5A5A5",
- "line-width": {
- "stops": [[14, 1.75], [15, 3], [16, 4.2], [17, 9.5]]
- }
- }
- },
- {
- "id": "Chemin souterrain - filet interieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SOU"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 1], [15, 1.9], [16, 2.7], [17, 5.8]]
- },
- "line-dasharray": [1,0.2]
- }
- },
- {
- "id": "Chemin souterrain - Rue pietonne",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","RUE_PIETONNE_SOU"],
- "paint": {
- "line-color": "#A5A5A5",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- },
- "line-dasharray": [1,3]
- }
- },
- {
- "id": "Chemin souterrain - sentier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","SENTIER_SOU"],
- "paint": {
- "line-color": "#A5A5A5",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- },
- "line-dasharray": [4,3]
- }
- },
- {
- "id": "Chemin souterrain - chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CHEMIN_SOU"],
- "paint": {
- "line-color": "#A5A5A5",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SOU"],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SOU",
- "BRET_AUTO_PEAGE_2_SOU",
- "BRET_AUTO_PEAGE_1_SOU",
- "BRET_AUTO_LIBRE_3_SOU",
- "BRET_AUTO_LIBRE_2_SOU",
- "BRET_AUTO_LIBRE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(114, 114, 114, 0.5)",
- "line-width": {
- "stops": [[12, 2.5], [14, 3.7], [15, 6.8], [16, 8.4], [17, 14]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SOU"],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SOU",
- "NON_CLASSEE_SOU"
- ],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SOU",
- "LOCALE_4_SOU",
- "LOCALE_3_SOU",
- "LOCALE_2_SOU",
- "LOCALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(135, 135, 135, 0.5)",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SOU"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SOU",
- "REGIONALE_4_SOU",
- "REGIONALE_3_SOU",
- "REGIONALE_2_SOU",
- "REGIONALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(135, 135, 135, 0.5)",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SOU"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 7,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SOU",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(114, 114, 114, 0.5)",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SOU"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 7,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SOU",
- "AUTOROU_LIBRE_SOU"
- ],
- "paint": {
- "line-color": "rgba(114, 114, 114, 0.5)",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SOU"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SOU"],
- "paint": {
- "line-color": "#E1E1E1",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SOU",
- "BRET_AUTO_PEAGE_2_SOU",
- "BRET_AUTO_PEAGE_1_SOU",
- "BRET_AUTO_LIBRE_3_SOU",
- "BRET_AUTO_LIBRE_2_SOU",
- "BRET_AUTO_LIBRE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[12, 1.5], [14, 2.6], [15, 5.2], [16, 6.7], [17, 10.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SOU"],
- "paint": {
- "line-color": "#FAFAFA",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SOU",
- "NON_CLASSEE_SOU"
- ],
- "paint": {
- "line-color": "#E1E1E1",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SOU",
- "LOCALE_4_SOU",
- "LOCALE_3_SOU",
- "LOCALE_2_SOU",
- "LOCALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[9, 1.3], [14, 2.3], [15, 4.1], [16, 6.1], [17, 13.1]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SOU"],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#F3F3F3"], [17, "#F8F8F8"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- },
- "line-dasharray": [2, 2]
-
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SOU",
- "REGIONALE_4_SOU",
- "REGIONALE_3_SOU",
- "REGIONALE_2_SOU",
- "REGIONALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[6, 1.4], [9, 1.5], [14, 3.2], [15, 5.8], [16, 8.3], [17, 16.2]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SOU"],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#EFEFEF"], [17, "#F7F7F7"]]
- },
- "line-width": {
- "stops": [[4, 0.4], [6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SOU",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.1], [14, 4.4], [15, 7.3], [16, 10], [17, 18.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SOU"],
- "paint": {
- "line-color": {"stops": [[9, "#CFCFCF"], [17, "#E4E4E4"]]},
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - filet interieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SOU",
- "AUTOROU_LIBRE_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 2.7], [14, 5.8], [15, 9], [16, 12], [17, 20.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - axe central - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SOU",
- "AUTOROU_LIBRE_SOU"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SOU"],
- "paint": {
- "line-color": {"stops": [[9, "#C5C5C5"], [17, "#CBCBCB"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - axe central - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SOU"],
- "paint": {
- "line-color": "#858585",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "réseau hydro - cours d'eau temporaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo","COURS_D_EAU_TEMP","COURS_D_EAU_TEMP_MOY"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 1.5], [17, 4]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "réseau hydro - cours d'eau",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "minzoom": 3,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","COURS_D_EAU"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[4, 0.3], [7, 1.5], [12, 1.5], [17, 6.5]]
- }
- }
- },
- {
- "id": "réseau hydro - canal",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CANAL"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 1.4], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - filet interieur - aqueduc",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_AU_SOL"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 1.4], [16, 3.5], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - carre - aqueduc",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_AU_SOL"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 3.5], [16, 8.7], [17, 14.7]]
- },
- "line-dasharray": [1,5]
- }
- },
- {
- "id": "réseau hydro - cours d'eau moyen ",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","COURS_D_EAU_MOY"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[7, 2], [12, 2.5]]
- }
- }
- },
- {
- "id": "réseau hydro - cours d'eau large ",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","COURS_D_EAU_LAR"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[7, 3], [11, 5]]
- }
- }
- },
- {
- "id": "parcellaire - parcelle surface",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "parcellaire_parcelle",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PARCELLE"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-opacity": 0.7
- }
- },
- {
- "id": "bati surfacique mairie - Zoom 14",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "MAIRIE",
- "MAIRIE_ANNEXE"
- ],
- "paint": {
- "fill-color": "#C6C6C6"
- }
- },
- {
- "id": "bati surfacique mairie - Zoom 15,16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "MAIRIE",
- "MAIRIE_ANNEXE"
- ],
- "paint": {
- "fill-color": {"stops": [[14, "#C6C6C6"], [15, "#CBCBCB"]]},
- "fill-outline-color": "#A8A8A8"
- }
- },
- {
- "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 14,15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_COMMERCIAL",
- "BATI_INDUSTRIEL",
- "HANGAR",
- "HANGAR_COMMERCIAL",
- "HANGAR_INDUSTRIEL"
- ],
- "paint": {
- "fill-color": "#CDCDCD"
- }
- },
- {
- "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_COMMERCIAL",
- "BATI_INDUSTRIEL",
- "HANGAR",
- "HANGAR_COMMERCIAL",
- "HANGAR_INDUSTRIEL"
- ],
- "paint": {
- "fill-color": {
- "stops": [[15, "#D6D6D6"], [16, "#EBEBEB"]]
- },
- "fill-outline-color": "#BDBDBD"
- }
- },
- {
- "id": "bati surfacique fonctionnel public - Zoom 14,15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_PUBLIC",
- "HANGAR_PUBLIC"
- ],
- "paint": {
- "fill-color": "#BFBFBF"
- }
- },
- {
- "id": "bati surfacique fonctionnel public - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_PUBLIC",
- "HANGAR_PUBLIC"
- ],
- "paint": {
- "fill-color": {
- "stops": [[15, "#D0D0D0"], [16, "#E5E5E5"]]
- },
- "fill-outline-color": "#ADADAD"
- }
- },
- {
- "id": "bati surfacique fonctionnel sportif - bordure",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","BATI_SPORTIF"],
- "paint": {
- "line-color": "#D0D0D0",
- "line-width": 4
- }
- },
- {
- "id": "bati surfacique fonctionnel sportif",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_SPORTIF"],
- "paint": {
- "fill-color": {
- "stops": [[14, "#DEDEDE"], [15, "#E8E8E8"]]
- }
- }
- },
- {
- "id": "bati surfacique fonctionnel gare - Zoom 14,15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_GARE"],
- "paint": {
- "fill-color": "#C0C0C0"
- }
- },
- {
- "id": "bati surfacique fonctionnel gare - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_GARE"],
- "paint": {
- "fill-color": {
- "stops": [[15, "#CBCBCB"], [16, "#D6D6D6"]]
- },
- "fill-outline-color": "#ACACAC"
- }
- },
- {
- "id": "bati surfacique quelconque - Zoom 15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_QQUE"],
- "paint": {
- "fill-color": "#CECECE"
- }
- },
- {
- "id": "bati surfacique quelconque - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_QQUE"],
- "paint": {
- "fill-color": {
- "stops": [[15, "#E5E5E5"], [16, "#F0F0F0"]]
- },
- "fill-outline-color": "#B3B3B3"
- }
- },
- {
- "id": "cimetiere surfacique 1",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CIMETIERE_SURF",
- "CIMETIERE_MILI_SURF",
- "NECROPOLE_NATIONALE"
- ],
- "paint": {
- "fill-color": "#F5F5F5",
- "fill-opacity": 0.5,
- "fill-outline-color": "#868686"
- }
- },
- {
- "id": "cimetiere surfacique 2",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CIMETIERE_SURF",
- "CIMETIERE_MILI_SURF",
- "NECROPOLE_NATIONALE"
- ],
- "paint": {
- "fill-pattern": "Cimetiere"
- }
- },
- {
- "id": "bati hydro surfacique - Autre",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ECLUSE_SURF",
- "RESERVOIR_EAU_SURF"
- ],
- "paint": {
- "fill-color": "#C9C9C9",
- "fill-outline-color": "#616161"
- }
- },
- {
- "id": "bati hydro surfacique - Pecherie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PECHERIE_SURF"],
- "paint": {
- "fill-color": "#DEDEDE",
- "fill-outline-color": "#959595"
- }
- },
- {
- "id": "bati hydro surfacique - Barrage",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BARRAGE_SURF"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#4B4B4B"
- }
- },
- {
- "id": "bati hydro surfacique - Chateau d'eau",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","CHATEAU_EAU_SURF"],
- "paint": {
- "fill-color": "#A5A5A5"
- }
- },
- {
- "id": "bati infra surfacique - Silo",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","SILO_SURF"],
- "paint": {
- "fill-color": "#B7B7B7",
- "fill-outline-color": "#6E6E6E"
- }
- },
- {
- "id": "bati infra surfacique - Reservoir indus",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","RESERVOIR_INDUS_SURF"],
- "paint": {
- "fill-color": "#9F9F9F",
- "fill-outline-color": "#4B4B4B"
- }
- },
- {
- "id": "bati infra surfacique - Serre",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo","SERRE_SURF"],
- "paint": {
- "fill-color": "#D8D8D8",
- "fill-outline-color": "#919191"
- }
- },
- {
- "id": "bati infra surfacique - poste electrique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo","POSTE_ELEC_SURF"],
- "paint": {
- "fill-color": "#949494",
- "fill-opacity": 0.3
- }
- },
- {
- "id": "bati infra surfacique - poste electrique bord",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","POSTE_ELEC_SURF"],
- "paint": {
- "line-color": "#000000",
- "line-width": {"stops": [[12, 0.3], [17, 1.2]]}
- }
- },
- {
- "id": "bati religieux surfacique - Zoom 14",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CHAPELLE_SURF",
- "EGLISE_SURF",
- "CHRETIEN_SURF",
- "SYNAGOGUE_SURF",
- "MOSQUEE_SURF",
- "AUTRE_CULTE_SURF"
- ],
- "paint": {
- "fill-color": "#DDDDDD"
- }
- },
- {
- "id": "bati religieux surfacique - Zoom 15,16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CHAPELLE_SURF",
- "EGLISE_SURF",
- "CHRETIEN_SURF",
- "SYNAGOGUE_SURF",
- "MOSQUEE_SURF",
- "AUTRE_CULTE_SURF"
- ],
- "paint": {
- "fill-color": {"stops": [[14, "#DDDDDD"], [15, "#EDEDED"]]},
- "fill-outline-color": {"stops": [[14, "#C5C5C5"], [15, "#CFCFCF"]]}
- }
- },
- {
- "id": "bati remarquable surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "FORTIF_SURF",
- "CHATEAU_SURF",
- "TOUR_MOULIN_SURF",
- "ARENE_THEATRE",
- "ARC_TRIOMPHE_SURF",
- "MONUMENT_SURF"
- ],
- "paint": {
- "fill-color": "#A0A0A0",
- "fill-outline-color": "#737373"
- }
- },
- {
- "id": "bati sportif surfacique fond",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "TENNIS_SURF",
- "SPORT_INDIF_SURF",
- "FOOT_SURF",
- "MULTI_SPORT_SURF",
- "PISTE_SPORT_SURF",
- "NATATION_SURF"
- ],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#FFFFFF"
- }
- },
- {
- "id": "bati sportif surfacique",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "TENNIS_SURF",
- "SPORT_INDIF_SURF",
- "FOOT_SURF",
- "MULTI_SPORT_SURF",
- "PISTE_SPORT_SURF",
- "NATATION_SURF"
- ],
- "paint": {
- "line-color": "#D0D0D0",
- "line-width": 2
- }
- },
- {
- "id": "bati transport surfacique - piste",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "PISTE_DUR",
- "PISTE_HERBE"
- ],
- "paint": {
- "fill-color": "#E0E0E0",
- "fill-outline-color": "#858585"
-
- }
- },
- {
- "id": "bati ZAI - Autres",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zai",
- "minzoom":15,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","nature",
- "Lycée",
- "Université",
- "Capitainerie",
- "Gendarmerie",
- "Siège d'EPCI",
- "Musée",
- "Collège",
- "Maison de retraite",
- "Etablissement thermal",
- "Autre service déconcentré de l'Etat",
- "Etablissement pénitentiaire",
- "Divers public ou administratif",
- "Autre établissement d'enseignement",
- "Maison du parc",
- "Palais de justice",
- "Enseignement primaire",
- "Office de tourisme",
- "Hôpital",
- "Police",
- "Piscine",
- "Enseignement supérieur",
- "Poste",
- "Caserne",
- "Etablissement hospitalier",
- "Etablissement extraterritorial",
- "Science",
- "Structure d'accueil pour personnes handicapées",
- "Administration centrale de l'Etat",
- "Caserne de pompiers"
- ],
- "paint": {
- "fill-color": "#D3D3D3",
- "fill-opacity": 0.5,
- "fill-outline-color": "#C0C0C0"
- }
- },
- {
- "id": "bati ZAI - Commandement",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zai",
- "minzoom":15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","nature",
- "Hôtel de département",
- "Hôtel de région",
- "Préfecture de région",
- "Préfecture",
- "Sous-préfecture"
- ],
- "paint": {
- "fill-color": "#525252",
- "fill-opacity": 0.3,
- "fill-outline-color": "#3B3B3B"
- }
- },
- {
- "id": "construction linéaire - mur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","MUR"],
- "paint": {
- "line-color": "#919191",
- "line-width": 0.3
- }
- },
- {
- "id": "construction linéaire - autre",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "RUINE_LIN",
- "MUR_SOUTENEMENT",
- "FORTIF_LIN"
- ],
- "paint": {
- "line-color": "#8C8C8C",
- "line-width": 0.5
- }
- },
- {
- "id": "construction hydrographique linéaire - Barrage",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","BARRAGE_LIN"],
- "paint": {
- "line-color": "#8C8C8C",
- "line-width": {"stops": [[13, 1.5], [17, 5]]}
- }
- },
- {
- "id": "construction hydrographique linéaire - Quai",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "QUAI",
- "DIGUE"
- ],
- "paint": {
- "line-color": "#878787",
- "line-width": {"stops": [[14, 1], [17, 2.5]]}
- }
- },
- {
- "id": "construction hydrographique linéaire - Pecherie",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PECHERIE_LIN"],
- "paint": {
- "line-color": "#585858",
- "line-width": {"stops": [[14, 1], [17, 2.5]]}
- }
- },
- {
- "id": "Chemin a niveau - piste cyclable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PISTE_CYCLABLE"],
- "paint": {
- "line-color": {"stops": [[17, "#808080"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1.1], [15, 1.7], [16, 2], [17, 3.5], [18, 6]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "Chemin a niveau - filet exterieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER"],
- "paint": {
- "line-color": {"stops": [[17, "#7F7F7F"], [18, "#CDCDCD"]]},
- "line-width": {
- "stops": [[14, 1.75], [15, 3], [16, 4.2], [17, 9.5]]
- }
- }
- },
- {
- "id": "Chemin a niveau - filet interieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 1], [15, 1.9], [16, 2.7], [17, 5.8]]
- },
- "line-dasharray": [1,0.2]
- }
- },
- {
- "id": "Chemin a niveau - Rue pietonne",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","RUE_PIETONNE"],
- "paint": {
- "line-color": {"stops": [[17, "#7F7F7F"], [18, "#EEEEEE"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 5]]
- },
- "line-dasharray": [1,3]
- }
- },
- {
- "id": "Chemin a niveau - sentier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","SENTIER"],
- "paint": {
- "line-color": {"stops": [[17, "#7F7F7F"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 6]]
- },
- "line-dasharray": [4,3]
- }
- },
- {
- "id": "Chemin a niveau - chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CHEMIN"],
- "paint": {
- "line-color": {"stops": [[17, "#7F7F7F"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 7]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO"],
- "paint": {
- "line-color": {"stops": [[12, "#8C8C8C"], [17, "#919191"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5], [18, 16.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3",
- "BRET_AUTO_PEAGE_2",
- "BRET_AUTO_PEAGE_1",
- "BRET_AUTO_LIBRE_3",
- "BRET_AUTO_LIBRE_2",
- "BRET_AUTO_LIBRE_1"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#727272"], [17, "#9E9E9E"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[12, 2.5], [14, 3.7], [15, 6.8], [16, 8.4], [17, 14]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT"],
- "paint": {
- "line-color": {"stops": [[17, "#9B9B9B"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4",
- "NON_CLASSEE"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#9B9B9B"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 7,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE",
- "LOCALE_4",
- "LOCALE_3",
- "LOCALE_2",
- "LOCALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[12, "#919191"], [13, "#B9B9B9"], [17, "#B9B9B9"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE",
- "REGIONALE_4",
- "REGIONALE_3",
- "REGIONALE_2",
- "REGIONALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[9, "#878787"], [10, "#B9B9B9"], [17, "#B9B9B9"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE",
- "PRINCIPALE_4",
- "PRINCIPALE_3",
- "PRINCIPALE_2",
- "PRINCIPALE_1"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#AFAFAF"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE",
- "AUTOROU_LIBRE"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#727272"], [17, "#9E9E9E"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3",
- "BRET_AUTO_PEAGE_2",
- "BRET_AUTO_PEAGE_1",
- "BRET_AUTO_LIBRE_3",
- "BRET_AUTO_LIBRE_2",
- "BRET_AUTO_LIBRE_1"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#9E9E9E"], [17, "#BCBCBC"]]},
- "line-width": {
- "stops": [[12, 1.5], [14, 2.6], [15, 5.2], [16, 6.7], [17, 10.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT"],
- "paint": {
- "line-color": "#FAFAFA",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4",
- "NON_CLASSEE"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE",
- "LOCALE_4",
- "LOCALE_3",
- "LOCALE_2",
- "LOCALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[6, "#C2C2C2"],[7, "#FFFFFF"], [12, "#FFFFFF"], [13, "#F3F3F3"], [17, "#F8F8F8"]]
- },
- "line-width": {
- "stops": [[9, 1.3], [14, 2.3], [15, 4.1], [16, 6.1], [17, 13.1]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 11,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR"],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#F3F3F3"], [17, "#F8F8F8"], [18, "#F2F2F2"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- },
- "line-dasharray": [2, 2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE",
- "REGIONALE_4",
- "REGIONALE_3",
- "REGIONALE_2",
- "REGIONALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[6, "#B9B9B9"], [7, "#FFFFFF"], [9, "#FFFFFF"], [10, "#EFEFEF"], [17, "#F7F7F7"]]
- },
- "line-width": {
- "stops": [[4, 1.1], [6, 1.4], [9, 1.5], [14, 3.2], [15, 5.8], [16, 8.3], [17, 16.2]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR"],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#EFEFEF"], [17, "#F7F7F7"], [18, "#F2F2F2"]]
- },
- "line-width": {
- "stops": [[4, 0.4], [6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE",
- "PRINCIPALE_4",
- "PRINCIPALE_3",
- "PRINCIPALE_2",
- "PRINCIPALE_1"
- ],
- "paint": {
- "line-color": {"stops": [[6, "#ACACAC"], [7, "#CFCFCF"], [9, "#CFCFCF"], [17, "#E4E4E4"]]},
- "line-width": {
- "stops": [[4, 0.6], [6, 1.8], [9, 2.1], [14, 4.4], [15, 7.3], [16, 10], [17, 18.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR"],
- "paint": {
- "line-color": {"stops": [[9, "#CFCFCF"], [17, "#E4E4E4"], [18, "#F2F2F2"]]},
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE",
- "AUTOROU_LIBRE"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#9E9E9E"], [17, "#BCBCBC"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 2.7], [14, 5.8], [15, 9], [16, 12], [17, 20.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - axe central - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE",
- "AUTOROU_LIBRE"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR"],
- "paint": {
- "line-color": {"stops": [[9, "#9E9E9E"], [17, "#BCBCBC"], [18, "#F2F2F2"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - axe centrale - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR"],
- "paint": {
- "line-color": "#858585",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Ferre a niveau - voie normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1",
- "VF_2",
- "VF_3",
- "VF_4",
- "VF_ELEC_1",
- "VF_ELEC_2",
- "VF_ELEC_3",
- "VF_ELEC_4"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.8], [17, 2.5]]
- }
- }
- },
- {
- "id": "Ferre a niveau - voie normale trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1",
- "VF_2",
- "VF_3",
- "VF_4",
- "VF_ELEC_1",
- "VF_ELEC_2",
- "VF_ELEC_3",
- "VF_ELEC_4"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre a niveau - voie etroite",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1",
- "VF_ETROITE_2",
- "VF_ETROITE"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre a niveau - voie etroite trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1",
- "VF_ETROITE_2",
- "VF_ETROITE"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre a niveau - voie service",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_SERVICE",
- "VF_NON_EXPLOITEE"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [5,2,1,2]
- }
- },
- {
- "id": "Ferre a niveau - voie en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR"],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Ferre a niveau - voie en construction trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR"],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre a niveau - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE",
- "TRANSPORT_URBAIN"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre a niveau - 2 trait perpendic - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE",
- "TRANSPORT_URBAIN"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 3.5], [17, 17]]
- },
- "line-dasharray": [0.1,0.2,0.1,10]
- }
- },
- {
- "id": "liaison routiere - Bac Liaison Maritime",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "minzoom": 8,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BAC_AUTO",
- "LIAISON_MARITIME",
- "BAC_LIAISON_MARITIME"
- ],
- "paint": {
- "line-color": "#8B8B8B",
- "line-width": {
- "stops": [[8, 1], [13, 2.5]]
- }
- }
- },
- {
- "id": "liaison routiere - Gue route",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","GUE_ROUTE"],
- "paint": {
- "line-color": {
- "stops": [[13, "#C3C3C3"], [17, "#8C8C8C"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "liaison routiere - Gue chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","GUE_CHEMIN"],
- "paint": {
- "line-color": {
- "stops": [[13, "#C3C3C3"], [17, "#8C8C8C"]]
- },
- "line-width": {
- "stops": [[14, 1.6], [15, 2.9], [16, 4.4], [17, 6.5]]
- }
- }
- },
- {
- "id": "liaison routiere - filet extérieur - Pont passerelle",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "PONT_PASSERELLE",
- "PONT_LIN",
- "PONT_MOBILE_LIN"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#CDCDCD"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 2.2], [15, 3.8], [16, 5.4], [17, 11.8]]
- }
- }
- },
- {
- "id": "liaison routiere - filet intérieur - Pont passerelle",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "PONT_PASSERELLE",
- "PONT_LIN",
- "PONT_MOBILE_LIN"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 0.7], [15, 1.1], [16, 1.7], [17, 3.8]]
- }
- }
- },
- {
- "id": "Routier surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "SURF_ROUT_PRINC",
- "SURF_ROUT_REG",
- "SURF_ROUT_LOC",
- "SURF_ROUT_NON_CLA"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#000000"
- }
- },
- {
- "id": "Routier surfacique - Dalle de protection",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","DALLE_DE_PROTECTION"],
- "paint": {
- "fill-opacity": 0.5,
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#000000"
- }
- },
- {
- "id": "Routier surfacique - Escalier surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ESCALIER_SURF"],
- "paint": {
- "fill-opacity": 0.8,
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#8C8C8C"
- }
- },
- {
- "id": "Routier surfacique - Péage surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","SURF_PEAGE"],
- "paint": {
- "fill-color": "#E1E1E1",
- "fill-outline-color": "#AFAFAF"
- }
- },
- {
- "id": "bati transport surfacique - bati peage",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_PEAGE"],
- "paint": {
- "fill-color": "#E1E1E1",
- "fill-outline-color": "#858585"
-
- }
- },
- {
- "id": "réseau hydro - cours d'eau superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "COURS_D_EAU_SUP",
- "COURS_D_EAU_MOY_SUP"
- ],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 1.5], [17, 6.5]]
- }
- }
- },
- {
- "id": "réseau hydro - canal superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CANAL_SUP"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 1.4], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - filet interieur - aqueduc superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SUP"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 1.4], [16, 3.5], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - carre - aqueduc superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SUP"],
- "paint": {
- "line-color": "#CFCFCF",
- "line-width": {
- "stops": [[12, 3.5], [16, 8.7], [17, 14.7]]
- },
- "line-dasharray": [1,5]
- }
- },
- {
- "id": "Chemin superieur - piste cyclable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PISTE_CYCLABLE_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#808080"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1.1], [15, 1.7], [16, 2], [17, 3.5], [18, 6]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "Chemin superieur - filet exterieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#7F7F7F"], [18, "#CDCDCD"]]},
- "line-width": {
- "stops": [[14, 1.75], [15, 3], [16, 4.2], [17, 9.5]]
- }
- }
- },
- {
- "id": "Chemin superieur - filet interieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SUP"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 1], [15, 1.9], [16, 2.7], [17, 5.8]]
- },
- "line-dasharray": [1,0.2]
- }
- },
- {
- "id": "Chemin superieur - Rue pietonne",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","RUE_PIETONNE_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#7F7F7F"], [18, "#F0F0F0"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 5]]
- },
- "line-dasharray": [1,3]
- }
- },
- {
- "id": "Chemin superieur - sentier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","SENTIER_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#7F7F7F"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 6]]
- },
- "line-dasharray": [4,3]
- }
- },
- {
- "id": "Chemin superieur - chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CHEMIN_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#7F7F7F"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 7]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SUP"],
- "paint": {
- "line-color": {"stops": [[12, "#8C8C8C"], [17, "#919191"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - filet extérieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SUP",
- "BRET_AUTO_PEAGE_2_SUP",
- "BRET_AUTO_PEAGE_1_SUP",
- "BRET_AUTO_LIBRE_3_SUP",
- "BRET_AUTO_LIBRE_2_SUP",
- "BRET_AUTO_LIBRE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#727272"], [17, "#9E9E9E"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[12, 2.5], [14, 3.7], [15, 6.8], [16, 8.4], [17, 14]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#9B9B9B"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#9B9B9B"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SUP",
- "LOCALE_4_SUP",
- "LOCALE_3_SUP",
- "LOCALE_2_SUP",
- "LOCALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[12, "#919191"], [13, "#B9B9B9"], [17, "#B9B9B9"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SUP"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SUP",
- "REGIONALE_4_SUP",
- "REGIONALE_3_SUP",
- "REGIONALE_2_SUP",
- "REGIONALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[9, "#878787"], [10, "#B9B9B9"], [17, "#B9B9B9"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SUP"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SUP",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#AFAFAF"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SUP"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SUP",
- "AUTOROU_LIBRE_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#727272"], [17, "#9E9E9E"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SUP"],
- "paint": {
- "line-color": "#CDCDCD",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SUP"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5], [18, 16.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SUP",
- "BRET_AUTO_PEAGE_2_SUP",
- "BRET_AUTO_PEAGE_1_SUP",
- "BRET_AUTO_LIBRE_3_SUP",
- "BRET_AUTO_LIBRE_2_SUP",
- "BRET_AUTO_LIBRE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#9E9E9E"], [17, "#BCBCBC"]]},
- "line-width": {
- "stops": [[12, 1.5], [14, 2.6], [15, 5.2], [16, 6.7], [17, 10.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SUP"],
- "paint": {
- "line-color": "#FAFAFA",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_SUP"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SUP",
- "LOCALE_4_SUP",
- "LOCALE_3_SUP",
- "LOCALE_2_SUP",
- "LOCALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#F3F3F3"], [17, "#F8F8F8"]]
- },
- "line-width": {
- "stops": [[9, 1.3], [14, 2.3], [15, 4.1], [16, 6.1], [17, 13.1]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SUP"],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#F3F3F3"], [17, "#F8F8F8"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- },
- "line-dasharray": [2, 2]
- }
- },
- {
- "id": "Routier superieur - filet interieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SUP",
- "REGIONALE_4_SUP",
- "REGIONALE_3_SUP",
- "REGIONALE_2_SUP",
- "REGIONALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#EFEFEF"], [17, "#F7F7F7"]]
- },
- "line-width": {
- "stops": [[6, 1.4], [9, 1.5], [14, 3.2], [15, 5.8], [16, 8.3], [17, 16.2]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SUP"],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#EFEFEF"], [17, "#F7F7F7"]]
- },
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - filet interieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SUP",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#CFCFCF"], [17, "#E4E4E4"]]},
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.1], [14, 4.4], [15, 7.3], [16, 10], [17, 18.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SUP"],
- "paint": {
- "line-color": {"stops": [[9, "#CFCFCF"], [17, "#E4E4E4"]]},
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - filet interieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SUP",
- "AUTOROU_LIBRE_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#9E9E9E"], [17, "#BCBCBC"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 2.7], [14, 5.8], [15, 9], [16, 12], [17, 20.8]]
- }
- }
- },
- {
- "id": "Routier superieur - axe central - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SUP",
- "AUTOROU_LIBRE_SUP"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SUP"],
- "paint": {
- "line-color": {"stops": [[9, "#9E9E9E"], [17, "#BCBCBC"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - axe centrale - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SUP"],
- "paint": {
- "line-color": "#858585",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Ferre superieur - voie normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SUP",
- "VF_2_SUP",
- "VF_ELEC_1_SUP"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.8], [17, 2.5]]
- }
- }
- },
- {
- "id": "Ferre superieur - voie normale trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SUP",
- "VF_2_SUP",
- "VF_ELEC_1_SUP"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre superieur - voie etroite",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SUP",
- "VF_ETROITE_SUP"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre superieur - voie etroite trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SUP",
- "VF_ETROITE_SUP"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre superieur - voie service",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_SERVICE_SUP",
- "VF_NON_EXPLOITEE_SUP"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [5,2,1,2]
- }
- },
- {
- "id": "Ferre superieur - voie en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR_SUP"],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Ferre superieur - voie en construction trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR_SUP"],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre superieur - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SUP",
- "TRANSPORT_URBAIN_SUP"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre superieur - 2 trait perpendic - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SUP",
- "TRANSPORT_URBAIN_SUP"
- ],
- "paint": {
- "line-color": "#7D7D7D",
- "line-width": {
- "stops": [[10, 3.5], [17, 17]]
- },
- "line-dasharray": [0.1,0.2,0.1,10]
- }
- },
- {
- "id": "Limite - cloture",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","CLOTURE"],
- "paint": {
- "line-color": "#000000",
- "line-width": {
- "stops": [[13, 0.6], [17, 1]]
- },
- "line-dasharray": [1.5, 4]
- }
- },
- {
- "id": "Limite - layon",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LAYON"],
- "paint": {
- "line-color": "#A5A5A5",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- },
- "line-dasharray": [4,7]
- }
- },
- {
- "id": "Zone Règlementee - Enceinte militaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ZONE_REGLEMENTEE",
- "LIM_ENCEINTE_MILITAIRE",
- "LIM_ENCEINTE_MILI",
- "LIM_CHAMP_TIR"
- ],
- "paint": {
- "line-color": "rgba(160, 160, 160, 0.8)",
- "line-width": {
- "stops": [[13, 1.7], [17, 3.1]]
- },
- "line-dasharray": [4, 1, 2, 5]
- }
- },
- {
- "id": "limite zone naturelle",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ZONE_NATURELLE",
- "LIM_ZONE_NATURELLE_ILE",
- "LIM_RESERVE_NATURELLE"
- ],
- "paint": {
- "line-color": "#DADADA",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 1]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 10",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "maxzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#848484",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 1]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 11",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 10,
- "maxzoom": 11,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#848484",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 2]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 12",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 11,
- "maxzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#848484",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 3]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 13",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 12,
- "maxzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#848484",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 4]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 14",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "rgba(130, 130, 130, 0.7)",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 5]
- }
- },
- {
- "id": "limite zone naturelle - Parc marin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_PARC_NATUREL_MARIN"],
- "paint": {
- "line-color": "#707070",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 1]
- }
- },
- {
- "id": "parcellaire - parcelle bordure",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "parcellaire_parcelle",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PARCELLE"],
- "paint": {
- "line-color": "#6D6D6D",
- "line-width": 1
- }
- },
- {
- "id": "parcellaire - section",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "parcellaire_section",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","SECTION"],
- "paint": {
- "line-color": "#5A5A5A",
- "line-width": 1.9,
- "line-dasharray": [2,4,2]
- }
- },
- {
- "id": "toponyme - parcellaire - section",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_parcellaire_section",
- "filter": ["==","txt_typo","SECTION"],
- "layout": {
- "symbol-placement": "line",
- "text-offset": [0, 0],
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A"
- }
- },
- {
- "id": "toponyme - parcellaire - parcelle",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_parcellaire_parcelle",
- "filter": ["==","txt_typo","PARCELLE"],
- "layout": {
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Bold"]
- },
- "paint": {
- "text-color": "#6D6D6D",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - parcellaire - adresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_parcellaire_adresse_ponc",
- "filter": ["==","txt_typo","ADRESSE"],
- "layout": {
- "symbol-placement": "point",
- "text-field": ["concat","{numero}","{indice_de_repetition}"],
- "text-size": 11,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Bold"]
- },
- "paint": {
- "text-color": "#5F5F5F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "limite admin - limite de commune",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_COMMUNE",
- "LIM_CANTON",
- "LIM_ARRONDISSEMENT"
- ],
- "paint": {
- "line-color": "rgba(133, 133, 133, 0.5)",
- "line-width": {
- "stops": [[13, 3], [17, 5.5]]
- },
- "line-dasharray": [4, 2, 1, 1, 1, 1, 1, 2]
- }
- },
- {
- "id": "limite admin - limite de département bandeau",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 8,
- "maxzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_DEPARTEMENT"],
- "paint": {
- "line-color": "rgba(186, 186, 186, 0.4)",
- "line-width": {
- "stops": [[9, 4.1], [12, 6]]
- }
- }
- },
- {
- "id": "limite admin - limite de département tiret",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_DEPARTEMENT"],
- "paint": {
- "line-color": "rgba(133, 133, 133, 0.5)",
- "line-width": {
- "stops": [[13, 3], [17, 5.5]]
- },
- "line-dasharray": [4, 2, 1, 1, 1, 2]
- }
- },
- {
- "id": "limite admin - limite de région bandeau",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 7,
- "maxzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_REGION"],
- "paint": {
- "line-color": "rgba(186, 186, 186, 0.5)",
- "line-width": {
- "stops": [[9, 4.5], [12, 6.7]]
- }
- }
- },
- {
- "id": "limite admin - limite de région tiret",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_REGION"],
- "paint": {
- "line-color": "rgba(133, 133, 133, 0.5)",
- "line-width": {
- "stops": [[13, 3], [17, 5.5]]
- },
- "line-dasharray": [4, 2, 1, 2]
- }
- },
- {
- "id": "limite etat 1",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 2,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ETAT",
- "LIM_ETAT_ETRANGER"
- ],
- "paint": {
- "line-color": "rgba(186, 186, 186, 0.6)",
- "line-width": {
- "stops": [[2, 2], [3, 3.5], [9, 5], [14, 13], [15, 20], [16, 24], [17, 42]]
- }
- }
- },
- {
- "id": "limite etat 2",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 7,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ETAT",
- "LIM_ETAT_ETRANGER"
- ],
- "paint": {
- "line-color": "#A5A5A5",
- "line-width": {
- "stops": [[9, 1.5], [14, 3.5], [15, 5.5], [16, 6.5], [17, 11]]
- },
- "line-dasharray": [4, 2]
- }
- },
- {
- "id": "limite cote",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 7,
- "maxzoom":10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo","LIM_COTE"],
- "paint": {
- "line-color": "#A0A0A0",
- "line-width": 1
- }
- },
- {
- "id": "ligne electrique",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIGNE_ELECTRIQUE"],
- "paint": {
- "line-color": "#858585",
- "line-width": {
- "stops": [[13, 1], [17, 2]]
- }
- }
- },
- {
- "id": "autre construction linéaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CABLE",
- "REMONTEE_MEC",
- "HYDROCARBURES",
- "CONDUITE_MATIERES_P",
- "SPORT_MONTAGNE_LIN",
- "PISTE_BOBSLEIGH",
- "PISTE_LUGE",
- "PISTE_AERO_LIN"
- ],
- "paint": {
- "line-color": "#858585",
- "line-width": 1
- }
- },
- {
- "id": "autre construction linéaire - trait perpend cable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","CABLE"],
- "paint": {
- "line-color": "#858585",
- "line-width": 5,
- "line-dasharray": [0.5,10]
- }
- },
- {
- "id": "autre construction linéaire - trait perpend 1 remont",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REMONTEE_MEC"],
- "paint": {
- "line-color": "#858585",
- "line-width": 6,
- "line-dasharray": [1,10]
- }
- },
- {
- "id": "autre construction linéaire - trait perpend 2 remont",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REMONTEE_MEC"],
- "paint": {
- "line-color": "#C3C3C3",
- "line-width": 6,
- "line-dasharray": [0.3,0.4,0.3,10]
- }
- },
- {
- "id": "autre construction linéaire - trait perpend carbur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "HYDROCARBURES",
- "CONDUITE_MATIERES_P"
- ],
- "paint": {
- "line-color": "#858585",
- "line-width": 5,
- "line-dasharray": [1,10]
- }
- },
- {
- "id": "routier ponctuel - peage ponctuel",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "routier_ponc",
- "minzoom": 8,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PEAGE_PONC"],
- "paint": {
- "circle-radius": {
- "stops": [[9, 3.5], [12, 6.5]]
- },
- "circle-color": "#AFAFAF",
- "circle-stroke-width": 1,
- "circle-stroke-color": "#858585"
- }
- },
- {
- "id": "routier ponctuel - barriere",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "routier_ponc",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "icon-image": "Barriere",
- "icon-size": {
- "stops": [[13, 0.25], [16, 0.45], [17, 0.7]]
- },
- "icon-allow-overlap": true,
- "icon-rotate": ["get", "rotation"]
- },
- "filter": ["==","symbo","BARRIERE"],
- "paint": {
- "icon-color": "#9B9B9B"
- }
- },
- {
- "id": "hydro ponctuel",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "hydro_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "FONTAINE",
- "POINT_D_EAU",
- "SOURCE",
- "SOURCE_CAPTEE",
- "PERTE",
- "RESURGENCE",
- "CASCADE",
- "AUTRE_HYDRO_PONC"
- ],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 7]]
- },
- "circle-color": "#FFFFFF",
- "circle-opacity": 1,
- "circle-stroke-width": {
- "stops": [[14, 2], [17, 5]]
- },
- "circle-stroke-color": "#A5A5A5"
- }
- },
- {
- "id": "point coté",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_ponc",
- "minzoom": 11,
- "maxzoom": 16,
- "filter": ["in","symbo",
- "POINT_COTE",
- "POINT_COTE_TOPO",
- "POINT_COTE_RESEAU",
- "POINT_RBF"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.1,
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.2, 0.4],
- "text-padding": 2,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#555555"
- }
- },
- {
- "id": "bati ponctuel : Hopital",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Hopital",
- "icon-size": 0.33
- },
- "filter": ["==","symbo","HOPITAL_PONC"],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel hydrographique",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "icon-image": "Pompage",
- "icon-size": { "stops": [[13, 0.2], [17, 0.6]] },
- "icon-allow-overlap": true
- },
- "filter": ["in","symbo",
- "CITERNE",
- "LAVOIR",
- "STATION_EPURATION",
- "STATION_DE_POMPAGE",
- "USINE_PRODUCTION_EAU",
- "USINE_ELEVATRICE"
- ],
- "paint": {
- "icon-color": "#A5A5A5"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Puits-Abreuvoir",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "PUITS",
- "ABREUVOIR"
- ],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 7]]
- },
- "circle-color": "#FFFFFF",
- "circle-opacity": 1,
- "circle-stroke-width": {
- "stops": [[14, 2], [17, 5]]
- },
- "circle-stroke-color": "#A5A5A5"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Phare",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "icon-image": "Phare",
- "icon-size": { "stops": [[13, 0.7], [17, 1.3]] }
- },
- "filter": ["==","symbo","PHARE"],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Amer-Feu",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "icon-image": "Feu",
- "icon-size": { "stops": [[13, 0.7], [17, 1.3]] }
- },
- "filter": ["in","symbo",
- "AMER",
- "FEU",
- "FEU_PONC",
- "TOURELLE_LUMINEUSE"
- ],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Balise",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "icon-image": "Balise",
- "icon-size": { "stops": [[13, 0.7], [17, 1.3]] }
- },
- "filter": ["in","symbo",
- "BALISE",
- "TOURELLE"
- ],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Ecluse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 12,
- "maxzoom": 15,
- "layout": {
- "visibility": "visible",
- "icon-image": "Ecluse",
- "icon-size": 0.2
- },
- "filter": ["==","symbo","ECLUSE_PONC"],
- "paint": {
- "icon-color": "#A5A5A5"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Barrage",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 12,
- "maxzoom": 14,
- "layout": {
- "visibility": "visible",
- "icon-image": "Barrage",
- "icon-size": 0.25
- },
- "filter": ["==","symbo","BARRAGE_PONC"],
- "paint": {
- "icon-color": "#A5A5A5"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Chateau d'eau",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","CHATEAU_EAU_PONC"],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 8]]
- },
- "circle-color": "#A5A5A5"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Réservoir d'eau",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","RESERVOIR_EAU_PONC"],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 8]]
- },
- "circle-color": "#CFCFCF",
- "circle-opacity": 1,
- "circle-stroke-width": {
- "stops": [[14, 1], [17, 2.5]]
- },
- "circle-stroke-color": "#A5A5A5"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Constr spé",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "ConstrSpeciale",
- "icon-size": { "stops": [[13, 0.22], [17, 0.5]] }
- },
- "filter": ["in","symbo",
- "ANTENNE",
- "CONSTR_SPE_TECHNIQUE",
- "CONSTR_INDIF_PONC",
- "CHEMINEE",
- "CHEVALEMENT",
- "PUITS_GAZ",
- "PUITS_PETROLE",
- "PYLONE_METEO",
- "TORCHERE",
- "TOUR_GUET",
- "TOUR_HERTZIENNE"
- ],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Silo",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible",
- "icon-image": "Silo",
- "icon-size": { "stops": [[13, 0.22], [17, 0.5]] }
- },
- "filter": ["==","symbo","SILO_PONC"],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Eolienne",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Eolienne",
- "icon-size": { "stops": [[13, 0.4], [17, 1], [18, 0.8]] }
- },
- "filter": ["==","symbo","EOLIENNE"],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Reservoir",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible",
- "icon-image": "Reservoir",
- "icon-size": { "stops": [[13, 0.26], [17, 0.5]] }
- },
- "filter": ["==","symbo","RESERVOIR_PONC"],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel infrastructure - pylone électrique",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PYLONE_ELEC"],
- "paint": {
- "circle-radius" : {
- "stops": [[13, 1], [17, 2]]
- },
- "circle-color" : "#000000"
- }
- },
- {
- "id": "bati ponctuel montagne - Abri",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Abri",
- "icon-size": { "stops": [[13, 0.4], [15, 0.6], [17, 0.9]] }
- },
- "filter": ["==","symbo","ABRI"],
- "paint": {
- "icon-color": "#4F4F4F"
- }
- },
- {
- "id": "bati ponctuel montagne - Refuge Garde",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Refugegard",
- "icon-size": { "stops": [[13, 0.4], [15, 0.6], [17, 0.9]] }
- },
- "filter": ["==","symbo","REFUGE_GARDE"],
- "paint": {
- "icon-color": "#4F4F4F"
- }
- },
- {
- "id": "bati ponctuel montagne - Refuge Non Garde",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Refugenongard",
- "icon-size": { "stops": [[13, 0.4], [15, 0.6], [17, 0.9]] }
- },
- "filter": ["==","symbo","REFUGE"],
- "paint": {
- "icon-color": "#4F4F4F"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aeroport FXX",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Aeroport",
- "icon-size": 0.5
- },
- "filter": ["all",
- ["==","symbo","AEROPORT_PONC"],
- ["==","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aerodrome FXX",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Aerodrome",
- "icon-size": 0.4
- },
- "filter": ["all",
- ["==","symbo","AERODROME_PONC"],
- ["==","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aeroport DOM",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "icon-image": "Aeroport",
- "icon-size": 0.5
- },
- "filter": ["all",
- ["==","symbo","AEROPORT_PONC"],
- ["!=","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aerodrome DOM",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "icon-image": "Aerodrome",
- "icon-size": 0.4
- },
- "filter": ["all",
- ["==","symbo","AERODROME_PONC"],
- ["!=","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "bati ponctuel transport ferroviaire",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Gare",
- "icon-size" : 0.33
- },
- "filter": ["==","symbo","GARE_VOYAGEURS"],
- "paint": {
- "icon-color": "#7D7D7D"
- }
- },
- {
- "id": "toponyme - bornes postales haute - chemins",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "CHEMIN",
- "CHEMIN_SOU",
- "CHEMIN_SUP",
- "PISTE_CYCLABLE",
- "PISTE_CYCLABLE_SOU",
- "PISTE_CYCLABLE_SUP",
- "RUE_PIETONNE",
- "RUE_PIETONNE_SOU",
- "RUE_PIETONNE_SUP",
- "SENTIER",
- "SENTIER_SOU",
- "SENTIER_SUP",
- "ESCALIER",
- "ESCALIER_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - non revetue, non classee",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "NON_CLASSEE",
- "NON_CLASSEE_4",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_RESTREINT",
- "NON_CLASSEE_RESTREINT_SUP",
- "NON_CLASSEE_SOU",
- "NON_CLASSEE_SUP",
- "NON_REVETUE_CARRO",
- "NON_REVETUE_CARRO_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.3
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - locales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "LOCALE_1",
- "LOCALE_1_SOU",
- "LOCALE_1_SUP",
- "LOCALE_2",
- "LOCALE_2_SOU",
- "LOCALE_2_SUP",
- "LOCALE_3",
- "LOCALE_3_SOU",
- "LOCALE_3_SUP",
- "LOCALE_4",
- "LOCALE_4_SOU",
- "LOCALE_4_SUP",
- "LOCALE_CONSTR",
- "LOCALE_CONSTR_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.4
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - regionales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "REGIONALE_1",
- "REGIONALE_1_SOU",
- "REGIONALE_1_SUP",
- "REGIONALE_2",
- "REGIONALE_2_SOU",
- "REGIONALE_2_SUP",
- "REGIONALE_3",
- "REGIONALE_3_SOU",
- "REGIONALE_3_SUP",
- "REGIONALE_4",
- "REGIONALE_4_SUP",
- "REGIONALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.5
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - principales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "PRINCIPALE_1",
- "PRINCIPALE_1_SOU",
- "PRINCIPALE_1_SUP",
- "PRINCIPALE_2",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_3",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_4",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.6
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - chemins",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "CHEMIN",
- "CHEMIN_SOU",
- "CHEMIN_SUP",
- "PISTE_CYCLABLE",
- "PISTE_CYCLABLE_SOU",
- "PISTE_CYCLABLE_SUP",
- "RUE_PIETONNE",
- "RUE_PIETONNE_SOU",
- "RUE_PIETONNE_SUP",
- "SENTIER",
- "SENTIER_SOU",
- "SENTIER_SUP",
- "ESCALIER",
- "ESCALIER_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - non revetue, non classee",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "NON_CLASSEE",
- "NON_CLASSEE_4",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_RESTREINT",
- "NON_CLASSEE_RESTREINT_SUP",
- "NON_CLASSEE_SOU",
- "NON_CLASSEE_SUP",
- "NON_REVETUE_CARRO",
- "NON_REVETUE_CARRO_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.3
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - locales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "LOCALE_1",
- "LOCALE_1_SOU",
- "LOCALE_1_SUP",
- "LOCALE_2",
- "LOCALE_2_SOU",
- "LOCALE_2_SUP",
- "LOCALE_3",
- "LOCALE_3_SOU",
- "LOCALE_3_SUP",
- "LOCALE_4",
- "LOCALE_4_SOU",
- "LOCALE_4_SUP",
- "LOCALE_CONSTR",
- "LOCALE_CONSTR_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.4
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - regionales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "REGIONALE_1",
- "REGIONALE_1_SOU",
- "REGIONALE_1_SUP",
- "REGIONALE_2",
- "REGIONALE_2_SOU",
- "REGIONALE_2_SUP",
- "REGIONALE_3",
- "REGIONALE_3_SOU",
- "REGIONALE_3_SUP",
- "REGIONALE_4",
- "REGIONALE_4_SUP",
- "REGIONALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.5
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - principales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "PRINCIPALE_1",
- "PRINCIPALE_1_SOU",
- "PRINCIPALE_1_SUP",
- "PRINCIPALE_2",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_3",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_4",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.6
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#6E6E6E",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - courbe rocher maitresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["==","txt_typo","ORO_COURBE_ROCHER"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 30,
- "text-rotate": { "type": "identity", "property": "rotation" },
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#383838",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - courbe glacier maitresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["==","txt_typo","ORO_COURBE_GLACIER"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 30,
- "text-rotate": { "type": "identity", "property": "rotation" },
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#989898",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - courbe maitresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["==","txt_typo","ORO_COURBE"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 30,
- "text-rotate": { "type": "identity", "property": "rotation" },
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#535353",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - liaison maritime",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_liaison_lin",
- "minzoom": 8,
- "maxzoom": 18,
- "filter": ["==","txt_typo","LIAISON_MARITIME"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#8B8B8B",
- "text-halo-width": 5,
- "text-halo-color": "#CFCFCF"
- }
- },
- {
- "id": "toponyme bati station de métro + bati ponctuel metro",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":14,
- "filter": ["all",
- ["==","txt_typo","TYPO_E_1"],
- ["==","symbo","STATION_METRO"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-offset": [0.30, -0.25],
- "text-padding": 3,
- "text-anchor": "bottom-left",
- "text-font": ["Source Sans Pro"],
- "icon-image": "Metro",
- "icon-size": { "stops": [[15, 0.33], [17, 0.6]] }
- },
- "paint": {
- "text-color": "#414141",
- "icon-color": "#8C8C8C"
- }
- },
- {
- "id": "toponyme ferre lineaire",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ferre_lin",
- "minzoom":12,
- "filter": ["in","txt_typo",
- "FER_NOM",
- "FER_OUVRAGE"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 10,
- "text-anchor": "center",
- "text-offset": [0,-1],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-width": 1,
- "text-halo-color": "rgba(255, 255, 255, 1)"
- }
- },
- {
- "id": "toponyme station epuration, de pompage, usine de production eau",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":14,
- "filter": ["==","txt_typo","station"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{designation}",
- "text-anchor": "left",
- "text-offset": [0.8, 0],
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#787878"
- }
- },
- {
- "id": "toponyme bati ponc gare",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":15,
- "filter": ["==","txt_typo","gore"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{designation}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000"
- }
- },
- {
- "id": "toponyme bati ponc barrage",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "filter": ["==","txt_typo","BARRAGE_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "left",
- "text-offset": [0.8, 0],
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#787878"
- }
- },
- {
- "id": "toponyme bati ponc phare - niveau 13",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "maxzoom":13,
- "filter": ["==","txt_typo","PHARE"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "right",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#3B3B3B"
- }
- },
- {
- "id": "toponyme bati ponc phare - niveau 14à19",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":13,
- "filter": ["all",
- ["==","symbo","PHARE"],
- ["in","txt_typo",
- "TYPO_C_6",
- "TYPO_C_7",
- "TYPO_C_8",
- "TYPO_E_GE"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "right",
- "text-size": { "stops": [[13, 12], [18, 18]] },
- "text-allow-overlap": false,
- "text-offset": [-2.00, 0],
- "text-padding": 3,
- "text-anchor": "right",
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#3B3B3B"
- }
- },
- {
- "id": "toponyme bati ponc autre",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "filter": ["in","txt_typo",
- "BAT_ACTIVITE",
- "BAT_FORTIF",
- "BAT_VILLAGE_DETRUIT"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#3B3B3B"
- }
- },
- {
- "id": "toponyme bati ponc aerogare",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":14,
- "maxzoom":17,
- "filter": ["all",
- ["==","txt_typo","TYPO_E_GE"],
- ["==","symbo","AEROGARE"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": {"stops": [[12, 9], [16, 11]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#121212",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme bati ponc aeroport 12",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":11,
- "maxzoom":12,
- "filter": ["==","txt_typo","AEROPORT_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -1.3],
- "text-size": 10.5,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#121212",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aeroport 13",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "maxzoom":13,
- "filter": ["==","txt_typo","AEROPORT_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -2],
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#121212",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aeroport",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":13,
- "maxzoom":17,
- "filter": ["all",
- ["==","txt_typo","TYPO_A_5"],
- ["==","symbo","AEROPORT"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": {"stops": [[12, 11], [16, 13]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#121212",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aerodrome 12",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":11,
- "maxzoom":12,
- "filter": ["==","txt_typo","AERODROME_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -1.3],
- "text-size": 9.5,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#121212",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aerodrome 13",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "maxzoom":13,
- "filter": ["==","txt_typo","AERODROME_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -2],
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#121212",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aerodrome",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":13,
- "maxzoom":17,
- "filter": ["all",
- ["==","txt_typo","TYPO_A_7"],
- ["==","symbo","AERODROME"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": {"stops": [[12, 10], [16, 12]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#121212",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - hydro ponc 5",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["in","txt_typo",
- "TYPO_D_9",
- "TYPO_D_10",
- "TYPO_E_1_cyan"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 11], [17, 14]]},
- "text-allow-overlap": true,
- "text-padding": 5,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - hydro ponc glacier",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["==","txt_typo","ORO_GLACIER_2"],
- "layout": {
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 14,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - limite militaire ponc 3 et 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "filter": ["in","txt_typo",
- "LIM_MILI_3",
- "LIM_MILI_4"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 12,
- "text-allow-overlap": false,
- "text-padding": 2,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#1C1C1C",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - limite parc ponc 3 et 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "filter": ["in","txt_typo",
- "LIM_PARC_3",
- "LIM_PARC_4",
- "RESERVE_NATURELLE_PONC"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": false,
- "text-padding": 2,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme numéro de route - départementale",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_numero_lin",
- "minzoom":11,
- "maxzoom":16,
- "filter": ["==","txt_typo","Départementale"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 10.5,
- "text-allow-overlap": false,
- "text-padding": 2,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Semibold"],
- "text-rotation-alignment": "viewport"
- },
- "paint": {
- "text-color": "#525252",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme numéro de route - nationale",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_numero_lin",
- "minzoom":7,
- "maxzoom":16,
- "filter": ["==","txt_typo","Nationale"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 12,
- "text-allow-overlap": false,
- "text-padding": 0,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Regular"],
- "icon-image": "Ecluse",
- "icon-rotation-alignment": "viewport",
- "text-rotation-alignment": "viewport",
- "icon-text-fit": "both",
- "icon-size": 0
- },
- "paint": {
- "text-color": "#F5F5F5",
- "icon-color": "#8C8C8C",
- "text-halo-color": "rgba(85, 85, 85, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme numéro de route - autoroute",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_numero_lin",
- "minzoom":7,
- "maxzoom":16,
- "filter": ["==","txt_typo","Autoroute"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 0,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Regular"],
- "icon-image": "Ecluse",
- "icon-rotation-alignment": "viewport",
- "text-rotation-alignment": "viewport",
- "icon-text-fit": "both",
- "icon-size": 0
- },
- "paint": {
- "text-color": "#F5F5F5",
- "icon-color": "#8C8C8C",
- "text-halo-color": "rgba(85, 85, 85, 0.5)",
- "text-halo-width": 5
- }
- },
- {
- "id": "toponyme - odonyme abrégé",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_odonyme_lin",
- "minzoom": 15,
- "maxzoom":17,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{nom_gauche}",
- "text-size": 10,
- "text-anchor": "center",
- "text-max-angle": 30,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 1)"
- }
- },
- {
- "id": "toponyme - odonyme desabrégé",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_odonyme_lin",
- "minzoom": 17,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{nom_desabrege}",
- "text-size": 11,
- "text-anchor": "center",
- "text-max-angle": 30,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 1)"
- }
- },
- {
- "id": "toponyme - lieu dit non habité 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","LIEU-DIT_NON_HABITE"],
- ["in","txt_typo",
- "TYPO_B_10",
- "TYPO_B_11"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - bois",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_10",
- "TYPO_F_11"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - oro lineaire 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_SOMMET_3",
- "ORO_GORGE_2"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 11,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["in","txt_typo",
- "ORO_SOMMET_3",
- "ORO_GORGE_2",
- "GROTTE",
- "GORGE",
- "TYPO_G_9",
- "TYPO_G_10"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 11], [16, 16]]},
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1.5
- }
- },
- {
- "id": "toponyme - hydro ponc 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["in","txt_typo",
- "lac - étang - bassin",
- "HYD_SURF_4",
- "HYD_SURF_4_T",
- "HYD_SURF_5",
- "HYD_SURF_5_T",
- "TYPO_D_8",
- "SOURCE"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 13], [17, 16]]},
- "text-allow-overlap": true,
- "text-padding": 5,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme quartier ",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "filter": ["in","txt_typo",
- "BAT_QUARTIER",
- "BAT_QUARTIER_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA10",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["==","txt_typo","TYPO_A_10"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 11], [17, 13.5]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - lieu dit non habité",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","LIEU-DIT_NON_HABITE"],
- ["in","txt_typo",
- "TYPO_B_7",
- "TYPO_B_8",
- "TYPO_B_9"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 12,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - bois 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_7",
- "TYPO_F_8",
- "TYPO_F_9"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 16,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite hameau ",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 11,
- "maxzoom": 13,
- "filter": ["in","txt_typo",
- "BAT_HAMEAU",
- "BAT_HAMEAU_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.17,
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite importance 5",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 9,
- "filter": ["in","txt_typo",
- "commune 5",
- "BAT_COMMUNE_5",
- "BAT_COMMUNE_5_T",
- "BAT_CHEF_LIEU_COM",
- "BAT_CHEF_LIEU_COM_T",
- "BAT_CHEF_LIEU_COM-T",
- "BAT_ANCIENNE_COM",
- "BAT_ANCIENNE_COM_T",
- "BAT_COMMUNE_ASSOCIEE",
- "BAT_COMMUNE_ASSOCIEE_T",
- "Commune très petite"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.21,
- "text-field": "{texte}",
- "text-size": 11.5,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - ocs lineaire 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_lin",
- "filter": ["==","txt_typo","OCS_FORET_3"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 12], [12, 15]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-width": 1,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - lieu dit non habité 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","LIEU-DIT_NON_HABITE"],
- ["in","txt_typo",
- "TYPO_B_5",
- "TYPO_B_4"
-
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - bois 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_5",
- "TYPO_F_4"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 19,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - bois 0",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_3",
- "TYPO_F_2"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 22,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - ocs ponc 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["==","txt_typo","OCS_FORET_3"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 12], [12, 15]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - oro lineaire 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_ILE_3",
- "ORO_RELIEF_3",
- "ORO_RELIEF_3_T",
- "ORO_RELIEF_4",
- "ORO_RELIEF_4_T",
- "ORO_CAP_2",
- "ORO_CAP_3",
- "ORO_SOMMET_2",
- "ORO_COL_2",
- "ORO_GORGE_1",
- "ORO_GORGE-1"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 12,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["in","txt_typo",
- "ORO_ILE_3",
- "ORO_RELIEF_3",
- "ORO_RELIEF_3_T",
- "ORO_RELIEF_4",
- "ORO_RELIEF_4_T",
- "ORO_CAP_2",
- "ORO_CAP_3",
- "ORO_SOMMET_2",
- "ORO_COL_2",
- "ORO_GORGE_1",
- "ORO_GORGE-1",
- "TYPO_G_7",
- "TYPO_G_8"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 12], [16, 17]]},
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 1.5
- }
- },
- {
- "id": "toponyme - hydro lineaire 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "HYD_LIN_3",
- "HYD_LIN_4",
- "HYD_LIN_5",
- "petite rivière",
- "canal",
- "HYD_SURF_3",
- "HYD_SURF_3_T",
- "HYD_SURF_4",
- "HYD_SURF_4_T",
- "HYD_SURF_5",
- "HYD_SURF_5_T",
- "TYPO_D_5"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 12], [18, 19]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.7)"
- }
- },
- {
- "id": "toponyme - hydro lineaire 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "minzoom":14,
- "filter": ["in","txt_typo",
- "TYPO_D_6",
- "TYPO_D_8",
- "TYPO_D_9",
- "TYPO_D_10"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 10], [18, 16]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.7)"
- }
- },
- {
- "id": "toponyme - hydro ponc 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["in","txt_typo",
- "petit golfe",
- "grande baie",
- "baie",
- "HYD_SURF_3",
- "TYPO_D_5",
- "TYPO_D_6",
- "TYPO_D_7"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 15], [17, 18]]},
- "text-allow-overlap": true,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc zai zoom 16",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":15,
- "maxzoom":16,
- "filter": ["==","txt_typo","zai"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{designation}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000"
- }
- },
- {
- "id": "toponyme bati ponc zai zoom 17 et 18",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":16,
- "filter": ["==","txt_typo","zai"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000"
- }
- },
- {
- "id": "toponyme localite importance 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 7,
- "filter": ["in","txt_typo",
- "commune 4",
- "BAT_COMMUNE_4",
- "BAT_COMMUNE_4_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.21,
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA9",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["==","txt_typo","TYPO_A_9"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 11.5], [17, 14]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA8",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["==","txt_typo","TYPO_A_8"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 12], [17, 15]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - limite militaire ponc 1 et 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "filter": ["in","txt_typo",
- "LIM_MILI_1",
- "LIM_MILI_2"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 5,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#1C1C1C",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - limite parc marin",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "minzoom": 8,
- "filter": ["==","txt_typo","LIM_PARC_NATUREL_MARIN"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 10,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#707070",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - limite parc ponc 1 et 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "minzoom":8,
- "filter": ["in","txt_typo",
- "LIM_PARC_1",
- "LIM_PARC_2",
- "LIM_PARC_NATUREL"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 10,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - ocs lineaire 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_lin",
- "filter": ["==","txt_typo","OCS_FORET_2"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 15], [12, 18]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - ocs ponc 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["==","txt_typo","OCS_FORET_2"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 15], [12, 18]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro lineaire 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_ILE_2",
- "ORO_RELIEF_2",
- "ORO_RELIEF_2_T",
- "ORO_CAP_1",
- "ORO_SOMMET_1"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-padding": 10,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom":9,
- "filter": ["in","txt_typo",
- "ORO_ILE_2",
- "ORO_RELIEF_2",
- "ORO_RELIEF_2_T",
- "ORO_CAP_1",
- "ORO_COL_1",
- "sommet ou col",
- "ORO_SOMMET_1",
- "TYPO_G_4",
- "TYPO_G_6"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[9, 13], [10, 15], [13, 15], [16, 19]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro ponc 2B",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom":8,
- "filter": ["in","txt_typo",
- "île",
- "cap ou pointe"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - hydro lineaire 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "HYD_LIN_2",
- "rivière moyenne",
- "HYD_SURF_2",
- "HYD_SURF_2_T",
- "TYPO_D_3"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 15], [18, 21]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro ponc 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "minzoom": 5,
- "filter": ["in","txt_typo",
- "moyen",
- "golfe moyen",
- "HYD_SURF_2",
- "TYPO_D_2",
- "TYPO_D_3",
- "TYPO_D_4"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[5, 12], [6, 18], [10, 17], [18, 21]]},
- "text-allow-overlap": false,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite importance 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 5,
- "filter": ["in","txt_typo",
- "commune 3",
- "BAT_COMMUNE_3",
- "BAT_COMMUNE_3_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.21,
- "text-field": "{texte}",
- "text-size": {"stops": [[5, 10], [6, 15]]},
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA7 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_7"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 13], [17, 16]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA6 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_6"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 15], [17, 18]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro lineaire 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_ILE_1",
- "ORO_RELIEF_1",
- "ORO_RELIEF_1_T"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 20,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-padding": 5,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc monde",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom": 5,
- "filter": ["in","txt_typo",
- "Basin",
- "Depression",
- "Desert",
- "Geoarea",
- "Gorge",
- "Isthmus",
- "Lake",
- "Lowland",
- "Pen/cape",
- "Plain",
- "Plateau",
- "Range/mtn",
- "Tundra",
- "Valley",
- "Island",
- "Island group"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA4 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_4"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 17,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme - ocs lineaire 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_lin",
- "filter": ["==","txt_typo","OCS_FORET_1"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 18], [12, 22]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-padding": 1,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - ocs ponc 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["==","txt_typo","OCS_FORET_1"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 18], [12, 22]]},
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#5A5A5A",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro ponc 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom":8,
- "filter": ["in","txt_typo",
- "grande île",
- "ORO_ILE_1",
- "ORO_RELIEF_1",
- "ORO_RELIEF_1_T",
- "TYPO_G_3",
- "TYPO_G_2",
- "TYPO_G_1"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 21,
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#545454",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - hydro lineaire glacier",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "ORO_GLACIER_1",
- "ORO_GLACIER_2"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro lineaire 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "HYD_LIN_1",
- "HYD-LIN-1",
- "grande rivière",
- "HYD_SURF_1",
- "HYD_SURF_1_T",
- "TYPO_D_1",
- "TYPO_D_2"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 18,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro lineaire ocean",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["==","txt_typo","mer et océan"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 30,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-width": 4,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro ponc 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "minzoom": 4,
- "filter": ["in","txt_typo",
- "mer",
- "grand",
- "grand golfe",
- "HYD_SURF_1",
- "TYPO_D_1"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[4, 16], [6, 30], [10, 25]]},
- "text-allow-overlap": true,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite importance 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 4,
- "filter": ["in","txt_typo",
- "commune 2",
- "BAT_COMMUNE_2",
- "BAT_COMMUNE-2",
- "BAT_COMMUNE_2_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.25,
- "text-field": "{texte}",
- "text-size": {"stops": [[4, 10], [6, 17]]},
- "text-allow-overlap": true,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.2],
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": {"stops": [[1, ["Source Sans Pro Regular"]], [7, ["Source Sans Pro Bold"]], [10, ["Source Sans Pro Regular"]]]}
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA3 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_3"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 19,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA2 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_2"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 21,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite n0 typoA7 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_7"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 13], [17, 16]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA6 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_6"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 15], [17, 18]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA1 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_1"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 23,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite n0 typoA4 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_4"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 17,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA3 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_3"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 19,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA2 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_2"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 21,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite importance 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 3,
- "filter": ["in","txt_typo",
- "commune 1",
- "BAT_COMMUNE_1",
- "BAT_COMMUNE_1_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.3,
- "text-field": "{texte}",
- "text-size": {"stops": [[3, 10], [6, 20]]},
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.25, -0.10],
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": {"stops": [[1, ["Source Sans Pro Regular"]], [7, ["Source Sans Pro Bold"]], [10, ["Source Sans Pro Regular"]]]}
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite n0 typoA1 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_1"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 23,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme - hydro ponc ocean",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "minzoom": 1,
- "filter": ["==","txt_typo","ocean"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[1, 16], [6, 30]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme pays 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 4,
- "maxzoom": 5,
- "filter": ["==","txt_typo","pays 3"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 9,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#7D7D7D",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme pays 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 2,
- "maxzoom": 5,
- "filter": ["==","txt_typo","pays 2"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 2,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#7D7D7D",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme pays 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 2,
- "maxzoom": 5,
- "filter": ["==","txt_typo","pays 1"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 2,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#7D7D7D",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme continent",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 3,
- "filter": ["==","txt_typo","continent"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Bold"]
- },
- "paint": {
- "text-color": "#7D7D7D",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- }
- ]
-}
\ No newline at end of file
+{
+ "version": 8,
+ "name": "PLAN IGN",
+ "sources": {
+ "plan_ign": {
+ "type": "vector",
+ "url": "https://wxs.ign.fr/choisirgeoportail/geoportail/tms/1.0.0/PLAN.IGN/metadata.json"
+ }
+ },
+ "sprite": "https://wxs.ign.fr/static/vectorTiles/styles/PLAN.IGN/sprite/PlanIgn-Gris",
+ "transition": {"duration": 300, "delay": 0},
+ "layers": [
+ {
+ "id": "bckgrd",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "fond_opaque",
+ "minzoom": 0,
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 0m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_0"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#E1E1E1", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 100m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_100"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#F6F6F6", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 200m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_200"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#E3E3E3", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 1000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_1000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#C7C7C7", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 3000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_3000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#979797", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 4000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_4000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#7C7C7C", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 5000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_5000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#505050", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - glacier",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "GLACIER"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-opacity": 0.7}
+ },
+ {
+ "id": "ocs - vegetation - zone boiséee, foret fermee, peupleraie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "ZONE_BOISEE",
+ "ZONE_FORET_FERMEE_CONI",
+ "ZONE_FORET_FERMEE_FEUIL",
+ "ZONE_FORET_FERMEE_MIXTE",
+ "ZONE_PEUPLERAIE"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#E8E8E8", "fill-outline-color": "#E8E8E8"}
+ },
+ {
+ "id": "ocs - vegetation - forêt ouverte",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["ZONE_FORET_OUVERTE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#F3F3F3", "fill-outline-color": "#F3F3F3"}
+ },
+ {
+ "id": "ocs - vegetation - lande ligneuse",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_LANDE_LIGNEUSE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FCFCFC"}
+ },
+ {
+ "id": "ocs - vegetation - vigne",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_VIGNE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#F5F5F5"}
+ },
+ {
+ "id": "ocs - vegetation - verger",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_VERGER"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#EBEBEB"}
+ },
+ {
+ "id": "ocs - vegetation - canne à sucre, bananeraie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_CANNE_BANANE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#F7F7F7"}
+ },
+ {
+ "id": "hydro surfacique - Estran",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "hydro_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_D_ESTRAN"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DCDCDC", "fill-outline-color": "#DCDCDC"}
+ },
+ {
+ "id": "ocs - vegetation - mangrovre",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_MANGROVE"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#BCBCBC",
+ 10,
+ "#BFBFBF"
+ ]
+ }
+ },
+ {
+ "id": "ocs - vegetation - marais",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_MARAIS"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Marais"}
+ },
+ {
+ "id": "ocs - vegetation - marais salant",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_MARAIS_SALANT"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "MaraisSalant"}
+ },
+ {
+ "id": "ocs - Zone",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_ROCHEUSE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#D5D5D5", "fill-opacity": 0.3}
+ },
+ {
+ "id": "ocs - Zone sable sec",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_SABLE_SEC"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Sable"}
+ },
+ {
+ "id": "ocs - Zone sable humide",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FOND_CUVETTE_HUMIDE", "ZONE_SABLE_HUMIDE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "SableHumide"}
+ },
+ {
+ "id": "ocs - Zone graviers galets secs",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "GRAVIERS_GALETS_SEC"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "GravierSec"}
+ },
+ {
+ "id": "ocs - Zone graviers galets humides",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "GRAVIERS_GALETS_HUM"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Gravier"}
+ },
+ {
+ "id": "ocs - Zone rocher hydro",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_ROCHER_HYDRO"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "RocherHydro"}
+ },
+ {
+ "id": "ocs - Zone glacier",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_GLACIER"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-pattern": "Glacier",
+ "fill-opacity": ["interpolate", ["linear"], ["zoom"], 10, 0.5, 12, 0.3]
+ }
+ },
+ {
+ "id": "zone batie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zone_surf",
+ "minzoom": 7,
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "ZONE_BATI"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#E7E7E7",
+ "fill-opacity": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 0.9,
+ 14,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "zone d'activité",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zone_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_INDUS_ACTI"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DEDEDE"}
+ },
+ {
+ "id": "oro - courbe et cuvette maitresse",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_MAITRESSE", "CUVETTE_MAITRESSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.7, 15, 2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_NORMALE", "CUVETTE_NORMALE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 1.2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette intercalaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_INTERCALAIRE", "CNV_SS_INTERCALAIRE", "CUVETTE_INTERCAL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": 0.7,
+ "line-dasharray": [20, 7]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette glacier maitresse",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_MAITRESSE", "CUV_GLACIER_MAITRESSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#BFBFBF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.7, 15, 2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette glacier normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_NORMALE", "CUV_GLACIER_NORMALE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#BFBFBF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 1.2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette glacier intercalaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_INTERCAL", "CUV_GLACIER_INTERCAL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#BFBFBF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 15, 0.9],
+ "line-dasharray": [20, 7]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette rocher maitresse",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_MAITRESSE", "CUV_ROCHER_MAITRESSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#AFAFAF", "line-width": 1.7}
+ },
+ {
+ "id": "oro - courbe et cuvette rocher normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_NORMALE", "CUV_ROCHER_NORMALE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#AFAFAF", "line-width": 1}
+ },
+ {
+ "id": "oro - courbe et cuvette rocher intercalaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_INTERCAL", "CUV_ROCHER_INTERCAL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AFAFAF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 15, 0.9],
+ "line-dasharray": [20, 7]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette bathymetrique",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_BATHYMETRIQUE", "CUV_BATHYMETRIQUE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#212121", "line-width": 1}
+ },
+ {
+ "id": "oro lin - talus",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_lin",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "TALUS"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#CFCFCF", "line-width": 1}
+ },
+ {
+ "id": "oro lin - talus - trait perpendiculaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_lin",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "TALUS"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 14, 7, 16, 9],
+ "line-dasharray": [0.1, 1],
+ "line-translate": [0, 4]
+ }
+ },
+ {
+ "id": "toponyme - cote de courbe normale",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "minzoom": 13,
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "texte"], "0"],
+ ["==", ["get", "hors_zone"], "true"],
+ [
+ "match",
+ ["get", "symbo"],
+ ["CNV_MAITRESSE", "CUVETTE_MAITRESSE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10, 15, 13],
+ "text-anchor": "center",
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-keep-upright": false,
+ "text-max-angle": 20,
+ "text-max-width": 100,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#535353",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - cote de courbe rocher",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "minzoom": 13,
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "texte"], "0"],
+ ["==", ["get", "hors_zone"], "true"],
+ [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_MAITRESSE", "CUV_ROCHER_MAITRESSE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10, 15, 13],
+ "text-anchor": "center",
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-keep-upright": false,
+ "text-max-angle": 20,
+ "text-max-width": 100,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#383838",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - cote de courbe glacier",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "minzoom": 13,
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "texte"], "0"],
+ ["==", ["get", "hors_zone"], "true"],
+ [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_MAITRESSE", "CUV_GLACIER_MAITRESSE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10, 15, 13],
+ "text-anchor": "center",
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-keep-upright": false,
+ "text-max-angle": 20,
+ "text-max-width": 100,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#989898",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "hydro surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "hydro_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BASSIN", "SURFACE_D_EAU", "ZONE_MARINE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#CFCFCF", "fill-outline-color": "#CFCFCF"}
+ },
+ {
+ "id": "hydro surfacique temporaire",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "hydro_surf",
+ "filter": ["==", ["get", "symbo"], "SURFACE_D_EAU_TEMP"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "rgba(199, 199, 199, 0.5)"}
+ },
+ {
+ "id": "réseau hydro - cours d'eau souterrain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["COURS_D_EAU_MOY_SOU", "COURS_D_EAU_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.5, 17, 6.5],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "réseau hydro - filet interieur - aqueduc souterrain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.4,
+ 16,
+ 3.5,
+ 17,
+ 5.9
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "réseau hydro - carre - aqueduc souterrain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sou",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 3.5,
+ 16,
+ 8.7,
+ 17,
+ 14.7
+ ],
+ "line-dasharray": [1, 5]
+ }
+ },
+ {
+ "id": "Ferre souterrain - voie normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SOU", "VF_2_SOU", "VF_ELEC_1_SOU", "VF_FERRO_ROUTIER_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B9B9B9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.8, 17, 2.5]
+ }
+ },
+ {
+ "id": "Ferre souterrain - trait perpendic épais",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SOU", "VF_2_SOU", "VF_ELEC_1_SOU", "VF_FERRO_ROUTIER_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B9B9B9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre souterrain - voie etroite",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SOU", "VF_ETROITE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B9B9B9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre souterrain - trait perpendic fin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SOU", "VF_ETROITE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B9B9B9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre souterrain - voie service",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_NON_EXPLOITEE_SOU", "VF_SERVICE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B9B9B9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [5, 2, 1, 2]
+ }
+ },
+ {
+ "id": "Ferre souterrain - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SOU", "TRANSPORT_URBAIN_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B9B9B9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre souterrain - 2 trait perpendic - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SOU", "TRANSPORT_URBAIN_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B9B9B9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 17],
+ "line-dasharray": [0.1, 0.2, 0.1, 10]
+ }
+ },
+ {
+ "id": "Chemin souterrain - piste cyclable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PISTE_CYCLABLE_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#9B9B9B",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.1,
+ 15,
+ 1.7,
+ 16,
+ 2,
+ 17,
+ 3.5
+ ],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "Chemin souterrain - filet exterieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A5A5A5",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.75,
+ 15,
+ 3,
+ 16,
+ 4.2,
+ 17,
+ 9.5
+ ]
+ }
+ },
+ {
+ "id": "Chemin souterrain - filet interieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.9,
+ 16,
+ 2.7,
+ 17,
+ 5.8
+ ],
+ "line-dasharray": [1, 0.2]
+ }
+ },
+ {
+ "id": "Chemin souterrain - Rue pietonne",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "RUE_PIETONNE_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A5A5A5",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ],
+ "line-dasharray": [1, 3]
+ }
+ },
+ {
+ "id": "Chemin souterrain - sentier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "SENTIER_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A5A5A5",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ],
+ "line-dasharray": [4, 3]
+ }
+ },
+ {
+ "id": "Chemin souterrain - chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "CHEMIN_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A5A5A5",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SOU",
+ "BRET_AUTO_LIBRE_2_SOU",
+ "BRET_AUTO_LIBRE_3_SOU",
+ "BRET_AUTO_PEAGE_1_SOU",
+ "BRET_AUTO_PEAGE_2_SOU",
+ "BRET_AUTO_PEAGE_3_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(114, 114, 114, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 2.5,
+ 14,
+ 3.7,
+ 15,
+ 6.8,
+ 16,
+ 8.4,
+ 17,
+ 14
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SOU", "NON_CLASSEE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SOU",
+ "LOCALE_1_SOU",
+ "LOCALE_2_SOU",
+ "LOCALE_3_SOU",
+ "LOCALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(135, 135, 135, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SOU",
+ "REGIONALE_1_SOU",
+ "REGIONALE_2_SOU",
+ "REGIONALE_3_SOU",
+ "REGIONALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(135, 135, 135, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 7,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SOU",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(114, 114, 114, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 7,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SOU", "AUTOROU_PEAGE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(114, 114, 114, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#E1E1E1",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SOU",
+ "BRET_AUTO_LIBRE_2_SOU",
+ "BRET_AUTO_LIBRE_3_SOU",
+ "BRET_AUTO_PEAGE_1_SOU",
+ "BRET_AUTO_PEAGE_2_SOU",
+ "BRET_AUTO_PEAGE_3_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.5,
+ 14,
+ 2.6,
+ 15,
+ 5.2,
+ 16,
+ 6.7,
+ 17,
+ 10.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FAFAFA",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SOU", "NON_CLASSEE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#E1E1E1",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SOU",
+ "LOCALE_1_SOU",
+ "LOCALE_2_SOU",
+ "LOCALE_3_SOU",
+ "LOCALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.3,
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.1,
+ 17,
+ 13.1
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F3F3F3",
+ 17,
+ "#F8F8F8"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SOU",
+ "REGIONALE_1_SOU",
+ "REGIONALE_2_SOU",
+ "REGIONALE_3_SOU",
+ "REGIONALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.4,
+ 9,
+ 1.5,
+ 14,
+ 3.2,
+ 15,
+ 5.8,
+ 16,
+ 8.3,
+ 17,
+ 16.2
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#EFEFEF",
+ 17,
+ "#F7F7F7"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.4,
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SOU",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.1,
+ 14,
+ 4.4,
+ 15,
+ 7.3,
+ 16,
+ 10,
+ 17,
+ 18.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#CFCFCF",
+ 17,
+ "#E4E4E4"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SOU", "AUTOROU_PEAGE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 2.7,
+ 14,
+ 5.8,
+ 15,
+ 9,
+ 16,
+ 12,
+ 17,
+ 20.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - axe central - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SOU", "AUTOROU_PEAGE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#C5C5C5",
+ 17,
+ "#CBCBCB"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - axe central - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#858585",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau temporaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["COURS_D_EAU_TEMP", "COURS_D_EAU_TEMP_MOY"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.5, 17, 4],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "minzoom": 3,
+ "filter": ["==", ["get", "symbo"], "COURS_D_EAU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.3,
+ 7,
+ 1.5,
+ 12,
+ 1.5,
+ 17,
+ 6.5
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - canal",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": ["==", ["get", "symbo"], "CANAL"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.4, 17, 5.9]
+ }
+ },
+ {
+ "id": "réseau hydro - filet interieur - aqueduc",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_AU_SOL"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.4,
+ 16,
+ 3.5,
+ 17,
+ 5.9
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - carre - aqueduc",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_AU_SOL"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 3.5,
+ 16,
+ 8.7,
+ 17,
+ 14.7
+ ],
+ "line-dasharray": [1, 5]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau moyen ",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": ["==", ["get", "symbo"], "COURS_D_EAU_MOY"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 7, 2, 12, 2.5]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau large ",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": ["==", ["get", "symbo"], "COURS_D_EAU_LAR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 7, 3, 11, 5]
+ }
+ },
+ {
+ "id": "parcellaire - parcelle surface",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "parcellaire_parcelle",
+ "filter": ["==", ["get", "symbo"], "PARCELLE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-opacity": 0.7}
+ },
+ {
+ "id": "bati surfacique mairie - Zoom 14",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["MAIRIE", "MAIRIE_ANNEXE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#C6C6C6"}
+ },
+ {
+ "id": "bati surfacique mairie - Zoom 15,16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["MAIRIE", "MAIRIE_ANNEXE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#C6C6C6",
+ 15,
+ "#CBCBCB"
+ ],
+ "fill-outline-color": "#A8A8A8"
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 14,15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BATI_COMMERCIAL",
+ "BATI_INDUSTRIEL",
+ "HANGAR",
+ "HANGAR_COMMERCIAL",
+ "HANGAR_INDUSTRIEL"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#CDCDCD"}
+ },
+ {
+ "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BATI_COMMERCIAL",
+ "BATI_INDUSTRIEL",
+ "HANGAR",
+ "HANGAR_COMMERCIAL",
+ "HANGAR_INDUSTRIEL"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#D6D6D6",
+ 16,
+ "#EBEBEB"
+ ],
+ "fill-outline-color": "#BDBDBD"
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel public - Zoom 14,15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BATI_PUBLIC", "HANGAR_PUBLIC"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#BFBFBF"}
+ },
+ {
+ "id": "bati surfacique fonctionnel public - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BATI_PUBLIC", "HANGAR_PUBLIC"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#D0D0D0",
+ 16,
+ "#E5E5E5"
+ ],
+ "fill-outline-color": "#ADADAD"
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel sportif - bordure",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_SPORTIF"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#D0D0D0", "line-width": 4}
+ },
+ {
+ "id": "bati surfacique fonctionnel sportif",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "BATI_SPORTIF"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#DEDEDE",
+ 15,
+ "#E8E8E8"
+ ]
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel gare - Zoom 14,15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_GARE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#C0C0C0"}
+ },
+ {
+ "id": "bati surfacique fonctionnel gare - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_GARE"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#CBCBCB",
+ 16,
+ "#D6D6D6"
+ ],
+ "fill-outline-color": "#ACACAC"
+ }
+ },
+ {
+ "id": "bati surfacique quelconque - Zoom 15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_QQUE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#CECECE"}
+ },
+ {
+ "id": "bati surfacique quelconque - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_QQUE"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#E5E5E5",
+ 16,
+ "#F0F0F0"
+ ],
+ "fill-outline-color": "#B3B3B3"
+ }
+ },
+ {
+ "id": "cimetiere surfacique 1",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CIMETIERE_MILI_SURF", "CIMETIERE_SURF", "NECROPOLE_NATIONALE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#F5F5F5",
+ "fill-opacity": 0.5,
+ "fill-outline-color": "#868686"
+ }
+ },
+ {
+ "id": "cimetiere surfacique 2",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CIMETIERE_MILI_SURF", "CIMETIERE_SURF", "NECROPOLE_NATIONALE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Cimetiere"}
+ },
+ {
+ "id": "bati hydro surfacique - Autre",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["ECLUSE_SURF", "RESERVOIR_EAU_SURF"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#C9C9C9", "fill-outline-color": "#616161"}
+ },
+ {
+ "id": "bati hydro surfacique - Pecherie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "PECHERIE_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DEDEDE", "fill-outline-color": "#959595"}
+ },
+ {
+ "id": "bati hydro surfacique - Barrage",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "BARRAGE_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-outline-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati hydro surfacique - Chateau d'eau",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "CHATEAU_EAU_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#A5A5A5"}
+ },
+ {
+ "id": "bati infra surfacique - Silo",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "SILO_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#B7B7B7", "fill-outline-color": "#6E6E6E"}
+ },
+ {
+ "id": "bati infra surfacique - Reservoir indus",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "RESERVOIR_INDUS_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#9F9F9F", "fill-outline-color": "#4B4B4B"}
+ },
+ {
+ "id": "bati infra surfacique - Serre",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": ["match", ["get", "symbo"], ["SERRE_SURF"], true, false],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#D8D8D8", "fill-outline-color": "#919191"}
+ },
+ {
+ "id": "bati infra surfacique - poste electrique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["match", ["get", "symbo"], ["POSTE_ELEC_SURF"], true, false],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#949494", "fill-opacity": 0.3}
+ },
+ {
+ "id": "bati infra surfacique - poste electrique bord",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "POSTE_ELEC_SURF"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#000000",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 0.3, 17, 1.2]
+ }
+ },
+ {
+ "id": "bati religieux surfacique - Zoom 14",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "AUTRE_CULTE_SURF",
+ "CHAPELLE_SURF",
+ "CHRETIEN_SURF",
+ "EGLISE_SURF",
+ "MOSQUEE_SURF",
+ "SYNAGOGUE_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DDDDDD"}
+ },
+ {
+ "id": "bati religieux surfacique - Zoom 15,16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "AUTRE_CULTE_SURF",
+ "CHAPELLE_SURF",
+ "CHRETIEN_SURF",
+ "EGLISE_SURF",
+ "MOSQUEE_SURF",
+ "SYNAGOGUE_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#DDDDDD",
+ 15,
+ "#EDEDED"
+ ],
+ "fill-outline-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#C5C5C5",
+ 15,
+ "#CFCFCF"
+ ]
+ }
+ },
+ {
+ "id": "bati remarquable surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "ARC_TRIOMPHE_SURF",
+ "ARENE_THEATRE",
+ "CHATEAU_SURF",
+ "FORTIF_SURF",
+ "MONUMENT_SURF",
+ "TOUR_MOULIN_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#A0A0A0", "fill-outline-color": "#737373"}
+ },
+ {
+ "id": "bati sportif surfacique fond",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "FOOT_SURF",
+ "MULTI_SPORT_SURF",
+ "NATATION_SURF",
+ "PISTE_SPORT_SURF",
+ "SPORT_INDIF_SURF",
+ "TENNIS_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-outline-color": "#FFFFFF"}
+ },
+ {
+ "id": "bati sportif surfacique",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "FOOT_SURF",
+ "MULTI_SPORT_SURF",
+ "NATATION_SURF",
+ "PISTE_SPORT_SURF",
+ "SPORT_INDIF_SURF",
+ "TENNIS_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#D0D0D0", "line-width": 2}
+ },
+ {
+ "id": "bati transport surfacique - piste",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["PISTE_DUR", "PISTE_HERBE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#E0E0E0", "fill-outline-color": "#858585"}
+ },
+ {
+ "id": "bati ZAI - Autres",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zai",
+ "minzoom": 15,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "nature"],
+ [
+ "Administration centrale de l'Etat",
+ "Autre service déconcentré de l'Etat",
+ "Autre établissement d'enseignement",
+ "Capitainerie",
+ "Caserne",
+ "Caserne de pompiers",
+ "Collège",
+ "Divers public ou administratif",
+ "Enseignement primaire",
+ "Enseignement supérieur",
+ "Etablissement extraterritorial",
+ "Etablissement hospitalier",
+ "Etablissement pénitentiaire",
+ "Etablissement thermal",
+ "Gendarmerie",
+ "Hôpital",
+ "Lycée",
+ "Maison de retraite",
+ "Maison du parc",
+ "Musée",
+ "Office de tourisme",
+ "Palais de justice",
+ "Piscine",
+ "Police",
+ "Poste",
+ "Science",
+ "Siège d'EPCI",
+ "Structure d'accueil pour personnes handicapées",
+ "Université"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#D3D3D3",
+ "fill-opacity": 0.5,
+ "fill-outline-color": "#C0C0C0"
+ }
+ },
+ {
+ "id": "bati ZAI - Commandement",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zai",
+ "minzoom": 15,
+ "filter": [
+ "match",
+ ["get", "nature"],
+ [
+ "Hôtel de département",
+ "Hôtel de région",
+ "Préfecture",
+ "Préfecture de région",
+ "Sous-préfecture"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#525252",
+ "fill-opacity": 0.3,
+ "fill-outline-color": "#3B3B3B"
+ }
+ },
+ {
+ "id": "construction linéaire - mur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "MUR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#919191", "line-width": 0.3}
+ },
+ {
+ "id": "construction linéaire - autre",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FORTIF_LIN", "MUR_SOUTENEMENT", "RUINE_LIN"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#8C8C8C", "line-width": 0.5}
+ },
+ {
+ "id": "construction hydrographique linéaire - Barrage",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "BARRAGE_LIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#8C8C8C",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.5, 17, 5]
+ }
+ },
+ {
+ "id": "construction hydrographique linéaire - Quai",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "minzoom": 12,
+ "filter": ["match", ["get", "symbo"], ["DIGUE", "QUAI"], true, false],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#878787",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 14, 1, 17, 2.5]
+ }
+ },
+ {
+ "id": "construction hydrographique linéaire - Pecherie",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "PECHERIE_LIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#585858",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 14, 1, 17, 2.5]
+ }
+ },
+ {
+ "id": "Chemin a niveau - piste cyclable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "PISTE_CYCLABLE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#808080",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.1,
+ 15,
+ 1.7,
+ 16,
+ 2,
+ 17,
+ 3.5,
+ 18,
+ 6
+ ],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "Chemin a niveau - filet exterieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7F7F7F",
+ 18,
+ "#CDCDCD"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.75,
+ 15,
+ 3,
+ 16,
+ 4.2,
+ 17,
+ 9.5
+ ]
+ }
+ },
+ {
+ "id": "Chemin a niveau - filet interieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.9,
+ 16,
+ 2.7,
+ 17,
+ 5.8
+ ],
+ "line-dasharray": [1, 0.2]
+ }
+ },
+ {
+ "id": "Chemin a niveau - Rue pietonne",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "RUE_PIETONNE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7F7F7F",
+ 18,
+ "#EEEEEE"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 5
+ ],
+ "line-dasharray": [1, 3]
+ }
+ },
+ {
+ "id": "Chemin a niveau - sentier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "SENTIER"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7F7F7F",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 6
+ ],
+ "line-dasharray": [4, 3]
+ }
+ },
+ {
+ "id": "Chemin a niveau - chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "CHEMIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7F7F7F",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#8C8C8C",
+ 17,
+ "#919191"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5,
+ 18,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1",
+ "BRET_AUTO_LIBRE_2",
+ "BRET_AUTO_LIBRE_3",
+ "BRET_AUTO_PEAGE_1",
+ "BRET_AUTO_PEAGE_2",
+ "BRET_AUTO_PEAGE_3"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#727272",
+ 17,
+ "#9E9E9E",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 2.5,
+ 14,
+ 3.7,
+ 15,
+ 6.8,
+ 16,
+ 8.4,
+ 17,
+ 14
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#9B9B9B",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE", "NON_CLASSEE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#9B9B9B",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 7,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BRET_LOCALE", "LOCALE_1", "LOCALE_2", "LOCALE_3", "LOCALE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#919191",
+ 13,
+ "#B9B9B9",
+ 17,
+ "#B9B9B9",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE",
+ "REGIONALE_1",
+ "REGIONALE_2",
+ "REGIONALE_3",
+ "REGIONALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#878787",
+ 10,
+ "#B9B9B9",
+ 17,
+ "#B9B9B9",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE",
+ "PRINCIPALE_1",
+ "PRINCIPALE_2",
+ "PRINCIPALE_3",
+ "PRINCIPALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#AFAFAF",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE", "AUTOROU_PEAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#727272",
+ 17,
+ "#9E9E9E",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1",
+ "BRET_AUTO_LIBRE_2",
+ "BRET_AUTO_LIBRE_3",
+ "BRET_AUTO_PEAGE_1",
+ "BRET_AUTO_PEAGE_2",
+ "BRET_AUTO_PEAGE_3"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#9E9E9E",
+ 17,
+ "#BCBCBC"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.5,
+ 14,
+ 2.6,
+ 15,
+ 5.2,
+ 16,
+ 6.7,
+ 17,
+ 10.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FAFAFA",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE", "NON_CLASSEE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BRET_LOCALE", "LOCALE_1", "LOCALE_2", "LOCALE_3", "LOCALE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ "#C2C2C2",
+ 7,
+ "#FFFFFF",
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F3F3F3",
+ 17,
+ "#F8F8F8"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.3,
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.1,
+ 17,
+ 13.1
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 11,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F3F3F3",
+ 17,
+ "#F8F8F8",
+ 18,
+ "#F2F2F2"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE",
+ "REGIONALE_1",
+ "REGIONALE_2",
+ "REGIONALE_3",
+ "REGIONALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ "#B9B9B9",
+ 7,
+ "#FFFFFF",
+ 9,
+ "#FFFFFF",
+ 10,
+ "#EFEFEF",
+ 17,
+ "#F7F7F7"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 1.1,
+ 6,
+ 1.4,
+ 9,
+ 1.5,
+ 14,
+ 3.2,
+ 15,
+ 5.8,
+ 16,
+ 8.3,
+ 17,
+ 16.2
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#EFEFEF",
+ 17,
+ "#F7F7F7",
+ 18,
+ "#F2F2F2"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.4,
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE",
+ "PRINCIPALE_1",
+ "PRINCIPALE_2",
+ "PRINCIPALE_3",
+ "PRINCIPALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ "#ACACAC",
+ 7,
+ "#CFCFCF",
+ 9,
+ "#CFCFCF",
+ 17,
+ "#E4E4E4"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.6,
+ 6,
+ 1.8,
+ 9,
+ 2.1,
+ 14,
+ 4.4,
+ 15,
+ 7.3,
+ 16,
+ 10,
+ 17,
+ 18.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#CFCFCF",
+ 17,
+ "#E4E4E4",
+ 18,
+ "#F2F2F2"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE", "AUTOROU_PEAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#9E9E9E",
+ 17,
+ "#BCBCBC"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 2.7,
+ 14,
+ 5.8,
+ 15,
+ 9,
+ 16,
+ 12,
+ 17,
+ 20.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - axe central - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE", "AUTOROU_PEAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#9E9E9E",
+ 17,
+ "#BCBCBC",
+ 18,
+ "#F2F2F2"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - axe centrale - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#858585",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "VF_1",
+ "VF_2",
+ "VF_3",
+ "VF_4",
+ "VF_ELEC_1",
+ "VF_ELEC_2",
+ "VF_ELEC_3",
+ "VF_ELEC_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.8, 17, 2.5]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie normale trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "VF_1",
+ "VF_2",
+ "VF_3",
+ "VF_4",
+ "VF_ELEC_1",
+ "VF_ELEC_2",
+ "VF_ELEC_3",
+ "VF_ELEC_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie etroite",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE", "VF_ETROITE_1", "VF_ETROITE_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie etroite trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE", "VF_ETROITE_1", "VF_ETROITE_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie service",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_NON_EXPLOITEE", "VF_SERVICE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [5, 2, 1, 2]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie en construction trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre a niveau - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE", "TRANSPORT_URBAIN"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre a niveau - 2 trait perpendic - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE", "TRANSPORT_URBAIN"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 17],
+ "line-dasharray": [0.1, 0.2, 0.1, 10]
+ }
+ },
+ {
+ "id": "liaison routiere - Bac Liaison Maritime",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "minzoom": 8,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BAC_AUTO", "BAC_LIAISON_MARITIME", "LIAISON_MARITIME"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#8B8B8B",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 8, 1, 13, 2.5]
+ }
+ },
+ {
+ "id": "liaison routiere - Gue route",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "filter": ["==", ["get", "symbo"], "GUE_ROUTE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ "#C3C3C3",
+ 17,
+ "#8C8C8C",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "liaison routiere - Gue chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "GUE_CHEMIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ "#C3C3C3",
+ 17,
+ "#8C8C8C"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.6,
+ 15,
+ 2.9,
+ 16,
+ 4.4,
+ 17,
+ 6.5
+ ]
+ }
+ },
+ {
+ "id": "liaison routiere - filet extérieur - Pont passerelle",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["PONT_LIN", "PONT_MOBILE_LIN", "PONT_PASSERELLE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#CDCDCD",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.2,
+ 15,
+ 3.8,
+ 16,
+ 5.4,
+ 17,
+ 11.8
+ ]
+ }
+ },
+ {
+ "id": "liaison routiere - filet intérieur - Pont passerelle",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["PONT_LIN", "PONT_MOBILE_LIN", "PONT_PASSERELLE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 0.7,
+ 15,
+ 1.1,
+ 16,
+ 1.7,
+ 17,
+ 3.8
+ ]
+ }
+ },
+ {
+ "id": "Routier surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "SURF_ROUT_LOC",
+ "SURF_ROUT_NON_CLA",
+ "SURF_ROUT_PRINC",
+ "SURF_ROUT_REG"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-outline-color": "#000000"}
+ },
+ {
+ "id": "Routier surfacique - Dalle de protection",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "DALLE_DE_PROTECTION"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-opacity": 0.5,
+ "fill-color": "#FFFFFF",
+ "fill-outline-color": "#000000"
+ }
+ },
+ {
+ "id": "Routier surfacique - Escalier surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-opacity": 0.8,
+ "fill-color": "#FFFFFF",
+ "fill-outline-color": "#8C8C8C"
+ }
+ },
+ {
+ "id": "Routier surfacique - Péage surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "SURF_PEAGE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#E1E1E1", "fill-outline-color": "#AFAFAF"}
+ },
+ {
+ "id": "bati transport surfacique - bati peage",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "BATI_PEAGE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#E1E1E1", "fill-outline-color": "#858585"}
+ },
+ {
+ "id": "réseau hydro - cours d'eau superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["COURS_D_EAU_MOY_SUP", "COURS_D_EAU_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.5, 17, 6.5]
+ }
+ },
+ {
+ "id": "réseau hydro - canal superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": ["==", ["get", "symbo"], "CANAL_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.4, 17, 5.9]
+ }
+ },
+ {
+ "id": "réseau hydro - filet interieur - aqueduc superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.4,
+ 16,
+ 3.5,
+ 17,
+ 5.9
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - carre - aqueduc superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CFCFCF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 3.5,
+ 16,
+ 8.7,
+ 17,
+ 14.7
+ ],
+ "line-dasharray": [1, 5]
+ }
+ },
+ {
+ "id": "Chemin superieur - piste cyclable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "PISTE_CYCLABLE_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#808080",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.1,
+ 15,
+ 1.7,
+ 16,
+ 2,
+ 17,
+ 3.5,
+ 18,
+ 6
+ ],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "Chemin superieur - filet exterieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7F7F7F",
+ 18,
+ "#CDCDCD"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.75,
+ 15,
+ 3,
+ 16,
+ 4.2,
+ 17,
+ 9.5
+ ]
+ }
+ },
+ {
+ "id": "Chemin superieur - filet interieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.9,
+ 16,
+ 2.7,
+ 17,
+ 5.8
+ ],
+ "line-dasharray": [1, 0.2]
+ }
+ },
+ {
+ "id": "Chemin superieur - Rue pietonne",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "RUE_PIETONNE_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7F7F7F",
+ 18,
+ "#F0F0F0"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 5
+ ],
+ "line-dasharray": [1, 3]
+ }
+ },
+ {
+ "id": "Chemin superieur - sentier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "SENTIER_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7F7F7F",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 6
+ ],
+ "line-dasharray": [4, 3]
+ }
+ },
+ {
+ "id": "Chemin superieur - chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "CHEMIN_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#7F7F7F",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#8C8C8C",
+ 17,
+ "#919191"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SUP",
+ "BRET_AUTO_LIBRE_2_SUP",
+ "BRET_AUTO_LIBRE_3_SUP",
+ "BRET_AUTO_PEAGE_1_SUP",
+ "BRET_AUTO_PEAGE_2_SUP",
+ "BRET_AUTO_PEAGE_3_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#727272",
+ 17,
+ "#9E9E9E",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 2.5,
+ 14,
+ 3.7,
+ 15,
+ 6.8,
+ 16,
+ 8.4,
+ 17,
+ 14
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#9B9B9B",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SUP", "NON_CLASSEE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#9B9B9B",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SUP",
+ "LOCALE_1_SUP",
+ "LOCALE_2_SUP",
+ "LOCALE_3_SUP",
+ "LOCALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#919191",
+ 13,
+ "#B9B9B9",
+ 17,
+ "#B9B9B9",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SUP",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#878787",
+ 10,
+ "#B9B9B9",
+ 17,
+ "#B9B9B9",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SUP",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#AFAFAF",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SUP", "AUTOROU_PEAGE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#727272",
+ 17,
+ "#9E9E9E",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#CDCDCD",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5,
+ 18,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SUP",
+ "BRET_AUTO_LIBRE_2_SUP",
+ "BRET_AUTO_LIBRE_3_SUP",
+ "BRET_AUTO_PEAGE_1_SUP",
+ "BRET_AUTO_PEAGE_2_SUP",
+ "BRET_AUTO_PEAGE_3_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#9E9E9E",
+ 17,
+ "#BCBCBC"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.5,
+ 14,
+ 2.6,
+ 15,
+ 5.2,
+ 16,
+ 6.7,
+ 17,
+ 10.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FAFAFA",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SUP", "NON_CLASSEE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SUP",
+ "LOCALE_1_SUP",
+ "LOCALE_2_SUP",
+ "LOCALE_3_SUP",
+ "LOCALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F3F3F3",
+ 17,
+ "#F8F8F8"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.3,
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.1,
+ 17,
+ 13.1
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#F3F3F3",
+ 17,
+ "#F8F8F8"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SUP",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#EFEFEF",
+ 17,
+ "#F7F7F7"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.4,
+ 9,
+ 1.5,
+ 14,
+ 3.2,
+ 15,
+ 5.8,
+ 16,
+ 8.3,
+ 17,
+ 16.2
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#EFEFEF",
+ 17,
+ "#F7F7F7"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SUP",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#CFCFCF",
+ 17,
+ "#E4E4E4"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.1,
+ 14,
+ 4.4,
+ 15,
+ 7.3,
+ 16,
+ 10,
+ 17,
+ 18.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#CFCFCF",
+ 17,
+ "#E4E4E4"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SUP", "AUTOROU_PEAGE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#9E9E9E",
+ 17,
+ "#BCBCBC"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 2.7,
+ 14,
+ 5.8,
+ 15,
+ 9,
+ 16,
+ 12,
+ 17,
+ 20.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - axe central - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SUP", "AUTOROU_PEAGE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#9E9E9E",
+ 17,
+ "#BCBCBC"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - axe centrale - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#858585",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SUP", "VF_2_SUP", "VF_ELEC_1_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.8, 17, 2.5]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie normale trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SUP", "VF_2_SUP", "VF_ELEC_1_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie etroite",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SUP", "VF_ETROITE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie etroite trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SUP", "VF_ETROITE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie service",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_NON_EXPLOITEE_SUP", "VF_SERVICE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [5, 2, 1, 2]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie en construction trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre superieur - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SUP", "TRANSPORT_URBAIN_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre superieur - 2 trait perpendic - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SUP", "TRANSPORT_URBAIN_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#7D7D7D",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 17],
+ "line-dasharray": [0.1, 0.2, 0.1, 10]
+ }
+ },
+ {
+ "id": "Limite - cloture",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "filter": ["==", ["get", "symbo"], "CLOTURE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#000000",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.6, 17, 1],
+ "line-dasharray": [1.5, 4]
+ }
+ },
+ {
+ "id": "Limite - layon",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LAYON"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A5A5A5",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ],
+ "line-dasharray": [4, 7]
+ }
+ },
+ {
+ "id": "Zone Règlementee - Enceinte militaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LIM_CHAMP_TIR",
+ "LIM_ENCEINTE_MILI",
+ "LIM_ENCEINTE_MILITAIRE",
+ "LIM_ZONE_REGLEMENTEE"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(160, 160, 160, 0.8)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.7, 17, 3.1],
+ "line-dasharray": [4, 1, 2, 5]
+ }
+ },
+ {
+ "id": "limite zone naturelle",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LIM_RESERVE_NATURELLE",
+ "LIM_ZONE_NATURELLE",
+ "LIM_ZONE_NATURELLE_ILE"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#DADADA",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 1]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 10",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "maxzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#848484",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 1]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 11",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 10,
+ "maxzoom": 11,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#848484",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 12",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 11,
+ "maxzoom": 12,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#848484",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 3]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 13",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 12,
+ "maxzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#848484",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 4]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 14",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(130, 130, 130, 0.7)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 5]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc marin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LIM_PARC_NATUREL_MARIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#707070",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 1]
+ }
+ },
+ {
+ "id": "parcellaire - parcelle bordure",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "parcellaire_parcelle",
+ "filter": ["==", ["get", "symbo"], "PARCELLE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#6D6D6D", "line-width": 1}
+ },
+ {
+ "id": "parcellaire - section",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "parcellaire_section",
+ "filter": ["==", ["get", "symbo"], "SECTION"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5A5A5A",
+ "line-width": 1.9,
+ "line-dasharray": [2, 4, 2]
+ }
+ },
+ {
+ "id": "toponyme - parcellaire - section",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_parcellaire_section",
+ "filter": ["==", ["get", "txt_typo"], "SECTION"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-offset": [0, 0],
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {"text-color": "#5A5A5A"}
+ },
+ {
+ "id": "toponyme - parcellaire - parcelle",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_parcellaire_parcelle",
+ "filter": ["==", ["get", "txt_typo"], "PARCELLE"],
+ "layout": {
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Bold"]
+ },
+ "paint": {
+ "text-color": "#6D6D6D",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - parcellaire - adresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_parcellaire_adresse_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ADRESSE"],
+ "layout": {
+ "symbol-placement": "point",
+ "text-field": ["concat", "{numero}", "{indice_de_repetition}"],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Bold"]
+ },
+ "paint": {
+ "text-color": "#5F5F5F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "limite admin - limite de commune",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_ARRONDISSEMENT", "LIM_CANTON", "LIM_COMMUNE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(133, 133, 133, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 3, 17, 5.5],
+ "line-dasharray": [4, 2, 1, 1, 1, 1, 1, 2]
+ }
+ },
+ {
+ "id": "limite admin - limite de département bandeau",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 8,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "symbo"], "LIM_DEPARTEMENT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(186, 186, 186, 0.4)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 9, 4.1, 12, 6]
+ }
+ },
+ {
+ "id": "limite admin - limite de département tiret",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LIM_DEPARTEMENT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(133, 133, 133, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 3, 17, 5.5],
+ "line-dasharray": [4, 2, 1, 1, 1, 2]
+ }
+ },
+ {
+ "id": "limite admin - limite de région bandeau",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 7,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "symbo"], "LIM_REGION"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(186, 186, 186, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 9, 4.5, 12, 6.7]
+ }
+ },
+ {
+ "id": "limite admin - limite de région tiret",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LIM_REGION"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(133, 133, 133, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 3, 17, 5.5],
+ "line-dasharray": [4, 2, 1, 2]
+ }
+ },
+ {
+ "id": "limite etat 1",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 2,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_ETAT", "LIM_ETAT_ETRANGER"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(186, 186, 186, 0.6)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 2,
+ 2,
+ 3,
+ 3.5,
+ 9,
+ 5,
+ 14,
+ 13,
+ 15,
+ 20,
+ 16,
+ 24,
+ 17,
+ 42
+ ]
+ }
+ },
+ {
+ "id": "limite etat 2",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 7,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_ETAT", "LIM_ETAT_ETRANGER"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A5A5A5",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.5,
+ 14,
+ 3.5,
+ 15,
+ 5.5,
+ 16,
+ 6.5,
+ 17,
+ 11
+ ],
+ "line-dasharray": [4, 2]
+ }
+ },
+ {
+ "id": "limite cote",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 7,
+ "maxzoom": 10,
+ "filter": ["match", ["get", "symbo"], ["LIM_COTE"], true, false],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#A0A0A0", "line-width": 1}
+ },
+ {
+ "id": "ligne electrique",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "LIGNE_ELECTRIQUE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#858585",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1, 17, 2]
+ }
+ },
+ {
+ "id": "autre construction linéaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CABLE",
+ "CONDUITE_MATIERES_P",
+ "HYDROCARBURES",
+ "PISTE_AERO_LIN",
+ "PISTE_BOBSLEIGH",
+ "PISTE_LUGE",
+ "REMONTEE_MEC",
+ "SPORT_MONTAGNE_LIN"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#858585", "line-width": 1}
+ },
+ {
+ "id": "autre construction linéaire - trait perpend cable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "CABLE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#858585",
+ "line-width": 5,
+ "line-dasharray": [0.5, 10]
+ }
+ },
+ {
+ "id": "autre construction linéaire - trait perpend 1 remont",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "REMONTEE_MEC"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#858585",
+ "line-width": 6,
+ "line-dasharray": [1, 10]
+ }
+ },
+ {
+ "id": "autre construction linéaire - trait perpend 2 remont",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "REMONTEE_MEC"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C3C3C3",
+ "line-width": 6,
+ "line-dasharray": [0.3, 0.4, 0.3, 10]
+ }
+ },
+ {
+ "id": "autre construction linéaire - trait perpend carbur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CONDUITE_MATIERES_P", "HYDROCARBURES"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#858585",
+ "line-width": 5,
+ "line-dasharray": [1, 10]
+ }
+ },
+ {
+ "id": "routier ponctuel - peage ponctuel",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "routier_ponc",
+ "minzoom": 8,
+ "filter": ["==", ["get", "symbo"], "PEAGE_PONC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 9, 3.5, 12, 6.5],
+ "circle-color": "#AFAFAF",
+ "circle-stroke-width": 1,
+ "circle-stroke-color": "#858585"
+ }
+ },
+ {
+ "id": "routier ponctuel - barriere",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "routier_ponc",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "BARRIERE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Barriere",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.25,
+ 16,
+ 0.45,
+ 17,
+ 0.7
+ ],
+ "icon-allow-overlap": true,
+ "icon-rotate": ["get", "rotation"]
+ },
+ "paint": {"icon-color": "#9B9B9B"}
+ },
+ {
+ "id": "hydro ponctuel",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "hydro_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "AUTRE_HYDRO_PONC",
+ "CASCADE",
+ "FONTAINE",
+ "PERTE",
+ "POINT_D_EAU",
+ "RESURGENCE",
+ "SOURCE",
+ "SOURCE_CAPTEE"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 7],
+ "circle-color": "#FFFFFF",
+ "circle-opacity": 1,
+ "circle-stroke-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2,
+ 17,
+ 5
+ ],
+ "circle-stroke-color": "#A5A5A5"
+ }
+ },
+ {
+ "id": "point coté",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_ponc",
+ "minzoom": 11,
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["POINT_COTE", "POINT_COTE_RESEAU", "POINT_COTE_TOPO", "POINT_RBF"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.1,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.2, 0.4],
+ "text-padding": 2,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#555555"}
+ },
+ {
+ "id": "bati ponctuel : Hopital",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "HOPITAL_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Hopital",
+ "icon-size": 0.33
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel hydrographique",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CITERNE",
+ "LAVOIR",
+ "STATION_DE_POMPAGE",
+ "STATION_EPURATION",
+ "USINE_ELEVATRICE",
+ "USINE_PRODUCTION_EAU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Pompage",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.2, 17, 0.6],
+ "icon-allow-overlap": true
+ },
+ "paint": {"icon-color": "#A5A5A5"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Puits-Abreuvoir",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["ABREUVOIR", "PUITS"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 7],
+ "circle-color": "#FFFFFF",
+ "circle-opacity": 1,
+ "circle-stroke-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2,
+ 17,
+ 5
+ ],
+ "circle-stroke-color": "#A5A5A5"
+ }
+ },
+ {
+ "id": "bati ponctuel hydrographique - Phare",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "PHARE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Phare",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 17, 1.3]
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Amer-Feu",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AMER", "FEU", "FEU_PONC", "TOURELLE_LUMINEUSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Feu",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 17, 1.3]
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Balise",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BALISE", "TOURELLE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Balise",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 17, 1.3]
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Ecluse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "ECLUSE_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Ecluse",
+ "icon-size": 0.2
+ },
+ "paint": {"icon-color": "#A5A5A5"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Barrage",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 14,
+ "filter": ["==", ["get", "symbo"], "BARRAGE_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Barrage",
+ "icon-size": 0.25
+ },
+ "paint": {"icon-color": "#A5A5A5"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Chateau d'eau",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "CHATEAU_EAU_PONC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 8],
+ "circle-color": "#A5A5A5"
+ }
+ },
+ {
+ "id": "bati ponctuel hydrographique - Réservoir d'eau",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "RESERVOIR_EAU_PONC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 8],
+ "circle-color": "#CFCFCF",
+ "circle-opacity": 1,
+ "circle-stroke-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 17,
+ 2.5
+ ],
+ "circle-stroke-color": "#A5A5A5"
+ }
+ },
+ {
+ "id": "bati ponctuel infrastructure - Constr spé",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "ANTENNE",
+ "CHEMINEE",
+ "CHEVALEMENT",
+ "CONSTR_INDIF_PONC",
+ "CONSTR_SPE_TECHNIQUE",
+ "PUITS_GAZ",
+ "PUITS_PETROLE",
+ "PYLONE_METEO",
+ "TORCHERE",
+ "TOUR_GUET",
+ "TOUR_HERTZIENNE"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "ConstrSpeciale",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.22, 17, 0.5]
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - Silo",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "SILO_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Silo",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.22, 17, 0.5]
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - Eolienne",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "EOLIENNE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Eolienne",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 17,
+ 1,
+ 18,
+ 0.8
+ ]
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - Reservoir",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "RESERVOIR_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Reservoir",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.26, 17, 0.5]
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - pylone électrique",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "PYLONE_ELEC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 13, 1, 17, 2],
+ "circle-color": "#000000"
+ }
+ },
+ {
+ "id": "bati ponctuel montagne - Abri",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "ABRI"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Abri",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 15,
+ 0.6,
+ 17,
+ 0.9
+ ]
+ },
+ "paint": {"icon-color": "#4F4F4F"}
+ },
+ {
+ "id": "bati ponctuel montagne - Refuge Garde",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "REFUGE_GARDE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Refugegard",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 15,
+ 0.6,
+ 17,
+ 0.9
+ ]
+ },
+ "paint": {"icon-color": "#4F4F4F"}
+ },
+ {
+ "id": "bati ponctuel montagne - Refuge Non Garde",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "REFUGE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Refugenongard",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 15,
+ 0.6,
+ 17,
+ 0.9
+ ]
+ },
+ "paint": {"icon-color": "#4F4F4F"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aeroport FXX",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AEROPORT_PONC"],
+ ["==", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aeroport",
+ "icon-size": 0.5
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aerodrome FXX",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AERODROME_PONC"],
+ ["==", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aerodrome",
+ "icon-size": 0.4
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aeroport DOM",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AEROPORT_PONC"],
+ ["!=", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aeroport",
+ "icon-size": 0.5
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aerodrome DOM",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AERODROME_PONC"],
+ ["!=", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aerodrome",
+ "icon-size": 0.4
+ },
+ "paint": {"icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati ponctuel transport ferroviaire",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "GARE_VOYAGEURS"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Gare",
+ "icon-size": 0.33
+ },
+ "paint": {"icon-color": "#7D7D7D"}
+ },
+ {
+ "id": "toponyme - bornes postales haute - chemins",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CHEMIN",
+ "CHEMIN_SOU",
+ "CHEMIN_SUP",
+ "ESCALIER",
+ "ESCALIER_SUP",
+ "PISTE_CYCLABLE",
+ "PISTE_CYCLABLE_SOU",
+ "PISTE_CYCLABLE_SUP",
+ "RUE_PIETONNE",
+ "RUE_PIETONNE_SOU",
+ "RUE_PIETONNE_SUP",
+ "SENTIER",
+ "SENTIER_SOU",
+ "SENTIER_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - non revetue, non classee",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "NON_CLASSEE",
+ "NON_CLASSEE_4",
+ "NON_CLASSEE_4_SUP",
+ "NON_CLASSEE_RESTREINT",
+ "NON_CLASSEE_RESTREINT_SUP",
+ "NON_CLASSEE_SOU",
+ "NON_CLASSEE_SUP",
+ "NON_REVETUE_CARRO",
+ "NON_REVETUE_CARRO_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.3],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - locales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LOCALE_1",
+ "LOCALE_1_SOU",
+ "LOCALE_1_SUP",
+ "LOCALE_2",
+ "LOCALE_2_SOU",
+ "LOCALE_2_SUP",
+ "LOCALE_3",
+ "LOCALE_3_SOU",
+ "LOCALE_3_SUP",
+ "LOCALE_4",
+ "LOCALE_4_SOU",
+ "LOCALE_4_SUP",
+ "LOCALE_CONSTR",
+ "LOCALE_CONSTR_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.4],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - regionales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "REGIONALE_1",
+ "REGIONALE_1_SOU",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2",
+ "REGIONALE_2_SOU",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3",
+ "REGIONALE_3_SOU",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4",
+ "REGIONALE_4_SUP",
+ "REGIONALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.5],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - principales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "PRINCIPALE_1",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4",
+ "PRINCIPALE_4_SOU",
+ "PRINCIPALE_4_SUP",
+ "PRINCIPALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.6],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - chemins",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CHEMIN",
+ "CHEMIN_SOU",
+ "CHEMIN_SUP",
+ "ESCALIER",
+ "ESCALIER_SUP",
+ "PISTE_CYCLABLE",
+ "PISTE_CYCLABLE_SOU",
+ "PISTE_CYCLABLE_SUP",
+ "RUE_PIETONNE",
+ "RUE_PIETONNE_SOU",
+ "RUE_PIETONNE_SUP",
+ "SENTIER",
+ "SENTIER_SOU",
+ "SENTIER_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - non revetue, non classee",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "NON_CLASSEE",
+ "NON_CLASSEE_4",
+ "NON_CLASSEE_4_SUP",
+ "NON_CLASSEE_RESTREINT",
+ "NON_CLASSEE_RESTREINT_SUP",
+ "NON_CLASSEE_SOU",
+ "NON_CLASSEE_SUP",
+ "NON_REVETUE_CARRO",
+ "NON_REVETUE_CARRO_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.3],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - locales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LOCALE_1",
+ "LOCALE_1_SOU",
+ "LOCALE_1_SUP",
+ "LOCALE_2",
+ "LOCALE_2_SOU",
+ "LOCALE_2_SUP",
+ "LOCALE_3",
+ "LOCALE_3_SOU",
+ "LOCALE_3_SUP",
+ "LOCALE_4",
+ "LOCALE_4_SOU",
+ "LOCALE_4_SUP",
+ "LOCALE_CONSTR",
+ "LOCALE_CONSTR_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.4],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - regionales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "REGIONALE_1",
+ "REGIONALE_1_SOU",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2",
+ "REGIONALE_2_SOU",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3",
+ "REGIONALE_3_SOU",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4",
+ "REGIONALE_4_SUP",
+ "REGIONALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.5],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - principales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "PRINCIPALE_1",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4",
+ "PRINCIPALE_4_SOU",
+ "PRINCIPALE_4_SUP",
+ "PRINCIPALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.6],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#6E6E6E",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - courbe rocher maitresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_COURBE_ROCHER"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 30,
+ "text-rotate": ["get", "rotation"],
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#383838",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - courbe glacier maitresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_COURBE_GLACIER"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 30,
+ "text-rotate": ["get", "rotation"],
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#989898",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - courbe maitresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_COURBE"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 30,
+ "text-rotate": ["get", "rotation"],
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#535353",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - liaison maritime",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_liaison_lin",
+ "minzoom": 8,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "LIAISON_MARITIME"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#8B8B8B",
+ "text-halo-width": 5,
+ "text-halo-color": "#CFCFCF"
+ }
+ },
+ {
+ "id": "toponyme bati station de métro + bati ponctuel metro",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_E_1"],
+ ["==", ["get", "symbo"], "STATION_METRO"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-offset": [0.3, -0.25],
+ "text-padding": 3,
+ "text-anchor": "bottom-left",
+ "text-font": ["Source Sans Pro"],
+ "icon-image": "Metro",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 15, 0.33, 17, 0.6]
+ },
+ "paint": {"text-color": "#414141", "icon-color": "#8C8C8C"}
+ },
+ {
+ "id": "toponyme ferre lineaire",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ferre_lin",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["FER_NOM", "FER_OUVRAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-anchor": "center",
+ "text-offset": [0, -1],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-width": 1,
+ "text-halo-color": "rgba(255, 255, 255, 1)"
+ }
+ },
+ {
+ "id": "toponyme station epuration, de pompage, usine de production eau",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 14,
+ "filter": ["==", ["get", "txt_typo"], "station"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "designation"]],
+ "text-anchor": "left",
+ "text-offset": [0.8, 0],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#787878"}
+ },
+ {
+ "id": "toponyme bati ponc gare",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 15,
+ "filter": ["==", ["get", "txt_typo"], "gore"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "designation"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#000000"}
+ },
+ {
+ "id": "toponyme bati ponc barrage",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "filter": ["==", ["get", "txt_typo"], "BARRAGE_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "left",
+ "text-offset": [0.8, 0],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#787878"}
+ },
+ {
+ "id": "toponyme bati ponc phare - niveau 13",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "maxzoom": 13,
+ "filter": ["==", ["get", "txt_typo"], "PHARE"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "right",
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#3B3B3B"}
+ },
+ {
+ "id": "toponyme bati ponc phare - niveau 14à19",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "PHARE"],
+ [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_C_6", "TYPO_C_7", "TYPO_C_8", "TYPO_E_GE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "right",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 18, 18],
+ "text-allow-overlap": false,
+ "text-offset": [-2, 0],
+ "text-padding": 3,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#3B3B3B"}
+ },
+ {
+ "id": "toponyme bati ponc autre",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_ACTIVITE", "BAT_FORTIF", "BAT_VILLAGE_DETRUIT"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#3B3B3B"}
+ },
+ {
+ "id": "toponyme bati ponc aerogare",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 14,
+ "maxzoom": 17,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_E_GE"],
+ ["==", ["get", "symbo"], "AEROGARE"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 9, 16, 11],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#121212",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme bati ponc aeroport 12",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 11,
+ "maxzoom": 12,
+ "filter": ["==", ["get", "txt_typo"], "AEROPORT_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -1.3],
+ "text-size": 10.5,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#121212",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aeroport 13",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "txt_typo"], "AEROPORT_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -2],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#121212",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aeroport",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 13,
+ "maxzoom": 17,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_A_5"],
+ ["==", ["get", "symbo"], "AEROPORT"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 11, 16, 13],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#121212",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aerodrome 12",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 11,
+ "maxzoom": 12,
+ "filter": ["==", ["get", "txt_typo"], "AERODROME_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -1.3],
+ "text-size": 9.5,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#121212",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aerodrome 13",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "txt_typo"], "AERODROME_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -2],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#121212",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aerodrome",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 13,
+ "maxzoom": 17,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_A_7"],
+ ["==", ["get", "symbo"], "AERODROME"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 10, 16, 12],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#121212",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 5",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_D_10", "TYPO_D_9", "TYPO_E_1_cyan"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 11, 17, 14],
+ "text-allow-overlap": true,
+ "text-padding": 5,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc glacier",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_GLACIER_2"],
+ "layout": {
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 14,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - limite militaire ponc 3 et 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_MILI_3", "LIM_MILI_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-allow-overlap": false,
+ "text-padding": 2,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#1C1C1C",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - limite parc ponc 3 et 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_PARC_3", "LIM_PARC_4", "RESERVE_NATURELLE_PONC"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": false,
+ "text-padding": 2,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme numéro de route - départementale",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_numero_lin",
+ "minzoom": 11,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "Départementale"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10.5,
+ "text-allow-overlap": false,
+ "text-padding": 2,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Semibold"],
+ "text-rotation-alignment": "viewport"
+ },
+ "paint": {
+ "text-color": "#525252",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme numéro de route - nationale",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_numero_lin",
+ "minzoom": 7,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "Nationale"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-allow-overlap": false,
+ "text-padding": 0,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Regular"],
+ "icon-image": "Ecluse",
+ "icon-rotation-alignment": "viewport",
+ "text-rotation-alignment": "viewport",
+ "icon-text-fit": "both",
+ "icon-size": 0
+ },
+ "paint": {
+ "text-color": "#F5F5F5",
+ "icon-color": "#8C8C8C",
+ "text-halo-color": "rgba(85, 85, 85, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme numéro de route - autoroute",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_numero_lin",
+ "minzoom": 7,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "Autoroute"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 0,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Regular"],
+ "icon-image": "Ecluse",
+ "icon-rotation-alignment": "viewport",
+ "text-rotation-alignment": "viewport",
+ "icon-text-fit": "both",
+ "icon-size": 0
+ },
+ "paint": {
+ "text-color": "#F5F5F5",
+ "icon-color": "#8C8C8C",
+ "text-halo-color": "rgba(85, 85, 85, 0.5)",
+ "text-halo-width": 5
+ }
+ },
+ {
+ "id": "toponyme - odonyme abrégé",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_odonyme_lin",
+ "minzoom": 15,
+ "maxzoom": 17,
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "nom_gauche"]],
+ "text-size": 10,
+ "text-anchor": "center",
+ "text-max-angle": 30,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 1)"
+ }
+ },
+ {
+ "id": "toponyme - odonyme desabrégé",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_odonyme_lin",
+ "minzoom": 17,
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "nom_desabrege"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-max-angle": 30,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 1)"
+ }
+ },
+ {
+ "id": "toponyme - lieu dit non habité 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "LIEU-DIT_NON_HABITE"],
+ ["match", ["get", "txt_typo"], ["TYPO_B_10", "TYPO_B_11"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - bois",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ ["match", ["get", "txt_typo"], ["TYPO_F_10", "TYPO_F_11"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["ORO_GORGE_2", "ORO_SOMMET_3"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "GORGE",
+ "GROTTE",
+ "ORO_GORGE_2",
+ "ORO_SOMMET_3",
+ "TYPO_G_10",
+ "TYPO_G_9"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 11, 16, 16],
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_SURF_4",
+ "HYD_SURF_4_T",
+ "HYD_SURF_5",
+ "HYD_SURF_5_T",
+ "SOURCE",
+ "TYPO_D_8",
+ "lac - étang - bassin"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 13, 17, 16],
+ "text-allow-overlap": true,
+ "text-padding": 5,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme quartier ",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_QUARTIER", "BAT_QUARTIER_T"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA10",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "TYPO_A_10"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 11, 17, 13.5],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - lieu dit non habité",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "LIEU-DIT_NON_HABITE"],
+ [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_B_7", "TYPO_B_8", "TYPO_B_9"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - bois 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_F_7", "TYPO_F_8", "TYPO_F_9"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 16,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite hameau ",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 11,
+ "maxzoom": 13,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_HAMEAU", "BAT_HAMEAU_T"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.17,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite importance 5",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 9,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "BAT_ANCIENNE_COM",
+ "BAT_ANCIENNE_COM_T",
+ "BAT_CHEF_LIEU_COM",
+ "BAT_CHEF_LIEU_COM-T",
+ "BAT_CHEF_LIEU_COM_T",
+ "BAT_COMMUNE_5",
+ "BAT_COMMUNE_5_T",
+ "BAT_COMMUNE_ASSOCIEE",
+ "BAT_COMMUNE_ASSOCIEE_T",
+ "Commune très petite",
+ "commune 5"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.21,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11.5,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - ocs lineaire 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_lin",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_3"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 12, 12, 15],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-width": 1,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - lieu dit non habité 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "LIEU-DIT_NON_HABITE"],
+ ["match", ["get", "txt_typo"], ["TYPO_B_4", "TYPO_B_5"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - bois 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ ["match", ["get", "txt_typo"], ["TYPO_F_4", "TYPO_F_5"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 19,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - bois 0",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ ["match", ["get", "txt_typo"], ["TYPO_F_2", "TYPO_F_3"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 22,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - ocs ponc 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_3"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 12, 12, 15],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_2",
+ "ORO_CAP_3",
+ "ORO_COL_2",
+ "ORO_GORGE-1",
+ "ORO_GORGE_1",
+ "ORO_ILE_3",
+ "ORO_RELIEF_3",
+ "ORO_RELIEF_3_T",
+ "ORO_RELIEF_4",
+ "ORO_RELIEF_4_T",
+ "ORO_SOMMET_2"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_2",
+ "ORO_CAP_3",
+ "ORO_COL_2",
+ "ORO_GORGE-1",
+ "ORO_GORGE_1",
+ "ORO_ILE_3",
+ "ORO_RELIEF_3",
+ "ORO_RELIEF_3_T",
+ "ORO_RELIEF_4",
+ "ORO_RELIEF_4_T",
+ "ORO_SOMMET_2",
+ "TYPO_G_7",
+ "TYPO_G_8"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 16, 17],
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_LIN_3",
+ "HYD_LIN_4",
+ "HYD_LIN_5",
+ "HYD_SURF_3",
+ "HYD_SURF_3_T",
+ "HYD_SURF_4",
+ "HYD_SURF_4_T",
+ "HYD_SURF_5",
+ "HYD_SURF_5_T",
+ "TYPO_D_5",
+ "canal",
+ "petite rivière"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 12, 18, 19],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.7)"
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_D_10", "TYPO_D_6", "TYPO_D_8", "TYPO_D_9"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 10, 18, 16],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.7)"
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_SURF_3",
+ "TYPO_D_5",
+ "TYPO_D_6",
+ "TYPO_D_7",
+ "baie",
+ "grande baie",
+ "petit golfe"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 15, 17, 18],
+ "text-allow-overlap": true,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc zai zoom 16",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 15,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "zai"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "designation"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#000000"}
+ },
+ {
+ "id": "toponyme bati ponc zai zoom 17 et 18",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "zai"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#000000"}
+ },
+ {
+ "id": "toponyme localite importance 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 7,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE_4", "BAT_COMMUNE_4_T", "commune 4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.21,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA9",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "TYPO_A_9"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 11.5, 17, 14],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA8",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "TYPO_A_8"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 12, 17, 15],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - limite militaire ponc 1 et 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_MILI_1", "LIM_MILI_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 5,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#1C1C1C",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - limite parc marin",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "minzoom": 8,
+ "filter": ["==", ["get", "txt_typo"], "LIM_PARC_NATUREL_MARIN"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 10,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#707070",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - limite parc ponc 1 et 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_PARC_1", "LIM_PARC_2", "LIM_PARC_NATUREL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 10,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - ocs lineaire 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_lin",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_2"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 15, 12, 18],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - ocs ponc 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_2"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 15, 12, 18],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_1",
+ "ORO_ILE_2",
+ "ORO_RELIEF_2",
+ "ORO_RELIEF_2_T",
+ "ORO_SOMMET_1"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-padding": 10,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 9,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_1",
+ "ORO_COL_1",
+ "ORO_ILE_2",
+ "ORO_RELIEF_2",
+ "ORO_RELIEF_2_T",
+ "ORO_SOMMET_1",
+ "TYPO_G_4",
+ "TYPO_G_6",
+ "sommet ou col"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 13,
+ 10,
+ 15,
+ 13,
+ 15,
+ 16,
+ 19
+ ],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 2B",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["cap ou pointe", "île"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_LIN_2",
+ "HYD_SURF_2",
+ "HYD_SURF_2_T",
+ "TYPO_D_3",
+ "rivière moyenne"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 15, 18, 21],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "minzoom": 5,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_SURF_2",
+ "TYPO_D_2",
+ "TYPO_D_3",
+ "TYPO_D_4",
+ "golfe moyen",
+ "moyen"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 5,
+ 12,
+ 6,
+ 18,
+ 10,
+ 17,
+ 18,
+ 21
+ ],
+ "text-allow-overlap": false,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite importance 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 5,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE_3", "BAT_COMMUNE_3_T", "commune 3"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.21,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 5, 10, 6, 15],
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA7 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_7"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 13, 17, 16],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA6 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_6"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 15, 17, 18],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["ORO_ILE_1", "ORO_RELIEF_1", "ORO_RELIEF_1_T"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 20,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-padding": 5,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc monde",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 5,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "Basin",
+ "Depression",
+ "Desert",
+ "Geoarea",
+ "Gorge",
+ "Island",
+ "Island group",
+ "Isthmus",
+ "Lake",
+ "Lowland",
+ "Pen/cape",
+ "Plain",
+ "Plateau",
+ "Range/mtn",
+ "Tundra",
+ "Valley"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA4 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_4"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 17,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme - ocs lineaire 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_lin",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_1"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 18, 12, 22],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-padding": 1,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - ocs ponc 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_1"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 18, 12, 22],
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#5A5A5A",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_ILE_1",
+ "ORO_RELIEF_1",
+ "ORO_RELIEF_1_T",
+ "TYPO_G_1",
+ "TYPO_G_2",
+ "TYPO_G_3",
+ "grande île"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 21,
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#545454",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire glacier",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["ORO_GLACIER_1", "ORO_GLACIER_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD-LIN-1",
+ "HYD_LIN_1",
+ "HYD_SURF_1",
+ "HYD_SURF_1_T",
+ "TYPO_D_1",
+ "TYPO_D_2",
+ "grande rivière"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 18,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire ocean",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": ["==", ["get", "txt_typo"], "mer et océan"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 30,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-width": 4,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "minzoom": 4,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["HYD_SURF_1", "TYPO_D_1", "grand", "grand golfe", "mer"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 16,
+ 6,
+ 30,
+ 10,
+ 25
+ ],
+ "text-allow-overlap": true,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite importance 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 4,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE-2", "BAT_COMMUNE_2", "BAT_COMMUNE_2_T", "commune 2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.25,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 4, 10, 6, 17],
+ "text-allow-overlap": true,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.2],
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": [
+ "step",
+ ["zoom"],
+ ["literal", ["Source Sans Pro Regular"]],
+ 7,
+ ["literal", ["Source Sans Pro Bold"]],
+ 10,
+ ["literal", ["Source Sans Pro Regular"]]
+ ]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA3 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_3"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 19,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA2 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_2"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 21,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA7 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_7"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 13, 17, 16],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA6 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_6"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 15, 17, 18],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA1 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_1"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 23,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA4 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_4"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 17,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA3 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_3"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 19,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA2 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_2"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 21,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite importance 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 3,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE_1", "BAT_COMMUNE_1_T", "commune 1"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.3,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 3, 10, 6, 20],
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.25, -0.1],
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": [
+ "step",
+ ["zoom"],
+ ["literal", ["Source Sans Pro Regular"]],
+ 7,
+ ["literal", ["Source Sans Pro Bold"]],
+ 10,
+ ["literal", ["Source Sans Pro Regular"]]
+ ]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA1 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_1"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 23,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc ocean",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "minzoom": 1,
+ "filter": ["==", ["get", "txt_typo"], "ocean"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 1, 16, 6, 30],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme pays 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 4,
+ "maxzoom": 5,
+ "filter": ["==", ["get", "txt_typo"], "pays 3"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 9,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#7D7D7D",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme pays 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 2,
+ "maxzoom": 5,
+ "filter": ["==", ["get", "txt_typo"], "pays 2"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 2,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#7D7D7D",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme pays 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 2,
+ "maxzoom": 5,
+ "filter": ["==", ["get", "txt_typo"], "pays 1"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 2,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#7D7D7D",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme continent",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 3,
+ "filter": ["==", ["get", "txt_typo"], "continent"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Bold"]
+ },
+ "paint": {
+ "text-color": "#7D7D7D",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ }
+ ]
+}
diff --git a/samples-src/resources/data/mapbox/styles/planign/standard.json b/samples-src/resources/data/mapbox/styles/planign/standard.json
index e68e28d3e..ba79edcfc 100644
--- a/samples-src/resources/data/mapbox/styles/planign/standard.json
+++ b/samples-src/resources/data/mapbox/styles/planign/standard.json
@@ -1,8567 +1,10727 @@
-{
- "version": 8,
- "name": "PLAN IGN",
- "sprite": "https://wxs.ign.fr/static/vectorTiles/styles/PLAN.IGN/sprite/PlanIgn",
- "sources": {
- "plan_ign": {
- "type": "vector",
- "url": "https://wxs.ign.fr/choisirgeoportail/geoportail/tms/1.0.0/PLAN.IGN/metadata.json"
- }
- },
- "transition": {
- "duration": 300,
- "delay": 0
- },
- "layers": [
- {
- "id": "bckgrd",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "fond_opaque",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 0m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_0"],
- "paint": {
- "fill-color": "#D6E5BA",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 100m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_100"],
- "paint": {
- "fill-color": "#F7F2DA",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 200m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_200"],
- "paint": {
- "fill-color": "#EBDEBF",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 1000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_1000"],
- "paint": {
- "fill-color": "#DABE97",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 3000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_3000"],
- "paint": {
- "fill-color": "#B28773",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 4000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_4000"],
- "paint": {
- "fill-color": "#9E6A54",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - 5000m",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","HYPSO_5000"],
- "paint": {
- "fill-color": "#773A2B",
- "fill-opacity": 1
- }
- },
- {
- "id": "orographie : relief - glacier",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "oro_relief",
- "minzoom": 0,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","GLACIER"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-opacity": 0.7
- }
- },
- {
- "id": "ocs - vegetation - zone boiséee, foret fermee, peupleraie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ZONE_BOISEE",
- "ZONE_FORET_FERMEE_FEUIL",
- "ZONE_FORET_FERMEE_CONI",
- "ZONE_FORET_FERMEE_MIXTE",
- "ZONE_PEUPLERAIE"
- ],
- "paint": {
- "fill-color": "#DFE8D5",
- "fill-outline-color": "#DFE8D5"
- }
- },
- {
- "id": "ocs - vegetation - forêt ouverte",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ZONE_FORET_OUVERTE"
- ],
- "paint": {
- "fill-color": "#EDF2D9",
- "fill-outline-color": "#EDF2D9"
- }
- },
- {
- "id": "ocs - vegetation - lande ligneuse",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_LANDE_LIGNEUSE"],
- "paint": {
- "fill-color": "#F2EECD"
- }
- },
- {
- "id": "ocs - vegetation - vigne",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_VIGNE"],
- "paint": {
- "fill-color": "#FFEDD9"
- }
- },
- {
- "id": "ocs - vegetation - verger",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_VERGER"],
- "paint": {
- "fill-color": "#FAE2C5"
- }
- },
- {
- "id": "ocs - vegetation - canne à sucre, bananeraie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_CANNE_BANANE"],
- "paint": {
- "fill-color": "#FAEDFA"
- }
- },
- {
- "id": "hydro surfacique - Estran",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "hydro_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_D_ESTRAN"],
- "paint": {
- "fill-color": "#C3DDE9",
- "fill-outline-color": "#C3DDE9"
- }
- },
- {
- "id": "ocs - vegetation - mangrovre",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_MANGROVE"],
- "paint": {
- "fill-color": {"stops": [[9, "#85CCCB"], [10, "#90CCCB"]]}
- }
- },
- {
- "id": "ocs - vegetation - marais",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_MARAIS"],
- "paint": {
- "fill-pattern": "Marais"
- }
- },
- {
- "id": "ocs - vegetation - marais salant",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_vegetation_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_MARAIS_SALANT"],
- "paint": {
- "fill-pattern": "MaraisSalant"
- }
- },
- {
- "id": "ocs - Zone",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_ROCHEUSE"],
- "paint": {
- "fill-color": "#D0D0D0",
- "fill-opacity": 0.3
- }
- },
- {
- "id": "ocs - Zone sable sec",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_SABLE_SEC"],
- "paint": {
- "fill-pattern": "Sable"
- }
- },
- {
- "id": "ocs - Zone sable humide",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ZONE_SABLE_HUMIDE",
- "FOND_CUVETTE_HUMIDE"
- ],
- "paint": {
- "fill-pattern": "SableHumide"
- }
- },
- {
- "id": "ocs - Zone graviers galets secs",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","GRAVIERS_GALETS_SEC"],
- "paint": {
- "fill-pattern": "GravierSec"
- }
- },
- {
- "id": "ocs - Zone graviers galets humides",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","GRAVIERS_GALETS_HUM"],
- "paint": {
- "fill-pattern": "Gravier"
- }
- },
- {
- "id": "ocs - Zone rocher hydro",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_ROCHER_HYDRO"],
- "paint": {
- "fill-pattern": "RocherHydro"
- }
- },
- {
- "id": "ocs - Zone glacier",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "ocs_nature_sol_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_GLACIER"],
- "paint": {
- "fill-pattern": "Glacier",
- "fill-opacity": {"stops": [[10, 0.5], [12, 0.3]]}
- }
- },
- {
- "id": "zone batie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zone_surf",
- "minzoom": 7,
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_BATI"],
- "paint": {
- "fill-color": "#E8E2D1",
- "fill-opacity": {"stops": [[12, 1], [13, 0.9], [14, 0.5]]}
- }
- },
- {
- "id": "zone d'activité",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zone_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ZONE_INDUS_ACTI"],
- "paint": {
- "fill-color": "#D9D9D9"
- }
- },
- {
- "id": "oro - courbe et cuvette maitresse",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_MAITRESSE",
- "CUVETTE_MAITRESSE"
- ],
- "paint": {
- "line-color": "#D9C8A9",
- "line-width": {
- "stops": [[13, 1.7], [15, 2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_NORMALE",
- "CUVETTE_NORMALE"
- ],
- "paint": {
- "line-color": "#D9C8A9",
- "line-width": {
- "stops": [[13, 1], [15, 1.2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette intercalaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_INTERCALAIRE",
- "CUVETTE_INTERCAL",
- "CNV_SS_INTERCALAIRE"
- ],
- "paint": {
- "line-color": "#D9C8A9",
- "line-width": 0.7,
- "line-dasharray": [20,7]
- }
- },
- {
- "id": "oro - courbe et cuvette glacier maitresse",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_GLACIER_MAITRESSE",
- "CUV_GLACIER_MAITRESSE"
- ],
- "paint": {
- "line-color": "#A4BFD9",
- "line-width": {
- "stops": [[13, 1.7], [15, 2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette glacier normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_GLACIER_NORMALE",
- "CUV_GLACIER_NORMALE"
- ],
- "paint": {
- "line-color": "#A4BFD9",
- "line-width": {
- "stops": [[13, 1], [15, 1.2]]
- }
- }
- },
- {
- "id": "oro - courbe et cuvette glacier intercalaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_GLACIER_INTERCAL",
- "CUV_GLACIER_INTERCAL"
- ],
- "paint": {
- "line-color": "#A4BFD9",
- "line-width": {
- "stops": [[13, 0.7], [15, 0.9]]
- },
- "line-dasharray": [20,7]
- }
- },
- {
- "id": "oro - courbe et cuvette rocher maitresse",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_ROCHER_MAITRESSE",
- "CUV_ROCHER_MAITRESSE"
- ],
- "paint": {
- "line-color": "#AAAAAA",
- "line-width": 1.7
- }
- },
- {
- "id": "oro - courbe et cuvette rocher normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_ROCHER_NORMALE",
- "CUV_ROCHER_NORMALE"
- ],
- "paint": {
- "line-color": "#AAAAAA",
- "line-width": 1
- }
- },
- {
- "id": "oro - courbe et cuvette rocher intercalaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_ROCHER_INTERCAL",
- "CUV_ROCHER_INTERCAL"
- ],
- "paint": {
- "line-color": "#AAAAAA",
- "line-width": {
- "stops": [[13, 0.7], [15, 0.9]]
- },
- "line-dasharray": [20,7]
- }
- },
- {
- "id": "oro - courbe et cuvette bathymetrique",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "maxzoom":16,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CNV_BATHYMETRIQUE",
- "CUV_BATHYMETRIQUE"
- ],
- "paint": {
- "line-color": "#0000FF",
- "line-width": 1
- }
- },
- {
- "id": "oro lin - talus",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_lin",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","TALUS"],
- "paint": {
- "line-color": "#D9C8A9",
- "line-width": 1
- }
- },
- {
- "id": "oro lin - talus - trait perpendiculaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "oro_lin",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","TALUS"],
- "paint": {
- "line-color": "#D9C8A9",
- "line-width": {
- "stops": [[14, 7], [16, 9]]
- },
- "line-dasharray": [0.1,1],
- "line-translate": [0,4]
- }
- },
- {
- "id": "toponyme - cote de courbe normale",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "minzoom":13,
- "maxzoom":16,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 10], [15, 13]]},
- "text-anchor": "center",
- "text-rotation-alignment":"map",
- "text-pitch-alignment": "viewport",
- "text-keep-upright": false,
- "text-max-angle": 20,
- "text-max-width": 100,
- "text-font": ["Source Sans Pro Italic"]
- },
- "filter": ["all",
- ["!=","texte","0"],
- ["==","hors_zone","true"],
- ["in","symbo",
- "CNV_MAITRESSE",
- "CUVETTE_MAITRESSE"
- ]
- ],
- "paint": {
- "text-color": "#604A2F",
- "text-halo-width": 0.5,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - cote de courbe rocher",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "minzoom":13,
- "maxzoom":16,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 10], [15, 13]]},
- "text-anchor": "center",
- "text-rotation-alignment":"map",
- "text-pitch-alignment": "viewport",
- "text-keep-upright": false,
- "text-max-angle": 20,
- "text-max-width": 100,
- "text-font": ["Source Sans Pro Italic"]
- },
- "filter": ["all",
- ["!=","texte","0"],
- ["==","hors_zone","true"],
- ["in","symbo",
- "CNV_ROCHER_MAITRESSE",
- "CUV_ROCHER_MAITRESSE"
- ]
- ],
- "paint": {
- "text-color": "#333333",
- "text-halo-width": 0.5,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - cote de courbe glacier",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_courbe",
- "minzoom":13,
- "maxzoom":16,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 10], [15, 13]]},
- "text-anchor": "center",
- "text-rotation-alignment":"map",
- "text-pitch-alignment": "viewport",
- "text-keep-upright": false,
- "text-max-angle": 20,
- "text-max-width": 100,
- "text-font": ["Source Sans Pro Italic"]
- },
- "filter": ["all",
- ["!=","texte","0"],
- ["==","hors_zone","true"],
- ["in","symbo",
- "CNV_GLACIER_MAITRESSE",
- "CUV_GLACIER_MAITRESSE"
- ]
- ],
- "paint": {
- "text-color": "#629FD9",
- "text-halo-width": 0.5,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "hydro surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "hydro_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "SURFACE_D_EAU",
- "BASSIN",
- "ZONE_MARINE"
- ],
- "paint": {
- "fill-color": "#AAD5E9",
- "fill-outline-color": "#AAD5E9"
- }
- },
- {
- "id": "hydro surfacique temporaire",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "hydro_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","SURFACE_D_EAU_TEMP"],
- "paint": {
- "fill-color": "rgba(168, 203, 220, 0.5)"
- }
- },
- {
- "id": "réseau hydro - cours d'eau souterrain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "COURS_D_EAU_SOU",
- "COURS_D_EAU_MOY_SOU"
- ],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 1.5], [17, 6.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "réseau hydro - filet interieur - aqueduc souterrain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SOU"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 1.4], [16, 3.5], [17, 5.9]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "réseau hydro - carre - aqueduc souterrain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sou",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SOU"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 3.5], [16, 8.7], [17, 14.7]]
- },
- "line-dasharray": [1,5]
- }
- },
- {
- "id": "Ferre souterrain - voie normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SOU",
- "VF_2_SOU",
- "VF_ELEC_1_SOU",
- "VF_FERRO_ROUTIER_SOU"
- ],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[10, 0.8], [17, 2.5]]
- }
- }
- },
- {
- "id": "Ferre souterrain - trait perpendic épais",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SOU",
- "VF_2_SOU",
- "VF_ELEC_1_SOU",
- "VF_FERRO_ROUTIER_SOU"
- ],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre souterrain - voie etroite",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SOU",
- "VF_ETROITE_SOU"
- ],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre souterrain - trait perpendic fin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SOU",
- "VF_ETROITE_SOU"
- ],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre souterrain - voie service",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_SERVICE_SOU",
- "VF_NON_EXPLOITEE_SOU"
- ],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [5,2,1,2]
- }
- },
- {
- "id": "Ferre souterrain - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SOU",
- "TRANSPORT_URBAIN_SOU"
- ],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre souterrain - 2 trait perpendic - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SOU",
- "TRANSPORT_URBAIN_SOU"
- ],
- "paint": {
- "line-color": "#B4B4B4",
- "line-width": {
- "stops": [[10, 3.5], [17, 17]]
- },
- "line-dasharray": [0.1,0.2,0.1,10]
- }
- },
- {
- "id": "Chemin souterrain - piste cyclable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PISTE_CYCLABLE_SOU"],
- "paint": {
- "line-color": "#AB81CC",
- "line-width": {
- "stops": [[14, 1.1], [15, 1.7], [16, 2], [17, 3.5]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "Chemin souterrain - filet exterieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SOU"],
- "paint": {
- "line-color": "#B3989A",
- "line-width": {
- "stops": [[14, 1.75], [15, 3], [16, 4.2], [17, 9.5]]
- }
- }
- },
- {
- "id": "Chemin souterrain - filet interieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SOU"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 1], [15, 1.9], [16, 2.7], [17, 5.8]]
- },
- "line-dasharray": [1,0.2]
- }
- },
- {
- "id": "Chemin souterrain - Rue pietonne",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","RUE_PIETONNE_SOU"],
- "paint": {
- "line-color": "#B3989A",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- },
- "line-dasharray": [1,3]
- }
- },
- {
- "id": "Chemin souterrain - sentier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","SENTIER_SOU"],
- "paint": {
- "line-color": "#B3989A",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- },
- "line-dasharray": [4,3]
- }
- },
- {
- "id": "Chemin souterrain - chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CHEMIN_SOU"],
- "paint": {
- "line-color": "#B3989A",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SOU"],
- "paint": {
- "line-color": "#AFAFAF",
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SOU",
- "BRET_AUTO_PEAGE_2_SOU",
- "BRET_AUTO_PEAGE_1_SOU",
- "BRET_AUTO_LIBRE_3_SOU",
- "BRET_AUTO_LIBRE_2_SOU",
- "BRET_AUTO_LIBRE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(222, 70, 14, 0.5)",
- "line-width": {
- "stops": [[12, 2.5], [14, 3.7], [15, 6.8], [16, 8.4], [17, 14]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SOU"],
- "paint": {
- "line-color": "#AFAFAF",
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SOU",
- "NON_CLASSEE_SOU"
- ],
- "paint": {
- "line-color": "#AFAFAF",
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SOU",
- "LOCALE_4_SOU",
- "LOCALE_3_SOU",
- "LOCALE_2_SOU",
- "LOCALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(130, 130, 130, 0.5)",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SOU"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SOU",
- "REGIONALE_4_SOU",
- "REGIONALE_3_SOU",
- "REGIONALE_2_SOU",
- "REGIONALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(130, 130, 130, 0.5)",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SOU"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 7,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SOU",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(222, 70, 14, 0.5)",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SOU"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 7,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SOU",
- "AUTOROU_LIBRE_SOU"
- ],
- "paint": {
- "line-color": "rgba(222, 70, 14, 0.5)",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet extérieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SOU"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SOU"],
- "paint": {
- "line-color": "#DCDCDC",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SOU",
- "BRET_AUTO_PEAGE_2_SOU",
- "BRET_AUTO_PEAGE_1_SOU",
- "BRET_AUTO_LIBRE_3_SOU",
- "BRET_AUTO_LIBRE_2_SOU",
- "BRET_AUTO_LIBRE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[12, 1.5], [14, 2.6], [15, 5.2], [16, 6.7], [17, 10.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SOU"],
- "paint": {
- "line-color": "#F2F5FF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SOU",
- "NON_CLASSEE_SOU"
- ],
- "paint": {
- "line-color": "#DCDCDC",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SOU",
- "LOCALE_4_SOU",
- "LOCALE_3_SOU",
- "LOCALE_2_SOU",
- "LOCALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[9, 1.3], [14, 2.3], [15, 4.1], [16, 6.1], [17, 13.1]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SOU"],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#FCF4A8"], [17, "#FCF7C1"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- },
- "line-dasharray": [2, 2]
-
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SOU",
- "REGIONALE_4_SOU",
- "REGIONALE_3_SOU",
- "REGIONALE_2_SOU",
- "REGIONALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[6, 1.4], [9, 1.5], [14, 3.2], [15, 5.8], [16, 8.3], [17, 16.2]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SOU"],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#FDF28B"], [17, "#FCF6BD"]]
- },
- "line-width": {
- "stops": [[4, 0.4], [6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SOU",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_1_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.1], [14, 4.4], [15, 7.3], [16, 10], [17, 18.5]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SOU"],
- "paint": {
- "line-color": {"stops": [[9, "#F3C66D"], [17, "#F2DDB3"]]},
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - filet interieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SOU",
- "AUTOROU_LIBRE_SOU"
- ],
- "paint": {
- "line-color": "rgba(255, 255, 255, 0.5)",
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 2.7], [14, 5.8], [15, 9], [16, 12], [17, 20.8]]
- }
- }
- },
- {
- "id": "Routier souterrain - axe central - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SOU",
- "AUTOROU_LIBRE_SOU"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Routier souterrain - filet interieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SOU"],
- "paint": {
- "line-color": {"stops": [[9, "#F2BA59"], [17, "#F2C261"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier souterrain - axe central - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sou",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SOU"],
- "paint": {
- "line-color": "#808080",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "réseau hydro - cours d'eau temporaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo","COURS_D_EAU_TEMP","COURS_D_EAU_TEMP_MOY"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 1.5], [17, 4]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "réseau hydro - cours d'eau",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "minzoom": 3,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","COURS_D_EAU"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[4, 0.3], [7, 1.5], [12, 1.5], [17, 6.5]]
- }
- }
- },
- {
- "id": "réseau hydro - canal",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CANAL"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 1.4], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - filet interieur - aqueduc",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_AU_SOL"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 1.4], [16, 3.5], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - carre - aqueduc",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_AU_SOL"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 3.5], [16, 8.7], [17, 14.7]]
- },
- "line-dasharray": [1,5]
- }
- },
- {
- "id": "réseau hydro - cours d'eau moyen ",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","COURS_D_EAU_MOY"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[7, 2], [12, 2.5]]
- }
- }
- },
- {
- "id": "réseau hydro - cours d'eau large ",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","COURS_D_EAU_LAR"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[7, 3], [11, 5]]
- }
- }
- },
- {
- "id": "parcellaire - parcelle surface",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "parcellaire_parcelle",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PARCELLE"],
- "paint": {
- "fill-color": "#FFFFD1",
- "fill-opacity": 0.7
- }
- },
- {
- "id": "bati surfacique mairie - Zoom 14",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "MAIRIE",
- "MAIRIE_ANNEXE"
- ],
- "paint": {
- "fill-color": "#FFA6A6"
- }
- },
- {
- "id": "bati surfacique mairie - Zoom 15,16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "MAIRIE",
- "MAIRIE_ANNEXE"
- ],
- "paint": {
- "fill-color": {"stops": [[14, "#FFA6A6"], [15, "#FFAEAE"]]},
- "fill-outline-color": "#FF7C7C"
- }
- },
- {
- "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 14,15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_COMMERCIAL",
- "BATI_INDUSTRIEL",
- "HANGAR",
- "HANGAR_COMMERCIAL",
- "HANGAR_INDUSTRIEL"
- ],
- "paint": {
- "fill-color": "#C8C8C8"
- }
- },
- {
- "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_COMMERCIAL",
- "BATI_INDUSTRIEL",
- "HANGAR",
- "HANGAR_COMMERCIAL",
- "HANGAR_INDUSTRIEL"
- ],
- "paint": {
- "fill-color": {
- "stops": [[15, "#D1D1D1"], [16, "#E6E6E6"]]
- },
- "fill-outline-color": "#B8B8B8"
- }
- },
- {
- "id": "bati surfacique fonctionnel public - Zoom 14,15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_PUBLIC",
- "HANGAR_PUBLIC"
- ],
- "paint": {
- "fill-color": "#B9B6D6"
- }
- },
- {
- "id": "bati surfacique fonctionnel public - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "BATI_PUBLIC",
- "HANGAR_PUBLIC"
- ],
- "paint": {
- "fill-color": {
- "stops": [[15, "#CFC5DE"], [16, "#E4DAF3"]]
- },
- "fill-outline-color": "#A6A1D6"
- }
- },
- {
- "id": "bati surfacique fonctionnel sportif - bordure",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","BATI_SPORTIF"],
- "paint": {
- "line-color": "#BCD9AB",
- "line-width": 4
- }
- },
- {
- "id": "bati surfacique fonctionnel sportif",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_SPORTIF"],
- "paint": {
- "fill-color": {
- "stops": [[14, "#C9E1DD"], [15, "#DCE6E4"]]
- }
- }
- },
- {
- "id": "bati surfacique fonctionnel gare - Zoom 14,15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_GARE"],
- "paint": {
- "fill-color": "#B3B5F5"
- }
- },
- {
- "id": "bati surfacique fonctionnel gare - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_GARE"],
- "paint": {
- "fill-color": {
- "stops": [[15, "#BFC1F5"], [16, "#CBCDF5"]]
- },
- "fill-outline-color": "#9B9EF6"
- }
- },
- {
- "id": "bati surfacique quelconque - Zoom 15",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_QQUE"],
- "paint": {
- "fill-color": "#D6C6B8"
- }
- },
- {
- "id": "bati surfacique quelconque - Zoom 16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_QQUE"],
- "paint": {
- "fill-color": {
- "stops": [[15, "#E6E0CF"], [16, "#F1EBD9"]]
- },
- "fill-outline-color": "#C3AA8E"
- }
- },
- {
- "id": "cimetiere surfacique 1",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CIMETIERE_SURF",
- "CIMETIERE_MILI_SURF",
- "NECROPOLE_NATIONALE"
- ],
- "paint": {
- "fill-color": "#F0F0F0",
- "fill-opacity": 0.5,
- "fill-outline-color": "#818181"
- }
- },
- {
- "id": "cimetiere surfacique 2",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CIMETIERE_SURF",
- "CIMETIERE_MILI_SURF",
- "NECROPOLE_NATIONALE"
- ],
- "paint": {
- "fill-pattern": "Cimetiere"
- }
- },
- {
- "id": "bati hydro surfacique - Autre",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "ECLUSE_SURF",
- "RESERVOIR_EAU_SURF"
- ],
- "paint": {
- "fill-color": "#ADCCD9",
- "fill-outline-color": "#336699"
- }
- },
- {
- "id": "bati hydro surfacique - Pecherie",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PECHERIE_SURF"],
- "paint": {
- "fill-color": "#BFE2F0",
- "fill-outline-color": "#509FEF"
- }
- },
- {
- "id": "bati hydro surfacique - Barrage",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BARRAGE_SURF"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#464646"
- }
- },
- {
- "id": "bati hydro surfacique - Chateau d'eau",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","CHATEAU_EAU_SURF"],
- "paint": {
- "fill-color": "#1466B2"
- }
- },
- {
- "id": "bati infra surfacique - Silo",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","SILO_SURF"],
- "paint": {
- "fill-color": "#C7A9AA",
- "fill-outline-color": "#696969"
- }
- },
- {
- "id": "bati infra surfacique - Reservoir indus",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","RESERVOIR_INDUS_SURF"],
- "paint": {
- "fill-color": "#8D9DAA",
- "fill-outline-color": "#464646"
- }
- },
- {
- "id": "bati infra surfacique - Serre",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo","SERRE_SURF"],
- "paint": {
- "fill-color": "#CAD6D9",
- "fill-outline-color": "#8C8C8C"
- }
- },
- {
- "id": "bati infra surfacique - poste electrique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo","POSTE_ELEC_SURF"],
- "paint": {
- "fill-color": "#7993B6",
- "fill-opacity": 0.3
- }
- },
- {
- "id": "bati infra surfacique - poste electrique bord",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","POSTE_ELEC_SURF"],
- "paint": {
- "line-color": "#000000",
- "line-width": {"stops": [[12, 0.3], [17, 1.2]]}
- }
- },
- {
- "id": "bati religieux surfacique - Zoom 14",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "maxzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CHAPELLE_SURF",
- "EGLISE_SURF",
- "CHRETIEN_SURF",
- "SYNAGOGUE_SURF",
- "MOSQUEE_SURF",
- "AUTRE_CULTE_SURF"
- ],
- "paint": {
- "fill-color": "#F7CBCB"
- }
- },
- {
- "id": "bati religieux surfacique - Zoom 15,16,17,18",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 14,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "CHAPELLE_SURF",
- "EGLISE_SURF",
- "CHRETIEN_SURF",
- "SYNAGOGUE_SURF",
- "MOSQUEE_SURF",
- "AUTRE_CULTE_SURF"
- ],
- "paint": {
- "fill-color": {"stops": [[14, "#F7CBCB"], [15, "#F7E1E1"]]},
- "fill-outline-color": {"stops": [[14, "#F7A8A8"], [15, "#F7B7B7"]]}
- }
- },
- {
- "id": "bati remarquable surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "FORTIF_SURF",
- "CHATEAU_SURF",
- "TOUR_MOULIN_SURF",
- "ARENE_THEATRE",
- "ARC_TRIOMPHE_SURF",
- "MONUMENT_SURF"
- ],
- "paint": {
- "fill-color": "#9B9B9B",
- "fill-outline-color": "#6E6E6E"
- }
- },
- {
- "id": "bati sportif surfacique fond",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "TENNIS_SURF",
- "SPORT_INDIF_SURF",
- "FOOT_SURF",
- "MULTI_SPORT_SURF",
- "PISTE_SPORT_SURF",
- "NATATION_SURF"
- ],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#FFFFFF"
- }
- },
- {
- "id": "bati sportif surfacique",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "TENNIS_SURF",
- "SPORT_INDIF_SURF",
- "FOOT_SURF",
- "MULTI_SPORT_SURF",
- "PISTE_SPORT_SURF",
- "NATATION_SURF"
- ],
- "paint": {
- "line-color": "#BCD9AB",
- "line-width": 2
- }
- },
- {
- "id": "bati transport surfacique - piste",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "PISTE_DUR",
- "PISTE_HERBE"
- ],
- "paint": {
- "fill-color": "#DBDBDB",
- "fill-outline-color": "#808080"
-
- }
- },
- {
- "id": "bati ZAI - Autres",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zai",
- "minzoom":15,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","nature",
- "Lycée",
- "Université",
- "Capitainerie",
- "Gendarmerie",
- "Siège d'EPCI",
- "Musée",
- "Collège",
- "Maison de retraite",
- "Etablissement thermal",
- "Autre service déconcentré de l'Etat",
- "Etablissement pénitentiaire",
- "Divers public ou administratif",
- "Autre établissement d'enseignement",
- "Maison du parc",
- "Palais de justice",
- "Enseignement primaire",
- "Office de tourisme",
- "Hôpital",
- "Police",
- "Piscine",
- "Enseignement supérieur",
- "Poste",
- "Caserne",
- "Etablissement hospitalier",
- "Etablissement extraterritorial",
- "Science",
- "Structure d'accueil pour personnes handicapées",
- "Administration centrale de l'Etat",
- "Caserne de pompiers"
- ],
- "paint": {
- "fill-color": "#E3BFE2",
- "fill-opacity": 0.5,
- "fill-outline-color": "#E39FE1"
- }
- },
- {
- "id": "bati ZAI - Commandement",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_zai",
- "minzoom":15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","nature",
- "Hôtel de département",
- "Hôtel de région",
- "Préfecture de région",
- "Préfecture",
- "Sous-préfecture"
- ],
- "paint": {
- "fill-color": "#FF0000",
- "fill-opacity": 0.3,
- "fill-outline-color": "#B40000"
- }
- },
- {
- "id": "construction linéaire - mur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","MUR"],
- "paint": {
- "line-color": "#8C8C8C",
- "line-width": 0.3
- }
- },
- {
- "id": "construction linéaire - autre",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "RUINE_LIN",
- "MUR_SOUTENEMENT",
- "FORTIF_LIN"
- ],
- "paint": {
- "line-color": "#646464",
- "line-width": 0.5
- }
- },
- {
- "id": "construction hydrographique linéaire - Barrage",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","BARRAGE_LIN"],
- "paint": {
- "line-color": "#646464",
- "line-width": {"stops": [[13, 1.5], [17, 5]]}
- }
- },
- {
- "id": "construction hydrographique linéaire - Quai",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "QUAI",
- "DIGUE"
- ],
- "paint": {
- "line-color": "#828282",
- "line-width": {"stops": [[14, 1], [17, 2.5]]}
- }
- },
- {
- "id": "construction hydrographique linéaire - Pecherie",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PECHERIE_LIN"],
- "paint": {
- "line-color": "#0066CC",
- "line-width": {"stops": [[14, 1], [17, 2.5]]}
- }
- },
- {
- "id": "Chemin a niveau - piste cyclable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PISTE_CYCLABLE"],
- "paint": {
- "line-color": {"stops": [[17, "#9B5CCC"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1.1], [15, 1.7], [16, 2], [17, 3.5], [18, 6]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "Chemin a niveau - filet exterieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER"],
- "paint": {
- "line-color": {"stops": [[17, "#8C7274"], [18, "#C8C8C8"]]},
- "line-width": {
- "stops": [[14, 1.75], [15, 3], [16, 4.2], [17, 9.5]]
- }
- }
- },
- {
- "id": "Chemin a niveau - filet interieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 1], [15, 1.9], [16, 2.7], [17, 5.8]]
- },
- "line-dasharray": [1,0.2]
- }
- },
- {
- "id": "Chemin a niveau - Rue pietonne",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","RUE_PIETONNE"],
- "paint": {
- "line-color": {"stops": [[17, "#8C7274"], [18, "#F8E5D5"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 5]]
- },
- "line-dasharray": [1,3]
- }
- },
- {
- "id": "Chemin a niveau - sentier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","SENTIER"],
- "paint": {
- "line-color": {"stops": [[17, "#8C7274"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 6]]
- },
- "line-dasharray": [4,3]
- }
- },
- {
- "id": "Chemin a niveau - chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CHEMIN"],
- "paint": {
- "line-color": {"stops": [[17, "#8C7274"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 7]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO"],
- "paint": {
- "line-color": {"stops": [[12, "#646464"], [17, "#8C8C8C"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5], [18, 16.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3",
- "BRET_AUTO_PEAGE_2",
- "BRET_AUTO_PEAGE_1",
- "BRET_AUTO_LIBRE_3",
- "BRET_AUTO_LIBRE_2",
- "BRET_AUTO_LIBRE_1"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#DE460E"], [17, "#F18800"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[12, 2.5], [14, 3.7], [15, 6.8], [16, 8.4], [17, 14]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT"],
- "paint": {
- "line-color": {"stops": [[17, "#969696"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4",
- "NON_CLASSEE"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#969696"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 7,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE",
- "LOCALE_4",
- "LOCALE_3",
- "LOCALE_2",
- "LOCALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[12, "#8C8C8C"], [13, "#B4B4B4"], [17, "#B4B4B4"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE",
- "REGIONALE_4",
- "REGIONALE_3",
- "REGIONALE_2",
- "REGIONALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[9, "#828282"], [10, "#B4B4B4"], [17, "#B4B4B4"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE",
- "PRINCIPALE_4",
- "PRINCIPALE_3",
- "PRINCIPALE_2",
- "PRINCIPALE_1"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#E2A52A"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE",
- "AUTOROU_LIBRE"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#DE460E"], [17, "#F18800"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet extérieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3",
- "BRET_AUTO_PEAGE_2",
- "BRET_AUTO_PEAGE_1",
- "BRET_AUTO_LIBRE_3",
- "BRET_AUTO_LIBRE_2",
- "BRET_AUTO_LIBRE_1"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#F18800"], [17, "#F2B230"]]},
- "line-width": {
- "stops": [[12, 1.5], [14, 2.6], [15, 5.2], [16, 6.7], [17, 10.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT"],
- "paint": {
- "line-color": "#EDF1FF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4",
- "NON_CLASSEE"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE",
- "LOCALE_4",
- "LOCALE_3",
- "LOCALE_2",
- "LOCALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[6, "#F2B361"],[7, "#FFFFFF"], [12, "#FFFFFF"], [13, "#FCF4A8"], [17, "#FCF7C1"]]
- },
- "line-width": {
- "stops": [[9, 1.3], [14, 2.3], [15, 4.1], [16, 6.1], [17, 13.1]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 11,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR"],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#FCF4A8"], [17, "#FCF7C1"], [18, "#EDEDED"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- },
- "line-dasharray": [2, 2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE",
- "REGIONALE_4",
- "REGIONALE_3",
- "REGIONALE_2",
- "REGIONALE_1"
- ],
- "paint": {
- "line-color": {
- "stops": [[6, "#F2A949"], [7, "#FFFFFF"], [9, "#FFFFFF"], [10, "#FDF28B"], [17, "#FCF6BD"]]
- },
- "line-width": {
- "stops": [[4, 1.1], [6, 1.4], [9, 1.5], [14, 3.2], [15, 5.8], [16, 8.3], [17, 16.2]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR"],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#FDF28B"], [17, "#FCF6BD"], [18, "#EDEDED"]]
- },
- "line-width": {
- "stops": [[4, 0.4], [6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE",
- "PRINCIPALE_4",
- "PRINCIPALE_3",
- "PRINCIPALE_2",
- "PRINCIPALE_1"
- ],
- "paint": {
- "line-color": {"stops": [[6, "#F29924"], [7, "#F3C66D"], [9, "#F3C66D"], [17, "#F2DDB3"]]},
- "line-width": {
- "stops": [[4, 0.6], [6, 1.8], [9, 2.1], [14, 4.4], [15, 7.3], [16, 10], [17, 18.5]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR"],
- "paint": {
- "line-color": {"stops": [[9, "#F3C66D"], [17, "#F2DDB3"], [18, "#EDEDED"]]},
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - filet interieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE",
- "AUTOROU_LIBRE"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#F18800"], [17, "#F2B230"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 2.7], [14, 5.8], [15, 9], [16, 12], [17, 20.8]]
- }
- }
- },
- {
- "id": "Routier a niveau - axe central - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE",
- "AUTOROU_LIBRE"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Routier a niveau - filet interieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR"],
- "paint": {
- "line-color": {"stops": [[9, "#F18800"], [17, "#F2B230"], [18, "#EDEDED"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier a niveau - axe centrale - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR"],
- "paint": {
- "line-color": "#808080",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Ferre a niveau - voie normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1",
- "VF_2",
- "VF_3",
- "VF_4",
- "VF_ELEC_1",
- "VF_ELEC_2",
- "VF_ELEC_3",
- "VF_ELEC_4"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.8], [17, 2.5]]
- }
- }
- },
- {
- "id": "Ferre a niveau - voie normale trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1",
- "VF_2",
- "VF_3",
- "VF_4",
- "VF_ELEC_1",
- "VF_ELEC_2",
- "VF_ELEC_3",
- "VF_ELEC_4"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre a niveau - voie etroite",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1",
- "VF_ETROITE_2",
- "VF_ETROITE"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre a niveau - voie etroite trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1",
- "VF_ETROITE_2",
- "VF_ETROITE"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre a niveau - voie service",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_SERVICE",
- "VF_NON_EXPLOITEE"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [5,2,1,2]
- }
- },
- {
- "id": "Ferre a niveau - voie en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR"],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Ferre a niveau - voie en construction trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR"],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre a niveau - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE",
- "TRANSPORT_URBAIN"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre a niveau - 2 trait perpendic - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE",
- "TRANSPORT_URBAIN"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 3.5], [17, 17]]
- },
- "line-dasharray": [0.1,0.2,0.1,10]
- }
- },
- {
- "id": "liaison routiere - Bac Liaison Maritime",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "minzoom": 8,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BAC_AUTO",
- "LIAISON_MARITIME",
- "BAC_LIAISON_MARITIME"
- ],
- "paint": {
- "line-color": "#5792C2",
- "line-width": {
- "stops": [[8, 1], [13, 2.5]]
- }
- }
- },
- {
- "id": "liaison routiere - Gue route",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","GUE_ROUTE"],
- "paint": {
- "line-color": {
- "stops": [[13, "#BEBEBE"], [17, "#646464"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "liaison routiere - Gue chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","GUE_CHEMIN"],
- "paint": {
- "line-color": {
- "stops": [[13, "#BEBEBE"], [17, "#646464"]]
- },
- "line-width": {
- "stops": [[14, 1.6], [15, 2.9], [16, 4.4], [17, 6.5]]
- }
- }
- },
- {
- "id": "liaison routiere - filet extérieur - Pont passerelle",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "PONT_PASSERELLE",
- "PONT_LIN",
- "PONT_MOBILE_LIN"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#C8C8C8"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 2.2], [15, 3.8], [16, 5.4], [17, 11.8]]
- }
- }
- },
- {
- "id": "liaison routiere - filet intérieur - Pont passerelle",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_liaison",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "PONT_PASSERELLE",
- "PONT_LIN",
- "PONT_MOBILE_LIN"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 0.7], [15, 1.1], [16, 1.7], [17, 3.8]]
- }
- }
- },
- {
- "id": "Routier surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "SURF_ROUT_PRINC",
- "SURF_ROUT_REG",
- "SURF_ROUT_LOC",
- "SURF_ROUT_NON_CLA"],
- "paint": {
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#000000"
- }
- },
- {
- "id": "Routier surfacique - Dalle de protection",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","DALLE_DE_PROTECTION"],
- "paint": {
- "fill-opacity": 0.5,
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#000000"
- }
- },
- {
- "id": "Routier surfacique - Escalier surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","ESCALIER_SURF"],
- "paint": {
- "fill-opacity": 0.8,
- "fill-color": "#FFFFFF",
- "fill-outline-color": "#918091"
- }
- },
- {
- "id": "Routier surfacique - Péage surfacique",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "routier_surf",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","SURF_PEAGE"],
- "paint": {
- "fill-color": "#F2DAAA",
- "fill-outline-color": "#E2A52A"
- }
- },
- {
- "id": "bati transport surfacique - bati peage",
- "type": "fill",
- "source": "plan_ign",
- "source-layer": "bati_surf",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","BATI_PEAGE"],
- "paint": {
- "fill-color": "#DCDCDC",
- "fill-outline-color": "#808080"
-
- }
- },
- {
- "id": "réseau hydro - cours d'eau superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "COURS_D_EAU_SUP",
- "COURS_D_EAU_MOY_SUP"
- ],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 1.5], [17, 6.5]]
- }
- }
- },
- {
- "id": "réseau hydro - canal superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CANAL_SUP"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 1.4], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - filet interieur - aqueduc superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SUP"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 1.4], [16, 3.5], [17, 5.9]]
- }
- }
- },
- {
- "id": "réseau hydro - carre - aqueduc superieur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "hydro_reseau_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AQUEDUC_SUP"],
- "paint": {
- "line-color": "#AAD5E9",
- "line-width": {
- "stops": [[12, 3.5], [16, 8.7], [17, 14.7]]
- },
- "line-dasharray": [1,5]
- }
- },
- {
- "id": "Chemin superieur - piste cyclable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PISTE_CYCLABLE_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#9B5CCC"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1.1], [15, 1.7], [16, 2], [17, 3.5], [18, 6]]
- },
- "line-dasharray": [6,2]
- }
- },
- {
- "id": "Chemin superieur - filet exterieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#8C7274"], [18, "#C8C8C8"]]},
- "line-width": {
- "stops": [[14, 1.75], [15, 3], [16, 4.2], [17, 9.5]]
- }
- }
- },
- {
- "id": "Chemin superieur - filet interieur - escalier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","ESCALIER_SUP"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 1], [15, 1.9], [16, 2.7], [17, 5.8]]
- },
- "line-dasharray": [1,0.2]
- }
- },
- {
- "id": "Chemin superieur - Rue pietonne",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","RUE_PIETONNE_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#8C7274"], [18, "#EBEBEB"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 5]]
- },
- "line-dasharray": [1,3]
- }
- },
- {
- "id": "Chemin superieur - sentier",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","SENTIER_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#8C7274"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 6]]
- },
- "line-dasharray": [4,3]
- }
- },
- {
- "id": "Chemin superieur - chemin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_chemin_sup",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","CHEMIN_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#8C7274"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2], [18, 7]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SUP"],
- "paint": {
- "line-color": {"stops": [[12, "#646464"], [17, "#8C8C8C"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - filet extérieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SUP",
- "BRET_AUTO_PEAGE_2_SUP",
- "BRET_AUTO_PEAGE_1_SUP",
- "BRET_AUTO_LIBRE_3_SUP",
- "BRET_AUTO_LIBRE_2_SUP",
- "BRET_AUTO_LIBRE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#DE460E"], [17, "#F18800"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[12, 2.5], [14, 3.7], [15, 6.8], [16, 8.4], [17, 14]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SUP"],
- "paint": {
- "line-color": {"stops": [[17, "#969696"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#969696"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[14, 3.2], [15, 5.4], [16, 7.7], [17, 16.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SUP",
- "LOCALE_4_SUP",
- "LOCALE_3_SUP",
- "LOCALE_2_SUP",
- "LOCALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[12, "#8C8C8C"], [13, "#B4B4B4"], [17, "#B4B4B4"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SUP"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SUP",
- "REGIONALE_4_SUP",
- "REGIONALE_3_SUP",
- "REGIONALE_2_SUP",
- "REGIONALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[9, "#828282"], [10, "#B4B4B4"], [17, "#B4B4B4"], [18, "#FFFFFF"]]
- },
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SUP"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SUP",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[17, "#E2A52A"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SUP"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SUP",
- "AUTOROU_LIBRE_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#DE460E"], [17, "#F18800"], [18, "#FFFFFF"]]},
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier superieur - filet extérieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SUP"],
- "paint": {
- "line-color": "#C8C8C8",
- "line-width": {
- "stops": [[6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route non revetu carrosable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_REVETUE_CARRO_SUP"],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5], [18, 16.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - bretelle autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 12,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_AUTO_PEAGE_3_SUP",
- "BRET_AUTO_PEAGE_2_SUP",
- "BRET_AUTO_PEAGE_1_SUP",
- "BRET_AUTO_LIBRE_3_SUP",
- "BRET_AUTO_LIBRE_2_SUP",
- "BRET_AUTO_LIBRE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#F18800"], [17, "#F2B230"]]},
- "line-width": {
- "stops": [[12, 1.5], [14, 2.6], [15, 5.2], [16, 6.7], [17, 10.8]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route non classee restreint",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","NON_CLASSEE_RESTREINT_SUP"],
- "paint": {
- "line-color": "#EDF1FF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route non classee",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_SUP"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[14, 2.3], [15, 4.1], [16, 6.3], [17, 13.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route locale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_LOCALE_SUP",
- "LOCALE_4_SUP",
- "LOCALE_3_SUP",
- "LOCALE_2_SUP",
- "LOCALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#FCF4A8"], [17, "#FCF7C1"]]
- },
- "line-width": {
- "stops": [[9, 1.3], [14, 2.3], [15, 4.1], [16, 6.1], [17, 13.1]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route locale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 11,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LOCALE_CONSTR_SUP"],
- "paint": {
- "line-color": {
- "stops": [[12, "#FFFFFF"], [13, "#FCF4A8"], [17, "#FCF7C1"]]
- },
- "line-width": {
- "stops": [[9, 2], [14, 3.5], [15, 6], [16, 8.4], [17, 18.3]]
- },
- "line-dasharray": [2, 2]
- }
- },
- {
- "id": "Routier superieur - filet interieur - route regionale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_REGIONALE_SUP",
- "REGIONALE_4_SUP",
- "REGIONALE_3_SUP",
- "REGIONALE_2_SUP",
- "REGIONALE_1_SUP"
- ],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#FDF28B"], [17, "#FCF6BD"]]
- },
- "line-width": {
- "stops": [[6, 1.4], [9, 1.5], [14, 3.2], [15, 5.8], [16, 8.3], [17, 16.2]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route regionale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REGIONALE_CONSTR_SUP"],
- "paint": {
- "line-color": {
- "stops": [[9, "#FFFFFF"], [10, "#FDF28B"], [17, "#FCF6BD"]]
- },
- "line-width": {
- "stops": [[6, 1.5], [9, 2.3], [14, 5], [15, 8.1], [16, 11.2], [17, 22]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - filet interieur - route principale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "BRET_PRINCIPALE_SUP",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_1_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#F3C66D"], [17, "#F2DDB3"]]},
- "line-width": {
- "stops": [[4, 0.5], [6, 1.8], [9, 2.1], [14, 4.4], [15, 7.3], [16, 10], [17, 18.5]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - route principale en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","PRINCIPALE_CONSTR_SUP"],
- "paint": {
- "line-color": {"stops": [[9, "#F3C66D"], [17, "#F2DDB3"]]},
- "line-width": {
- "stops": [[6, 1.8], [9, 2.7], [14, 5.9], [15, 9], [16, 12.2], [17, 22.5]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - filet interieur - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SUP",
- "AUTOROU_LIBRE_SUP"
- ],
- "paint": {
- "line-color": {"stops": [[9, "#F18800"], [17, "#F2B230"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 2.7], [14, 5.8], [15, 9], [16, 12], [17, 20.8]]
- }
- }
- },
- {
- "id": "Routier superieur - axe central - autoroute",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "AUTOROU_PEAGE_SUP",
- "AUTOROU_LIBRE_SUP"
- ],
- "paint": {
- "line-color": "#FFFFFF",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Routier superieur - filet interieur - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SUP"],
- "paint": {
- "line-color": {"stops": [[9, "#F18800"], [17, "#F2B230"]]},
- "line-width": {
- "stops": [[4, 0.7], [6, 2.5], [9, 3.5], [14, 7.5], [15, 11], [16, 15], [17, 26]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Routier superieur - axe centrale - autoroute en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "routier_route_sup",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","AUTOROU_CONSTR_SUP"],
- "paint": {
- "line-color": "#808080",
- "line-width": {
- "stops": [[9, 0.6], [14, 0.7], [15, 1], [16, 1.2], [17, 2.1]]
- }
- }
- },
- {
- "id": "Ferre superieur - voie normale",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SUP",
- "VF_2_SUP",
- "VF_ELEC_1_SUP"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.8], [17, 2.5]]
- }
- }
- },
- {
- "id": "Ferre superieur - voie normale trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_1_SUP",
- "VF_2_SUP",
- "VF_ELEC_1_SUP"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre superieur - voie etroite",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SUP",
- "VF_ETROITE_SUP"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre superieur - voie etroite trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_ETROITE_1_SUP",
- "VF_ETROITE_SUP"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre superieur - voie service",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "VF_SERVICE_SUP",
- "VF_NON_EXPLOITEE_SUP"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [5,2,1,2]
- }
- },
- {
- "id": "Ferre superieur - voie en construction",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR_SUP"],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- },
- "line-dasharray": [2,2]
- }
- },
- {
- "id": "Ferre superieur - voie en construction trait perpendic",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "minzoom": 10,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","VF_EN_CONSTR_SUP"],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 3.5], [17, 14.7]]
- },
- "line-dasharray": [0.1,10]
- }
- },
- {
- "id": "Ferre superieur - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SUP",
- "TRANSPORT_URBAIN_SUP"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 0.3], [17, 1.8]]
- }
- }
- },
- {
- "id": "Ferre superieur - 2 trait perpendic - funic/urbain",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "ferre_sup",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "FUNI_CREMAILLERE_SUP",
- "TRANSPORT_URBAIN_SUP"
- ],
- "paint": {
- "line-color": "#787878",
- "line-width": {
- "stops": [[10, 3.5], [17, 17]]
- },
- "line-dasharray": [0.1,0.2,0.1,10]
- }
- },
- {
- "id": "Limite - cloture",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","CLOTURE"],
- "paint": {
- "line-color": "#000000",
- "line-width": {
- "stops": [[13, 0.6], [17, 1]]
- },
- "line-dasharray": [1.5, 4]
- }
- },
- {
- "id": "Limite - layon",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 14,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LAYON"],
- "paint": {
- "line-color": "#B3989A",
- "line-width": {
- "stops": [[14, 1], [15, 1.2], [16, 1.4], [17, 2]]
- },
- "line-dasharray": [4,7]
- }
- },
- {
- "id": "Zone Règlementee - Enceinte militaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ZONE_REGLEMENTEE",
- "LIM_ENCEINTE_MILITAIRE",
- "LIM_ENCEINTE_MILI",
- "LIM_CHAMP_TIR"
- ],
- "paint": {
- "line-color": "rgba(226, 130, 92, 0.8)",
- "line-width": {
- "stops": [[13, 1.7], [17, 3.1]]
- },
- "line-dasharray": [4, 1, 2, 5]
- }
- },
- {
- "id": "limite zone naturelle",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ZONE_NATURELLE",
- "LIM_ZONE_NATURELLE_ILE",
- "LIM_RESERVE_NATURELLE"
- ],
- "paint": {
- "line-color": "#FFC2CB",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 1]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 10",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "maxzoom": 10,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#42A266",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 1]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 11",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 10,
- "maxzoom": 11,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#42A266",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 2]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 12",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 11,
- "maxzoom": 12,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#42A266",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 3]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 13",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 12,
- "maxzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "#42A266",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 4]
- }
- },
- {
- "id": "limite zone naturelle - Parc naturel 14",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_PARC_NATUREL",
- "LIM_PARC_NATUREL_ILE"
- ],
- "paint": {
- "line-color": "rgba(66, 162, 102, 0.7)",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 5]
- }
- },
- {
- "id": "limite zone naturelle - Parc marin",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_PARC_NATUREL_MARIN"],
- "paint": {
- "line-color": "#2A81A2",
- "line-width": {
- "stops": [[13, 2], [17, 4]]
- },
- "line-dasharray": [2, 1]
- }
- },
- {
- "id": "parcellaire - parcelle bordure",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "parcellaire_parcelle",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","PARCELLE"],
- "paint": {
- "line-color": "#9933FF",
- "line-width": 1
- }
- },
- {
- "id": "parcellaire - section",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "parcellaire_section",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","SECTION"],
- "paint": {
- "line-color": "#287B00",
- "line-width": 1.9,
- "line-dasharray": [2,4,2]
- }
- },
- {
- "id": "toponyme - parcellaire - section",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_parcellaire_section",
- "filter": ["==","txt_typo","SECTION"],
- "layout": {
- "symbol-placement": "line",
- "text-offset": [0, 0],
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#287B00"
- }
- },
- {
- "id": "toponyme - parcellaire - parcelle",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_parcellaire_parcelle",
- "filter": ["==","txt_typo","PARCELLE"],
- "layout": {
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Bold"]
- },
- "paint": {
- "text-color": "#9933FF",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - parcellaire - adresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_parcellaire_adresse_ponc",
- "filter": ["==","txt_typo","ADRESSE"],
- "layout": {
- "symbol-placement": "point",
- "text-field": ["concat","{numero}","{indice_de_repetition}"],
- "text-size": 11,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Bold"]
- },
- "paint": {
- "text-color": "#695744",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "limite admin - limite de commune",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_COMMUNE",
- "LIM_CANTON",
- "LIM_ARRONDISSEMENT"
- ],
- "paint": {
- "line-color": "rgba(126, 119, 184, 0.5)",
- "line-width": {
- "stops": [[13, 3], [17, 5.5]]
- },
- "line-dasharray": [4, 2, 1, 1, 1, 1, 1, 2]
- }
- },
- {
- "id": "limite admin - limite de département bandeau",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 8,
- "maxzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_DEPARTEMENT"],
- "paint": {
- "line-color": "rgba(178, 175, 219, 0.4)",
- "line-width": {
- "stops": [[9, 4.1], [12, 6]]
- }
- }
- },
- {
- "id": "limite admin - limite de département tiret",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_DEPARTEMENT"],
- "paint": {
- "line-color": "rgba(126, 119, 184, 0.5)",
- "line-width": {
- "stops": [[13, 3], [17, 5.5]]
- },
- "line-dasharray": [4, 2, 1, 1, 1, 2]
- }
- },
- {
- "id": "limite admin - limite de région bandeau",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 7,
- "maxzoom": 13,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_REGION"],
- "paint": {
- "line-color": "rgba(178, 175, 219, 0.5)",
- "line-width": {
- "stops": [[9, 4.5], [12, 6.7]]
- }
- }
- },
- {
- "id": "limite admin - limite de région tiret",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 13,
- "maxzoom": 18,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIM_REGION"],
- "paint": {
- "line-color": "rgba(126, 119, 184, 0.5)",
- "line-width": {
- "stops": [[13, 3], [17, 5.5]]
- },
- "line-dasharray": [4, 2, 1, 2]
- }
- },
- {
- "id": "limite etat 1",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 2,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ETAT",
- "LIM_ETAT_ETRANGER"
- ],
- "paint": {
- "line-color": "rgba(178, 175, 219, 0.6)",
- "line-width": {
- "stops": [[2, 2], [3, 3.5], [9, 5], [14, 13], [15, 20], [16, 24], [17, 42]]
- }
- }
- },
- {
- "id": "limite etat 2",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 7,
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "LIM_ETAT",
- "LIM_ETAT_ETRANGER"
- ],
- "paint": {
- "line-color": "#9F9CB8",
- "line-width": {
- "stops": [[9, 1.5], [14, 3.5], [15, 5.5], [16, 6.5], [17, 11]]
- },
- "line-dasharray": [4, 2]
- }
- },
- {
- "id": "limite cote",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "limite_lin",
- "minzoom": 7,
- "maxzoom":10,
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo","LIM_COTE"],
- "paint": {
- "line-color": "#82A3B2",
- "line-width": 1
- }
- },
- {
- "id": "ligne electrique",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["==","symbo","LIGNE_ELECTRIQUE"],
- "paint": {
- "line-color": "#808080",
- "line-width": {
- "stops": [[13, 1], [17, 2]]
- }
- }
- },
- {
- "id": "autre construction linéaire",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "round",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "CABLE",
- "REMONTEE_MEC",
- "HYDROCARBURES",
- "CONDUITE_MATIERES_P",
- "SPORT_MONTAGNE_LIN",
- "PISTE_BOBSLEIGH",
- "PISTE_LUGE",
- "PISTE_AERO_LIN"
- ],
- "paint": {
- "line-color": "#808080",
- "line-width": 1
- }
- },
- {
- "id": "autre construction linéaire - trait perpend cable",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","CABLE"],
- "paint": {
- "line-color": "#808080",
- "line-width": 5,
- "line-dasharray": [0.5,10]
- }
- },
- {
- "id": "autre construction linéaire - trait perpend 1 remont",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REMONTEE_MEC"],
- "paint": {
- "line-color": "#808080",
- "line-width": 6,
- "line-dasharray": [1,10]
- }
- },
- {
- "id": "autre construction linéaire - trait perpend 2 remont",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["==","symbo","REMONTEE_MEC"],
- "paint": {
- "line-color": "#BEBEBE",
- "line-width": 6,
- "line-dasharray": [0.3,0.4,0.3,10]
- }
- },
- {
- "id": "autre construction linéaire - trait perpend carbur",
- "type": "line",
- "source": "plan_ign",
- "source-layer": "bati_lin",
- "layout": {
- "visibility": "visible",
- "line-cap": "butt",
- "line-join": "round"
- },
- "filter": ["in","symbo",
- "HYDROCARBURES",
- "CONDUITE_MATIERES_P"
- ],
- "paint": {
- "line-color": "#808080",
- "line-width": 5,
- "line-dasharray": [1,10]
- }
- },
- {
- "id": "routier ponctuel - peage ponctuel",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "routier_ponc",
- "minzoom": 8,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PEAGE_PONC"],
- "paint": {
- "circle-radius": {
- "stops": [[9, 3.5], [12, 6.5]]
- },
- "circle-color": "#E2A52A",
- "circle-stroke-width": 1,
- "circle-stroke-color": "#808080"
- }
- },
- {
- "id": "routier ponctuel - barriere",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "routier_ponc",
- "minzoom": 12,
- "layout": {
- "visibility": "visible",
- "icon-image": "Barriere",
- "icon-size": {
- "stops": [[13, 0.25], [16, 0.45], [17, 0.7]]
- },
- "icon-allow-overlap": true,
- "icon-rotate": ["get", "rotation"]
- },
- "filter": ["==","symbo","BARRIERE"],
- "paint": {
- "icon-color": "#969696"
- }
- },
- {
- "id": "hydro ponctuel",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "hydro_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "FONTAINE",
- "POINT_D_EAU",
- "SOURCE",
- "SOURCE_CAPTEE",
- "PERTE",
- "RESURGENCE",
- "CASCADE",
- "AUTRE_HYDRO_PONC"
- ],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 7]]
- },
- "circle-color": "#FFFFFF",
- "circle-opacity": 1,
- "circle-stroke-width": {
- "stops": [[14, 2], [17, 5]]
- },
- "circle-stroke-color": "#1466B2"
- }
- },
- {
- "id": "point coté",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "oro_ponc",
- "minzoom": 11,
- "maxzoom": 16,
- "filter": ["in","symbo",
- "POINT_COTE",
- "POINT_COTE_TOPO",
- "POINT_COTE_RESEAU",
- "POINT_RBF"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.1,
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.2, 0.4],
- "text-padding": 2,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#505050"
- }
- },
- {
- "id": "bati ponctuel : Hopital",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Hopital",
- "icon-size": 0.33
- },
- "filter": ["==","symbo","HOPITAL_PONC"],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel hydrographique",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 14,
- "layout": {
- "visibility": "visible",
- "icon-image": "Pompage",
- "icon-size": { "stops": [[13, 0.2], [17, 0.6]] },
- "icon-allow-overlap": true
- },
- "filter": ["in","symbo",
- "CITERNE",
- "LAVOIR",
- "STATION_EPURATION",
- "STATION_DE_POMPAGE",
- "USINE_PRODUCTION_EAU",
- "USINE_ELEVATRICE"
- ],
- "paint": {
- "icon-color": "#1C62A6"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Puits-Abreuvoir",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["in","symbo",
- "PUITS",
- "ABREUVOIR"
- ],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 7]]
- },
- "circle-color": "#FFFFFF",
- "circle-opacity": 1,
- "circle-stroke-width": {
- "stops": [[14, 2], [17, 5]]
- },
- "circle-stroke-color": "#1466B2"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Phare",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "icon-image": "Phare",
- "icon-size": { "stops": [[13, 0.7], [17, 1.3]] }
- },
- "filter": ["==","symbo","PHARE"],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Amer-Feu",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "icon-image": "Feu",
- "icon-size": { "stops": [[13, 0.7], [17, 1.3]] }
- },
- "filter": ["in","symbo",
- "AMER",
- "FEU",
- "FEU_PONC",
- "TOURELLE_LUMINEUSE"
- ],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Balise",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 13,
- "layout": {
- "visibility": "visible",
- "icon-image": "Balise",
- "icon-size": { "stops": [[13, 0.7], [17, 1.3]] }
- },
- "filter": ["in","symbo",
- "BALISE",
- "TOURELLE"
- ],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Ecluse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 12,
- "maxzoom": 15,
- "layout": {
- "visibility": "visible",
- "icon-image": "Ecluse",
- "icon-size": 0.2
- },
- "filter": ["==","symbo","ECLUSE_PONC"],
- "paint": {
- "icon-color": "#1C62A6"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Barrage",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 12,
- "maxzoom": 14,
- "layout": {
- "visibility": "visible",
- "icon-image": "Barrage",
- "icon-size": 0.25
- },
- "filter": ["==","symbo","BARRAGE_PONC"],
- "paint": {
- "icon-color": "#1C62A6"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Chateau d'eau",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","CHATEAU_EAU_PONC"],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 8]]
- },
- "circle-color": "#1466B2"
- }
- },
- {
- "id": "bati ponctuel hydrographique - Réservoir d'eau",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","RESERVOIR_EAU_PONC"],
- "paint": {
- "circle-radius": {
- "stops": [[14, 3], [17, 8]]
- },
- "circle-color": "#AAD5E9",
- "circle-opacity": 1,
- "circle-stroke-width": {
- "stops": [[14, 1], [17, 2.5]]
- },
- "circle-stroke-color": "#1466B2"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Constr spé",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "ConstrSpeciale",
- "icon-size": { "stops": [[13, 0.22], [17, 0.5]] }
- },
- "filter": ["in","symbo",
- "ANTENNE",
- "CONSTR_SPE_TECHNIQUE",
- "CONSTR_INDIF_PONC",
- "CHEMINEE",
- "CHEVALEMENT",
- "PUITS_GAZ",
- "PUITS_PETROLE",
- "PYLONE_METEO",
- "TORCHERE",
- "TOUR_GUET",
- "TOUR_HERTZIENNE"
- ],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Silo",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible",
- "icon-image": "Silo",
- "icon-size": { "stops": [[13, 0.22], [17, 0.5]] }
- },
- "filter": ["==","symbo","SILO_PONC"],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Eolienne",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Eolienne",
- "icon-size": { "stops": [[13, 0.4], [17, 1], [18, 0.8]] }
- },
- "filter": ["==","symbo","EOLIENNE"],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel infrastructure - Reservoir",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "maxzoom": 15,
- "layout": {
- "visibility": "visible",
- "icon-image": "Reservoir",
- "icon-size": { "stops": [[13, 0.26], [17, 0.5]] }
- },
- "filter": ["==","symbo","RESERVOIR_PONC"],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel infrastructure - pylone électrique",
- "type": "circle",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible"
- },
- "filter": ["==","symbo","PYLONE_ELEC"],
- "paint": {
- "circle-radius" : {
- "stops": [[13, 1], [17, 2]]
- },
- "circle-color" : "#000000"
- }
- },
- {
- "id": "bati ponctuel montagne - Abri",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Abri",
- "icon-size": { "stops": [[13, 0.4], [15, 0.6], [17, 0.9]] }
- },
- "filter": ["==","symbo","ABRI"],
- "paint": {
- "icon-color": "#246138"
- }
- },
- {
- "id": "bati ponctuel montagne - Refuge Garde",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Refugegard",
- "icon-size": { "stops": [[13, 0.4], [15, 0.6], [17, 0.9]] }
- },
- "filter": ["==","symbo","REFUGE_GARDE"],
- "paint": {
- "icon-color": "#246138"
- }
- },
- {
- "id": "bati ponctuel montagne - Refuge Non Garde",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Refugenongard",
- "icon-size": { "stops": [[13, 0.4], [15, 0.6], [17, 0.9]] }
- },
- "filter": ["==","symbo","REFUGE"],
- "paint": {
- "icon-color": "#246138"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aeroport FXX",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Aeroport",
- "icon-size": 0.5
- },
- "filter": ["all",
- ["==","symbo","AEROPORT_PONC"],
- ["==","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aerodrome FXX",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Aerodrome",
- "icon-size": 0.4
- },
- "filter": ["all",
- ["==","symbo","AERODROME_PONC"],
- ["==","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aeroport DOM",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "icon-image": "Aeroport",
- "icon-size": 0.5
- },
- "filter": ["all",
- ["==","symbo","AEROPORT_PONC"],
- ["!=","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel transport aerien - Aerodrome DOM",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "minzoom": 8,
- "layout": {
- "visibility": "visible",
- "icon-image": "Aerodrome",
- "icon-size": 0.4
- },
- "filter": ["all",
- ["==","symbo","AERODROME_PONC"],
- ["!=","territoire","FXX"]
- ],
- "paint": {
- "icon-color": "#646464"
- }
- },
- {
- "id": "bati ponctuel transport ferroviaire",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "bati_ponc",
- "layout": {
- "visibility": "visible",
- "icon-image": "Gare",
- "icon-size" : 0.33
- },
- "filter": ["==","symbo","GARE_VOYAGEURS"],
- "paint": {
- "icon-color": "#787878"
- }
- },
- {
- "id": "toponyme - bornes postales haute - chemins",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "CHEMIN",
- "CHEMIN_SOU",
- "CHEMIN_SUP",
- "PISTE_CYCLABLE",
- "PISTE_CYCLABLE_SOU",
- "PISTE_CYCLABLE_SUP",
- "RUE_PIETONNE",
- "RUE_PIETONNE_SOU",
- "RUE_PIETONNE_SUP",
- "SENTIER",
- "SENTIER_SOU",
- "SENTIER_SUP",
- "ESCALIER",
- "ESCALIER_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - non revetue, non classee",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "NON_CLASSEE",
- "NON_CLASSEE_4",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_RESTREINT",
- "NON_CLASSEE_RESTREINT_SUP",
- "NON_CLASSEE_SOU",
- "NON_CLASSEE_SUP",
- "NON_REVETUE_CARRO",
- "NON_REVETUE_CARRO_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.3
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - locales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "LOCALE_1",
- "LOCALE_1_SOU",
- "LOCALE_1_SUP",
- "LOCALE_2",
- "LOCALE_2_SOU",
- "LOCALE_2_SUP",
- "LOCALE_3",
- "LOCALE_3_SOU",
- "LOCALE_3_SUP",
- "LOCALE_4",
- "LOCALE_4_SOU",
- "LOCALE_4_SUP",
- "LOCALE_CONSTR",
- "LOCALE_CONSTR_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.4
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - regionales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "REGIONALE_1",
- "REGIONALE_1_SOU",
- "REGIONALE_1_SUP",
- "REGIONALE_2",
- "REGIONALE_2_SOU",
- "REGIONALE_2_SUP",
- "REGIONALE_3",
- "REGIONALE_3_SOU",
- "REGIONALE_3_SUP",
- "REGIONALE_4",
- "REGIONALE_4_SUP",
- "REGIONALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.5
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales haute - principales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "PRINCIPALE_1",
- "PRINCIPALE_1_SOU",
- "PRINCIPALE_1_SUP",
- "PRINCIPALE_2",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_3",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_4",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sur}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- -1.6
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - chemins",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "CHEMIN",
- "CHEMIN_SOU",
- "CHEMIN_SUP",
- "PISTE_CYCLABLE",
- "PISTE_CYCLABLE_SOU",
- "PISTE_CYCLABLE_SUP",
- "RUE_PIETONNE",
- "RUE_PIETONNE_SOU",
- "RUE_PIETONNE_SUP",
- "SENTIER",
- "SENTIER_SOU",
- "SENTIER_SUP",
- "ESCALIER",
- "ESCALIER_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - non revetue, non classee",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "NON_CLASSEE",
- "NON_CLASSEE_4",
- "NON_CLASSEE_4_SUP",
- "NON_CLASSEE_RESTREINT",
- "NON_CLASSEE_RESTREINT_SUP",
- "NON_CLASSEE_SOU",
- "NON_CLASSEE_SUP",
- "NON_REVETUE_CARRO",
- "NON_REVETUE_CARRO_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.3
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - locales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "LOCALE_1",
- "LOCALE_1_SOU",
- "LOCALE_1_SUP",
- "LOCALE_2",
- "LOCALE_2_SOU",
- "LOCALE_2_SUP",
- "LOCALE_3",
- "LOCALE_3_SOU",
- "LOCALE_3_SUP",
- "LOCALE_4",
- "LOCALE_4_SOU",
- "LOCALE_4_SUP",
- "LOCALE_CONSTR",
- "LOCALE_CONSTR_SUP"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.4
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - regionales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "REGIONALE_1",
- "REGIONALE_1_SOU",
- "REGIONALE_1_SUP",
- "REGIONALE_2",
- "REGIONALE_2_SOU",
- "REGIONALE_2_SUP",
- "REGIONALE_3",
- "REGIONALE_3_SOU",
- "REGIONALE_3_SUP",
- "REGIONALE_4",
- "REGIONALE_4_SUP",
- "REGIONALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.5
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - bornes postales bas - principales",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_borne",
- "minzoom": 17,
- "maxzoom": 18,
- "filter": ["in","symbo",
- "PRINCIPALE_1",
- "PRINCIPALE_1_SOU",
- "PRINCIPALE_1_SUP",
- "PRINCIPALE_2",
- "PRINCIPALE_2_SOU",
- "PRINCIPALE_2_SUP",
- "PRINCIPALE_3",
- "PRINCIPALE_3_SOU",
- "PRINCIPALE_3_SUP",
- "PRINCIPALE_4",
- "PRINCIPALE_4_SOU",
- "PRINCIPALE_4_SUP",
- "PRINCIPALE_CONSTR"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{borne_sous}",
- "text-size": 11,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-offset": [
- 0,
- 1.6
- ],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#79654F",
- "text-halo-width": 1,
- "text-halo-color": "#FFFFFF"
- }
- },
- {
- "id": "toponyme - courbe rocher maitresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["==","txt_typo","ORO_COURBE_ROCHER"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 30,
- "text-rotate": { "type": "identity", "property": "rotation" },
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#333333",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - courbe glacier maitresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["==","txt_typo","ORO_COURBE_GLACIER"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 30,
- "text-rotate": { "type": "identity", "property": "rotation" },
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#629FD9",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - courbe maitresse",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["==","txt_typo","ORO_COURBE"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 30,
- "text-rotate": { "type": "identity", "property": "rotation" },
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#604A2F",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - liaison maritime",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_liaison_lin",
- "minzoom": 8,
- "maxzoom": 18,
- "filter": ["==","txt_typo","LIAISON_MARITIME"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#5792C2",
- "text-halo-width": 5,
- "text-halo-color": "#AAD5E9"
- }
- },
- {
- "id": "toponyme bati station de métro + bati ponctuel metro",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":14,
- "filter": ["all",
- ["==","txt_typo","TYPO_E_1"],
- ["==","symbo","STATION_METRO"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-offset": [0.30, -0.25],
- "text-padding": 3,
- "text-anchor": "bottom-left",
- "text-font": ["Source Sans Pro"],
- "icon-image": "Metro",
- "icon-size": { "stops": [[15, 0.33], [17, 0.6]] }
- },
- "paint": {
- "text-color": "#3C3C3C",
- "icon-color": "#646464"
- }
- },
- {
- "id": "toponyme ferre lineaire",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ferre_lin",
- "minzoom":12,
- "filter": ["in","txt_typo",
- "FER_NOM",
- "FER_OUVRAGE"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 10,
- "text-anchor": "center",
- "text-offset": [0,-1],
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-width": 1,
- "text-halo-color": "rgba(255, 255, 255, 1)"
- }
- },
- {
- "id": "toponyme station epuration, de pompage, usine de production eau",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":14,
- "filter": ["==","txt_typo","station"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{designation}",
- "text-anchor": "left",
- "text-offset": [0.8, 0],
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#447FB3"
- }
- },
- {
- "id": "toponyme bati ponc gare",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":15,
- "filter": ["==","txt_typo","gore"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{designation}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000"
- }
- },
- {
- "id": "toponyme bati ponc barrage",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "filter": ["==","txt_typo","BARRAGE_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "left",
- "text-offset": [0.8, 0],
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#447FB3"
- }
- },
- {
- "id": "toponyme bati ponc phare - niveau 13",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "maxzoom":13,
- "filter": ["==","txt_typo","PHARE"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "right",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#532A2A"
- }
- },
- {
- "id": "toponyme bati ponc phare - niveau 14à19",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":13,
- "filter": ["all",
- ["==","symbo","PHARE"],
- ["in","txt_typo",
- "TYPO_C_6",
- "TYPO_C_7",
- "TYPO_C_8",
- "TYPO_E_GE"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "right",
- "text-size": { "stops": [[13, 12], [18, 18]] },
- "text-allow-overlap": false,
- "text-offset": [-2.00, 0],
- "text-padding": 3,
- "text-anchor": "right",
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#532A2A"
- }
- },
- {
- "id": "toponyme bati ponc autre",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "filter": ["in","txt_typo",
- "BAT_ACTIVITE",
- "BAT_FORTIF",
- "BAT_VILLAGE_DETRUIT"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#532A2A"
- }
- },
- {
- "id": "toponyme bati ponc aerogare",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":14,
- "maxzoom":17,
- "filter": ["all",
- ["==","txt_typo","TYPO_E_GE"],
- ["==","symbo","AEROGARE"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": {"stops": [[12, 9], [16, 11]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#120049",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme bati ponc aeroport 12",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":11,
- "maxzoom":12,
- "filter": ["==","txt_typo","AEROPORT_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -1.3],
- "text-size": 10.5,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#120049",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aeroport 13",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "maxzoom":13,
- "filter": ["==","txt_typo","AEROPORT_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -2],
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#120049",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aeroport",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":13,
- "maxzoom":17,
- "filter": ["all",
- ["==","txt_typo","TYPO_A_5"],
- ["==","symbo","AEROPORT"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": {"stops": [[12, 11], [16, 13]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#120049",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aerodrome 12",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":11,
- "maxzoom":12,
- "filter": ["==","txt_typo","AERODROME_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -1.3],
- "text-size": 9.5,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#120049",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aerodrome 13",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":12,
- "maxzoom":13,
- "filter": ["==","txt_typo","AERODROME_PONC"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "bottom",
- "text-offset": [0, -2],
- "text-size": 10,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#120049",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc aerodrome",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":13,
- "maxzoom":17,
- "filter": ["all",
- ["==","txt_typo","TYPO_A_7"],
- ["==","symbo","AERODROME"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-anchor": "center",
- "text-size": {"stops": [[12, 10], [16, 12]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro"]
- },
- "paint": {
- "text-color": "#120049",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - hydro ponc 5",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["in","txt_typo",
- "TYPO_D_9",
- "TYPO_D_10",
- "TYPO_E_1_cyan"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 11], [17, 14]]},
- "text-allow-overlap": true,
- "text-padding": 5,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - hydro ponc glacier",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["==","txt_typo","ORO_GLACIER_2"],
- "layout": {
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 14,
- "text-anchor": "center",
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - limite militaire ponc 3 et 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "filter": ["in","txt_typo",
- "LIM_MILI_3",
- "LIM_MILI_4"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 12,
- "text-allow-overlap": false,
- "text-padding": 2,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#0D2000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - limite parc ponc 3 et 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "filter": ["in","txt_typo",
- "LIM_PARC_3",
- "LIM_PARC_4",
- "RESERVE_NATURELLE_PONC"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": false,
- "text-padding": 2,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme numéro de route - départementale",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_numero_lin",
- "minzoom":11,
- "maxzoom":16,
- "filter": ["==","txt_typo","Départementale"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 10.5,
- "text-allow-overlap": false,
- "text-padding": 2,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Semibold"],
- "text-rotation-alignment": "viewport"
- },
- "paint": {
- "text-color": "#4D4D4D",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme numéro de route - nationale",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_numero_lin",
- "minzoom":7,
- "maxzoom":16,
- "filter": ["==","txt_typo","Nationale"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 12,
- "text-allow-overlap": false,
- "text-padding": 0,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Regular"],
- "icon-image": "Ecluse",
- "icon-rotation-alignment": "viewport",
- "text-rotation-alignment": "viewport",
- "icon-text-fit": "both",
- "icon-size": 0
- },
- "paint": {
- "text-color": "#F0F0F0",
- "icon-color": "#646464",
- "text-halo-color": "rgba(80, 80, 80, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme numéro de route - autoroute",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_numero_lin",
- "minzoom":7,
- "maxzoom":16,
- "filter": ["==","txt_typo","Autoroute"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 0,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Regular"],
- "icon-image": "Ecluse",
- "icon-rotation-alignment": "viewport",
- "text-rotation-alignment": "viewport",
- "icon-text-fit": "both",
- "icon-size": 0
- },
- "paint": {
- "text-color": "#F0F0F0",
- "icon-color": "#646464",
- "text-halo-color": "rgba(80, 80, 80, 0.5)",
- "text-halo-width": 5
- }
- },
- {
- "id": "toponyme - odonyme abrégé",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_odonyme_lin",
- "minzoom": 15,
- "maxzoom":17,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{nom_gauche}",
- "text-size": 10,
- "text-anchor": "center",
- "text-max-angle": 30,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 1)"
- }
- },
- {
- "id": "toponyme - odonyme desabrégé",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_routier_odonyme_lin",
- "minzoom": 17,
- "layout": {
- "symbol-placement": "line",
- "text-field": "{nom_desabrege}",
- "text-size": 11,
- "text-anchor": "center",
- "text-max-angle": 30,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 1)"
- }
- },
- {
- "id": "toponyme - lieu dit non habité 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","LIEU-DIT_NON_HABITE"],
- ["in","txt_typo",
- "TYPO_B_10",
- "TYPO_B_11"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - bois",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_10",
- "TYPO_F_11"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - oro lineaire 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_SOMMET_3",
- "ORO_GORGE_2"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 11,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["in","txt_typo",
- "ORO_SOMMET_3",
- "ORO_GORGE_2",
- "GROTTE",
- "GORGE",
- "TYPO_G_9",
- "TYPO_G_10"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 11], [16, 16]]},
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1.5
- }
- },
- {
- "id": "toponyme - hydro ponc 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["in","txt_typo",
- "lac - étang - bassin",
- "HYD_SURF_4",
- "HYD_SURF_4_T",
- "HYD_SURF_5",
- "HYD_SURF_5_T",
- "TYPO_D_8",
- "SOURCE"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 13], [17, 16]]},
- "text-allow-overlap": true,
- "text-padding": 5,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme quartier ",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "filter": ["in","txt_typo",
- "BAT_QUARTIER",
- "BAT_QUARTIER_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA10",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["==","txt_typo","TYPO_A_10"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 11], [17, 13.5]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - lieu dit non habité",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","LIEU-DIT_NON_HABITE"],
- ["in","txt_typo",
- "TYPO_B_7",
- "TYPO_B_8",
- "TYPO_B_9"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 12,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - bois 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_7",
- "TYPO_F_8",
- "TYPO_F_9"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 16,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite hameau ",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 11,
- "maxzoom": 13,
- "filter": ["in","txt_typo",
- "BAT_HAMEAU",
- "BAT_HAMEAU_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.17,
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite importance 5",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 9,
- "filter": ["in","txt_typo",
- "commune 5",
- "BAT_COMMUNE_5",
- "BAT_COMMUNE_5_T",
- "BAT_CHEF_LIEU_COM",
- "BAT_CHEF_LIEU_COM_T",
- "BAT_CHEF_LIEU_COM-T",
- "BAT_ANCIENNE_COM",
- "BAT_ANCIENNE_COM_T",
- "BAT_COMMUNE_ASSOCIEE",
- "BAT_COMMUNE_ASSOCIEE_T",
- "Commune très petite"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.21,
- "text-field": "{texte}",
- "text-size": 11.5,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - ocs lineaire 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_lin",
- "filter": ["==","txt_typo","OCS_FORET_3"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 12], [12, 15]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-width": 1,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - lieu dit non habité 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","LIEU-DIT_NON_HABITE"],
- ["in","txt_typo",
- "TYPO_B_5",
- "TYPO_B_4"
-
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - bois 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_5",
- "TYPO_F_4"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 19,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - bois 0",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["all",
- ["==","symbo","BOIS"],
- ["in","txt_typo",
- "TYPO_F_3",
- "TYPO_F_2"
- ]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 22,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - ocs ponc 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["==","txt_typo","OCS_FORET_3"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 12], [12, 15]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 1
- }
- },
- {
- "id": "toponyme - oro lineaire 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_ILE_3",
- "ORO_RELIEF_3",
- "ORO_RELIEF_3_T",
- "ORO_RELIEF_4",
- "ORO_RELIEF_4_T",
- "ORO_CAP_2",
- "ORO_CAP_3",
- "ORO_SOMMET_2",
- "ORO_COL_2",
- "ORO_GORGE_1",
- "ORO_GORGE-1"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 12,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "filter": ["in","txt_typo",
- "ORO_ILE_3",
- "ORO_RELIEF_3",
- "ORO_RELIEF_3_T",
- "ORO_RELIEF_4",
- "ORO_RELIEF_4_T",
- "ORO_CAP_2",
- "ORO_CAP_3",
- "ORO_SOMMET_2",
- "ORO_COL_2",
- "ORO_GORGE_1",
- "ORO_GORGE-1",
- "TYPO_G_7",
- "TYPO_G_8"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[13, 12], [16, 17]]},
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 1.5
- }
- },
- {
- "id": "toponyme - hydro lineaire 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "HYD_LIN_3",
- "HYD_LIN_4",
- "HYD_LIN_5",
- "petite rivière",
- "canal",
- "HYD_SURF_3",
- "HYD_SURF_3_T",
- "HYD_SURF_4",
- "HYD_SURF_4_T",
- "HYD_SURF_5",
- "HYD_SURF_5_T",
- "TYPO_D_5"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 12], [18, 19]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.7)"
- }
- },
- {
- "id": "toponyme - hydro lineaire 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "minzoom":14,
- "filter": ["in","txt_typo",
- "TYPO_D_6",
- "TYPO_D_8",
- "TYPO_D_9",
- "TYPO_D_10"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 10], [18, 16]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-width": 1.5,
- "text-halo-color": "rgba(255, 255, 255, 0.7)"
- }
- },
- {
- "id": "toponyme - hydro ponc 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "filter": ["in","txt_typo",
- "petit golfe",
- "grande baie",
- "baie",
- "HYD_SURF_3",
- "TYPO_D_5",
- "TYPO_D_6",
- "TYPO_D_7"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 15], [17, 18]]},
- "text-allow-overlap": true,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme bati ponc zai zoom 16",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":15,
- "maxzoom":16,
- "filter": ["==","txt_typo","zai"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{designation}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000"
- }
- },
- {
- "id": "toponyme bati ponc zai zoom 17 et 18",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_bati_ponc",
- "minzoom":16,
- "filter": ["==","txt_typo","zai"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#000000"
- }
- },
- {
- "id": "toponyme localite importance 4",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 7,
- "filter": ["in","txt_typo",
- "commune 4",
- "BAT_COMMUNE_4",
- "BAT_COMMUNE_4_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.21,
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA9",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["==","txt_typo","TYPO_A_9"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 11.5], [17, 14]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA8",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["==","txt_typo","TYPO_A_8"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 12], [17, 15]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - limite militaire ponc 1 et 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "filter": ["in","txt_typo",
- "LIM_MILI_1",
- "LIM_MILI_2"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 5,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#0D2000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - limite parc marin",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "minzoom": 8,
- "filter": ["==","txt_typo","LIM_PARC_NATUREL_MARIN"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 10,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#2A81A2",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - limite parc ponc 1 et 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_limite_ponc",
- "minzoom":8,
- "filter": ["in","txt_typo",
- "LIM_PARC_1",
- "LIM_PARC_2",
- "LIM_PARC_NATUREL"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 10,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - ocs lineaire 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_lin",
- "filter": ["==","txt_typo","OCS_FORET_2"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 15], [12, 18]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - ocs ponc 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["==","txt_typo","OCS_FORET_2"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 15], [12, 18]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-anchor": "center",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro lineaire 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_ILE_2",
- "ORO_RELIEF_2",
- "ORO_RELIEF_2_T",
- "ORO_CAP_1",
- "ORO_SOMMET_1"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-padding": 10,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom":9,
- "filter": ["in","txt_typo",
- "ORO_ILE_2",
- "ORO_RELIEF_2",
- "ORO_RELIEF_2_T",
- "ORO_CAP_1",
- "ORO_COL_1",
- "sommet ou col",
- "ORO_SOMMET_1",
- "TYPO_G_4",
- "TYPO_G_6"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[9, 13], [10, 15], [13, 15], [16, 19]]},
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro ponc 2B",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom":8,
- "filter": ["in","txt_typo",
- "île",
- "cap ou pointe"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - hydro lineaire 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "HYD_LIN_2",
- "rivière moyenne",
- "HYD_SURF_2",
- "HYD_SURF_2_T",
- "TYPO_D_3"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[14, 15], [18, 21]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro ponc 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "minzoom": 5,
- "filter": ["in","txt_typo",
- "moyen",
- "golfe moyen",
- "HYD_SURF_2",
- "TYPO_D_2",
- "TYPO_D_3",
- "TYPO_D_4"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[5, 12], [6, 18], [10, 17], [18, 21]]},
- "text-allow-overlap": false,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-color": "#FFFFFF",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite importance 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 5,
- "filter": ["in","txt_typo",
- "commune 3",
- "BAT_COMMUNE_3",
- "BAT_COMMUNE_3_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.21,
- "text-field": "{texte}",
- "text-size": {"stops": [[5, 10], [6, 15]]},
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.10],
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA7 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_7"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 13], [17, 16]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA6 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_6"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 15], [17, 18]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro lineaire 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_lin",
- "filter": ["in","txt_typo",
- "ORO_ILE_1",
- "ORO_RELIEF_1",
- "ORO_RELIEF_1_T"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 20,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-padding": 5,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - oro ponc monde",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom": 5,
- "filter": ["in","txt_typo",
- "Basin",
- "Depression",
- "Desert",
- "Geoarea",
- "Gorge",
- "Isthmus",
- "Lake",
- "Lowland",
- "Pen/cape",
- "Plain",
- "Plateau",
- "Range/mtn",
- "Tundra",
- "Valley",
- "Island",
- "Island group"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 11,
- "text-allow-overlap": false,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA4 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_4"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 17,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme - ocs lineaire 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_lin",
- "filter": ["==","txt_typo","OCS_FORET_1"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 18], [12, 22]]},
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-padding": 1,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - ocs ponc 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_ocs_ponc",
- "filter": ["==","txt_typo","OCS_FORET_1"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[10, 18], [12, 22]]},
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#287B00",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - oro ponc 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_oro_ponc",
- "minzoom":8,
- "filter": ["in","txt_typo",
- "grande île",
- "ORO_ILE_1",
- "ORO_RELIEF_1",
- "ORO_RELIEF_1_T",
- "TYPO_G_3",
- "TYPO_G_2",
- "TYPO_G_1"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 21,
- "text-allow-overlap": true,
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#863831",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme - hydro lineaire glacier",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "ORO_GLACIER_1",
- "ORO_GLACIER_2"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 15,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-font": ["Source Sans Pro Italic"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro lineaire 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["in","txt_typo",
- "HYD_LIN_1",
- "HYD-LIN-1",
- "grande rivière",
- "HYD_SURF_1",
- "HYD_SURF_1_T",
- "TYPO_D_1",
- "TYPO_D_2"
- ],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 18,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-width": 2,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro lineaire ocean",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_lin",
- "filter": ["==","txt_typo","mer et océan"],
- "layout": {
- "symbol-placement": "line",
- "text-field": "{texte}",
- "text-size": 30,
- "text-anchor": "center",
- "text-keep-upright": true,
- "text-max-angle": 45,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-width": 4,
- "text-halo-color": "rgba(255, 255, 255, 0.5)"
- }
- },
- {
- "id": "toponyme - hydro ponc 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "minzoom": 4,
- "filter": ["in","txt_typo",
- "mer",
- "grand",
- "grand golfe",
- "HYD_SURF_1",
- "TYPO_D_1"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[4, 16], [6, 30], [10, 25]]},
- "text-allow-overlap": true,
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite importance 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 4,
- "filter": ["in","txt_typo",
- "commune 2",
- "BAT_COMMUNE_2",
- "BAT_COMMUNE-2",
- "BAT_COMMUNE_2_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.25,
- "text-field": "{texte}",
- "text-size": {"stops": [[4, 10], [6, 17]]},
- "text-allow-overlap": true,
- "text-anchor": "bottom-left",
- "text-offset": [0.30, 0.2],
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": {"stops": [[1, ["Source Sans Pro Regular"]], [7, ["Source Sans Pro Bold"]], [10, ["Source Sans Pro Regular"]]]}
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA3 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_3"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 19,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA2 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_2"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 21,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite n0 typoA7 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_7"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 13], [17, 16]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA6 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 18,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_6"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[15, 15], [17, 18]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 2
- }
- },
- {
- "id": "toponyme localite n0 typoA1 non commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["!=","symbo","COMMUNE_FUSIONNEE"],
- ["!=","symbo","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_1"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 23,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite n0 typoA4 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_4"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 17,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA3 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_3"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 19,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 3
- }
- },
- {
- "id": "toponyme localite n0 typoA2 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_2"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 21,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite importance 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 3,
- "filter": ["in","txt_typo",
- "commune 1",
- "BAT_COMMUNE_1",
- "BAT_COMMUNE_1_T"
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "icon-image": "Localite",
- "icon-size": 0.3,
- "text-field": "{texte}",
- "text-size": {"stops": [[3, 10], [6, 20]]},
- "text-allow-overlap": false,
- "text-anchor": "bottom-left",
- "text-offset": [0.25, -0.10],
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": {"stops": [[1, ["Source Sans Pro Regular"]], [7, ["Source Sans Pro Bold"]], [10, ["Source Sans Pro Regular"]]]}
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme localite n0 typoA1 commune",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 16,
- "filter": ["all",
- ["in","symbo","COMMUNE_FUSIONNEE","COMMUNE_CHEF_LIEU"],
- ["==","txt_typo","TYPO_A_1"]
- ],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": 23,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#000000",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme - hydro ponc ocean",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_hydro_ponc",
- "minzoom": 1,
- "filter": ["==","txt_typo","ocean"],
- "layout": {
- "visibility": "visible",
- "symbol-placement": "point",
- "text-field": "{texte}",
- "text-size": {"stops": [[1, 16], [6, 30]]},
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 10,
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#447FB3",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme pays 3",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 4,
- "maxzoom": 5,
- "filter": ["==","txt_typo","pays 3"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 9,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme pays 2",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 2,
- "maxzoom": 5,
- "filter": ["==","txt_typo","pays 2"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 2,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme pays 1",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "minzoom": 2,
- "maxzoom": 5,
- "filter": ["==","txt_typo","pays 1"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 13,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 2,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Regular"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- },
- {
- "id": "toponyme continent",
- "type": "symbol",
- "source": "plan_ign",
- "source-layer": "toponyme_localite_ponc",
- "maxzoom": 3,
- "filter": ["==","txt_typo","continent"],
- "layout": {
- "visibility": "visible",
- "text-field": "{texte}",
- "text-size": 15,
- "text-allow-overlap": true,
- "text-anchor": "center",
- "text-padding": 1,
- "text-transform": "uppercase",
- "text-font": ["Source Sans Pro Bold"]
- },
- "paint": {
- "text-color": "#787878",
- "text-halo-color": "rgba(255, 255, 255, 0.5)",
- "text-halo-width": 4
- }
- }
- ]
-}
\ No newline at end of file
+{
+ "version": 8,
+ "name": "PLAN IGN",
+ "sources": {
+ "plan_ign": {
+ "type": "vector",
+ "url": "https://wxs.ign.fr/choisirgeoportail/geoportail/tms/1.0.0/PLAN.IGN/metadata.json"
+ }
+ },
+ "sprite": "https://wxs.ign.fr/static/vectorTiles/styles/PLAN.IGN/sprite/PlanIgn",
+ "transition": {"duration": 300, "delay": 0},
+ "layers": [
+ {
+ "id": "bckgrd",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "fond_opaque",
+ "minzoom": 0,
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 0m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_0"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#D6E5BA", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 100m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_100"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#F7F2DA", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 200m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_200"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#EBDEBF", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 1000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_1000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DABE97", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 3000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_3000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#B28773", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 4000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_4000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#9E6A54", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - 5000m",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "HYPSO_5000"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#773A2B", "fill-opacity": 1}
+ },
+ {
+ "id": "orographie : relief - glacier",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "oro_relief",
+ "minzoom": 0,
+ "filter": ["==", ["get", "symbo"], "GLACIER"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-opacity": 0.7}
+ },
+ {
+ "id": "ocs - vegetation - zone boiséee, foret fermee, peupleraie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "ZONE_BOISEE",
+ "ZONE_FORET_FERMEE_CONI",
+ "ZONE_FORET_FERMEE_FEUIL",
+ "ZONE_FORET_FERMEE_MIXTE",
+ "ZONE_PEUPLERAIE"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DFE8D5", "fill-outline-color": "#DFE8D5"}
+ },
+ {
+ "id": "ocs - vegetation - forêt ouverte",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["ZONE_FORET_OUVERTE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#EDF2D9", "fill-outline-color": "#EDF2D9"}
+ },
+ {
+ "id": "ocs - vegetation - lande ligneuse",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_LANDE_LIGNEUSE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#F2EECD"}
+ },
+ {
+ "id": "ocs - vegetation - vigne",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_VIGNE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFEDD9"}
+ },
+ {
+ "id": "ocs - vegetation - verger",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_VERGER"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FAE2C5"}
+ },
+ {
+ "id": "ocs - vegetation - canne à sucre, bananeraie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_CANNE_BANANE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FAEDFA"}
+ },
+ {
+ "id": "hydro surfacique - Estran",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "hydro_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_D_ESTRAN"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#C3DDE9", "fill-outline-color": "#C3DDE9"}
+ },
+ {
+ "id": "ocs - vegetation - mangrovre",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_MANGROVE"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#85CCCB",
+ 10,
+ "#90CCCB"
+ ]
+ }
+ },
+ {
+ "id": "ocs - vegetation - marais",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_MARAIS"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Marais"}
+ },
+ {
+ "id": "ocs - vegetation - marais salant",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_vegetation_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_MARAIS_SALANT"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "MaraisSalant"}
+ },
+ {
+ "id": "ocs - Zone",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_ROCHEUSE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#D0D0D0", "fill-opacity": 0.3}
+ },
+ {
+ "id": "ocs - Zone sable sec",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_SABLE_SEC"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Sable"}
+ },
+ {
+ "id": "ocs - Zone sable humide",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FOND_CUVETTE_HUMIDE", "ZONE_SABLE_HUMIDE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "SableHumide"}
+ },
+ {
+ "id": "ocs - Zone graviers galets secs",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "GRAVIERS_GALETS_SEC"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "GravierSec"}
+ },
+ {
+ "id": "ocs - Zone graviers galets humides",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "GRAVIERS_GALETS_HUM"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Gravier"}
+ },
+ {
+ "id": "ocs - Zone rocher hydro",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_ROCHER_HYDRO"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "RocherHydro"}
+ },
+ {
+ "id": "ocs - Zone glacier",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "ocs_nature_sol_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_GLACIER"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-pattern": "Glacier",
+ "fill-opacity": ["interpolate", ["linear"], ["zoom"], 10, 0.5, 12, 0.3]
+ }
+ },
+ {
+ "id": "zone batie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zone_surf",
+ "minzoom": 7,
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "ZONE_BATI"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#E8E2D1",
+ "fill-opacity": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 0.9,
+ 14,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "zone d'activité",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zone_surf",
+ "filter": ["==", ["get", "symbo"], "ZONE_INDUS_ACTI"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#D9D9D9"}
+ },
+ {
+ "id": "oro - courbe et cuvette maitresse",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_MAITRESSE", "CUVETTE_MAITRESSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#D9C8A9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.7, 15, 2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_NORMALE", "CUVETTE_NORMALE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#D9C8A9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 1.2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette intercalaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_INTERCALAIRE", "CNV_SS_INTERCALAIRE", "CUVETTE_INTERCAL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#D9C8A9",
+ "line-width": 0.7,
+ "line-dasharray": [20, 7]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette glacier maitresse",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_MAITRESSE", "CUV_GLACIER_MAITRESSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A4BFD9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.7, 15, 2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette glacier normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_NORMALE", "CUV_GLACIER_NORMALE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A4BFD9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 1.2]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette glacier intercalaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_INTERCAL", "CUV_GLACIER_INTERCAL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#A4BFD9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 15, 0.9],
+ "line-dasharray": [20, 7]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette rocher maitresse",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_MAITRESSE", "CUV_ROCHER_MAITRESSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#AAAAAA", "line-width": 1.7}
+ },
+ {
+ "id": "oro - courbe et cuvette rocher normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_NORMALE", "CUV_ROCHER_NORMALE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#AAAAAA", "line-width": 1}
+ },
+ {
+ "id": "oro - courbe et cuvette rocher intercalaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_INTERCAL", "CUV_ROCHER_INTERCAL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAAAAA",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 15, 0.9],
+ "line-dasharray": [20, 7]
+ }
+ },
+ {
+ "id": "oro - courbe et cuvette bathymetrique",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CNV_BATHYMETRIQUE", "CUV_BATHYMETRIQUE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#0000FF", "line-width": 1}
+ },
+ {
+ "id": "oro lin - talus",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_lin",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "TALUS"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#D9C8A9", "line-width": 1}
+ },
+ {
+ "id": "oro lin - talus - trait perpendiculaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "oro_lin",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "TALUS"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#D9C8A9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 14, 7, 16, 9],
+ "line-dasharray": [0.1, 1],
+ "line-translate": [0, 4]
+ }
+ },
+ {
+ "id": "toponyme - cote de courbe normale",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "minzoom": 13,
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "texte"], "0"],
+ ["==", ["get", "hors_zone"], "true"],
+ [
+ "match",
+ ["get", "symbo"],
+ ["CNV_MAITRESSE", "CUVETTE_MAITRESSE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10, 15, 13],
+ "text-anchor": "center",
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-keep-upright": false,
+ "text-max-angle": 20,
+ "text-max-width": 100,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#604A2F",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - cote de courbe rocher",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "minzoom": 13,
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "texte"], "0"],
+ ["==", ["get", "hors_zone"], "true"],
+ [
+ "match",
+ ["get", "symbo"],
+ ["CNV_ROCHER_MAITRESSE", "CUV_ROCHER_MAITRESSE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10, 15, 13],
+ "text-anchor": "center",
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-keep-upright": false,
+ "text-max-angle": 20,
+ "text-max-width": 100,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#333333",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - cote de courbe glacier",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_courbe",
+ "minzoom": 13,
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "texte"], "0"],
+ ["==", ["get", "hors_zone"], "true"],
+ [
+ "match",
+ ["get", "symbo"],
+ ["CNV_GLACIER_MAITRESSE", "CUV_GLACIER_MAITRESSE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10, 15, 13],
+ "text-anchor": "center",
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-keep-upright": false,
+ "text-max-angle": 20,
+ "text-max-width": 100,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#629FD9",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "hydro surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "hydro_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BASSIN", "SURFACE_D_EAU", "ZONE_MARINE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#AAD5E9", "fill-outline-color": "#AAD5E9"}
+ },
+ {
+ "id": "hydro surfacique temporaire",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "hydro_surf",
+ "filter": ["==", ["get", "symbo"], "SURFACE_D_EAU_TEMP"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "rgba(168, 203, 220, 0.5)"}
+ },
+ {
+ "id": "réseau hydro - cours d'eau souterrain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["COURS_D_EAU_MOY_SOU", "COURS_D_EAU_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.5, 17, 6.5],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "réseau hydro - filet interieur - aqueduc souterrain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.4,
+ 16,
+ 3.5,
+ 17,
+ 5.9
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "réseau hydro - carre - aqueduc souterrain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sou",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 3.5,
+ 16,
+ 8.7,
+ 17,
+ 14.7
+ ],
+ "line-dasharray": [1, 5]
+ }
+ },
+ {
+ "id": "Ferre souterrain - voie normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SOU", "VF_2_SOU", "VF_ELEC_1_SOU", "VF_FERRO_ROUTIER_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.8, 17, 2.5]
+ }
+ },
+ {
+ "id": "Ferre souterrain - trait perpendic épais",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SOU", "VF_2_SOU", "VF_ELEC_1_SOU", "VF_FERRO_ROUTIER_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre souterrain - voie etroite",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SOU", "VF_ETROITE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre souterrain - trait perpendic fin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SOU", "VF_ETROITE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre souterrain - voie service",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_NON_EXPLOITEE_SOU", "VF_SERVICE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [5, 2, 1, 2]
+ }
+ },
+ {
+ "id": "Ferre souterrain - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SOU", "TRANSPORT_URBAIN_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre souterrain - 2 trait perpendic - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SOU", "TRANSPORT_URBAIN_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B4B4B4",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 17],
+ "line-dasharray": [0.1, 0.2, 0.1, 10]
+ }
+ },
+ {
+ "id": "Chemin souterrain - piste cyclable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PISTE_CYCLABLE_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AB81CC",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.1,
+ 15,
+ 1.7,
+ 16,
+ 2,
+ 17,
+ 3.5
+ ],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "Chemin souterrain - filet exterieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B3989A",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.75,
+ 15,
+ 3,
+ 16,
+ 4.2,
+ 17,
+ 9.5
+ ]
+ }
+ },
+ {
+ "id": "Chemin souterrain - filet interieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.9,
+ 16,
+ 2.7,
+ 17,
+ 5.8
+ ],
+ "line-dasharray": [1, 0.2]
+ }
+ },
+ {
+ "id": "Chemin souterrain - Rue pietonne",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "RUE_PIETONNE_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B3989A",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ],
+ "line-dasharray": [1, 3]
+ }
+ },
+ {
+ "id": "Chemin souterrain - sentier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "SENTIER_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B3989A",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ],
+ "line-dasharray": [4, 3]
+ }
+ },
+ {
+ "id": "Chemin souterrain - chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "CHEMIN_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B3989A",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AFAFAF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SOU",
+ "BRET_AUTO_LIBRE_2_SOU",
+ "BRET_AUTO_LIBRE_3_SOU",
+ "BRET_AUTO_PEAGE_1_SOU",
+ "BRET_AUTO_PEAGE_2_SOU",
+ "BRET_AUTO_PEAGE_3_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(222, 70, 14, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 2.5,
+ 14,
+ 3.7,
+ 15,
+ 6.8,
+ 16,
+ 8.4,
+ 17,
+ 14
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AFAFAF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SOU", "NON_CLASSEE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AFAFAF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SOU",
+ "LOCALE_1_SOU",
+ "LOCALE_2_SOU",
+ "LOCALE_3_SOU",
+ "LOCALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(130, 130, 130, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SOU",
+ "REGIONALE_1_SOU",
+ "REGIONALE_2_SOU",
+ "REGIONALE_3_SOU",
+ "REGIONALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(130, 130, 130, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 7,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SOU",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(222, 70, 14, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 7,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SOU", "AUTOROU_PEAGE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(222, 70, 14, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet extérieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#DCDCDC",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SOU",
+ "BRET_AUTO_LIBRE_2_SOU",
+ "BRET_AUTO_LIBRE_3_SOU",
+ "BRET_AUTO_PEAGE_1_SOU",
+ "BRET_AUTO_PEAGE_2_SOU",
+ "BRET_AUTO_PEAGE_3_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.5,
+ 14,
+ 2.6,
+ 15,
+ 5.2,
+ 16,
+ 6.7,
+ 17,
+ 10.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#F2F5FF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SOU", "NON_CLASSEE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#DCDCDC",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SOU",
+ "LOCALE_1_SOU",
+ "LOCALE_2_SOU",
+ "LOCALE_3_SOU",
+ "LOCALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.3,
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.1,
+ 17,
+ 13.1
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#FCF4A8",
+ 17,
+ "#FCF7C1"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SOU",
+ "REGIONALE_1_SOU",
+ "REGIONALE_2_SOU",
+ "REGIONALE_3_SOU",
+ "REGIONALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.4,
+ 9,
+ 1.5,
+ 14,
+ 3.2,
+ 15,
+ 5.8,
+ 16,
+ 8.3,
+ 17,
+ 16.2
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FDF28B",
+ 17,
+ "#FCF6BD"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.4,
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SOU",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_4_SOU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.1,
+ 14,
+ 4.4,
+ 15,
+ 7.3,
+ 16,
+ 10,
+ 17,
+ 18.5
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F3C66D",
+ 17,
+ "#F2DDB3"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SOU", "AUTOROU_PEAGE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 0.5)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 2.7,
+ 14,
+ 5.8,
+ 15,
+ 9,
+ 16,
+ 12,
+ 17,
+ 20.8
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - axe central - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SOU", "AUTOROU_PEAGE_SOU"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Routier souterrain - filet interieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F2BA59",
+ 17,
+ "#F2C261"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier souterrain - axe central - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sou",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SOU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#808080",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau temporaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["COURS_D_EAU_TEMP", "COURS_D_EAU_TEMP_MOY"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.5, 17, 4],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "minzoom": 3,
+ "filter": ["==", ["get", "symbo"], "COURS_D_EAU"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.3,
+ 7,
+ 1.5,
+ 12,
+ 1.5,
+ 17,
+ 6.5
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - canal",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": ["==", ["get", "symbo"], "CANAL"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.4, 17, 5.9]
+ }
+ },
+ {
+ "id": "réseau hydro - filet interieur - aqueduc",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_AU_SOL"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.4,
+ 16,
+ 3.5,
+ 17,
+ 5.9
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - carre - aqueduc",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_AU_SOL"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 3.5,
+ 16,
+ 8.7,
+ 17,
+ 14.7
+ ],
+ "line-dasharray": [1, 5]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau moyen ",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": ["==", ["get", "symbo"], "COURS_D_EAU_MOY"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 7, 2, 12, 2.5]
+ }
+ },
+ {
+ "id": "réseau hydro - cours d'eau large ",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau",
+ "filter": ["==", ["get", "symbo"], "COURS_D_EAU_LAR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 7, 3, 11, 5]
+ }
+ },
+ {
+ "id": "parcellaire - parcelle surface",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "parcellaire_parcelle",
+ "filter": ["==", ["get", "symbo"], "PARCELLE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFD1", "fill-opacity": 0.7}
+ },
+ {
+ "id": "bati surfacique mairie - Zoom 14",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["MAIRIE", "MAIRIE_ANNEXE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFA6A6"}
+ },
+ {
+ "id": "bati surfacique mairie - Zoom 15,16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["MAIRIE", "MAIRIE_ANNEXE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#FFA6A6",
+ 15,
+ "#FFAEAE"
+ ],
+ "fill-outline-color": "#FF7C7C"
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 14,15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BATI_COMMERCIAL",
+ "BATI_INDUSTRIEL",
+ "HANGAR",
+ "HANGAR_COMMERCIAL",
+ "HANGAR_INDUSTRIEL"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#C8C8C8"}
+ },
+ {
+ "id": "bati surfacique fonctionnel industriel ou commercial - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BATI_COMMERCIAL",
+ "BATI_INDUSTRIEL",
+ "HANGAR",
+ "HANGAR_COMMERCIAL",
+ "HANGAR_INDUSTRIEL"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#D1D1D1",
+ 16,
+ "#E6E6E6"
+ ],
+ "fill-outline-color": "#B8B8B8"
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel public - Zoom 14,15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BATI_PUBLIC", "HANGAR_PUBLIC"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#B9B6D6"}
+ },
+ {
+ "id": "bati surfacique fonctionnel public - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BATI_PUBLIC", "HANGAR_PUBLIC"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#CFC5DE",
+ 16,
+ "#E4DAF3"
+ ],
+ "fill-outline-color": "#A6A1D6"
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel sportif - bordure",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_SPORTIF"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#BCD9AB", "line-width": 4}
+ },
+ {
+ "id": "bati surfacique fonctionnel sportif",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "BATI_SPORTIF"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#C9E1DD",
+ 15,
+ "#DCE6E4"
+ ]
+ }
+ },
+ {
+ "id": "bati surfacique fonctionnel gare - Zoom 14,15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_GARE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#B3B5F5"}
+ },
+ {
+ "id": "bati surfacique fonctionnel gare - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_GARE"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#BFC1F5",
+ 16,
+ "#CBCDF5"
+ ],
+ "fill-outline-color": "#9B9EF6"
+ }
+ },
+ {
+ "id": "bati surfacique quelconque - Zoom 15",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_QQUE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#D6C6B8"}
+ },
+ {
+ "id": "bati surfacique quelconque - Zoom 16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "BATI_QQUE"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ "#E6E0CF",
+ 16,
+ "#F1EBD9"
+ ],
+ "fill-outline-color": "#C3AA8E"
+ }
+ },
+ {
+ "id": "cimetiere surfacique 1",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CIMETIERE_MILI_SURF", "CIMETIERE_SURF", "NECROPOLE_NATIONALE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#F0F0F0",
+ "fill-opacity": 0.5,
+ "fill-outline-color": "#818181"
+ }
+ },
+ {
+ "id": "cimetiere surfacique 2",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CIMETIERE_MILI_SURF", "CIMETIERE_SURF", "NECROPOLE_NATIONALE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "Cimetiere"}
+ },
+ {
+ "id": "bati hydro surfacique - Autre",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["ECLUSE_SURF", "RESERVOIR_EAU_SURF"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#ADCCD9", "fill-outline-color": "#336699"}
+ },
+ {
+ "id": "bati hydro surfacique - Pecherie",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "PECHERIE_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#BFE2F0", "fill-outline-color": "#509FEF"}
+ },
+ {
+ "id": "bati hydro surfacique - Barrage",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "BARRAGE_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-outline-color": "#464646"}
+ },
+ {
+ "id": "bati hydro surfacique - Chateau d'eau",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "CHATEAU_EAU_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#1466B2"}
+ },
+ {
+ "id": "bati infra surfacique - Silo",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 15,
+ "filter": ["==", ["get", "symbo"], "SILO_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#C7A9AA", "fill-outline-color": "#696969"}
+ },
+ {
+ "id": "bati infra surfacique - Reservoir indus",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "RESERVOIR_INDUS_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#8D9DAA", "fill-outline-color": "#464646"}
+ },
+ {
+ "id": "bati infra surfacique - Serre",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": ["match", ["get", "symbo"], ["SERRE_SURF"], true, false],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#CAD6D9", "fill-outline-color": "#8C8C8C"}
+ },
+ {
+ "id": "bati infra surfacique - poste electrique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["match", ["get", "symbo"], ["POSTE_ELEC_SURF"], true, false],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#7993B6", "fill-opacity": 0.3}
+ },
+ {
+ "id": "bati infra surfacique - poste electrique bord",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": ["==", ["get", "symbo"], "POSTE_ELEC_SURF"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#000000",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 0.3, 17, 1.2]
+ }
+ },
+ {
+ "id": "bati religieux surfacique - Zoom 14",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "maxzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "AUTRE_CULTE_SURF",
+ "CHAPELLE_SURF",
+ "CHRETIEN_SURF",
+ "EGLISE_SURF",
+ "MOSQUEE_SURF",
+ "SYNAGOGUE_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#F7CBCB"}
+ },
+ {
+ "id": "bati religieux surfacique - Zoom 15,16,17,18",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "AUTRE_CULTE_SURF",
+ "CHAPELLE_SURF",
+ "CHRETIEN_SURF",
+ "EGLISE_SURF",
+ "MOSQUEE_SURF",
+ "SYNAGOGUE_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#F7CBCB",
+ 15,
+ "#F7E1E1"
+ ],
+ "fill-outline-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ "#F7A8A8",
+ 15,
+ "#F7B7B7"
+ ]
+ }
+ },
+ {
+ "id": "bati remarquable surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "ARC_TRIOMPHE_SURF",
+ "ARENE_THEATRE",
+ "CHATEAU_SURF",
+ "FORTIF_SURF",
+ "MONUMENT_SURF",
+ "TOUR_MOULIN_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#9B9B9B", "fill-outline-color": "#6E6E6E"}
+ },
+ {
+ "id": "bati sportif surfacique fond",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "FOOT_SURF",
+ "MULTI_SPORT_SURF",
+ "NATATION_SURF",
+ "PISTE_SPORT_SURF",
+ "SPORT_INDIF_SURF",
+ "TENNIS_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-outline-color": "#FFFFFF"}
+ },
+ {
+ "id": "bati sportif surfacique",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "FOOT_SURF",
+ "MULTI_SPORT_SURF",
+ "NATATION_SURF",
+ "PISTE_SPORT_SURF",
+ "SPORT_INDIF_SURF",
+ "TENNIS_SURF"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#BCD9AB", "line-width": 2}
+ },
+ {
+ "id": "bati transport surfacique - piste",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["PISTE_DUR", "PISTE_HERBE"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DBDBDB", "fill-outline-color": "#808080"}
+ },
+ {
+ "id": "bati ZAI - Autres",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zai",
+ "minzoom": 15,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "nature"],
+ [
+ "Administration centrale de l'Etat",
+ "Autre service déconcentré de l'Etat",
+ "Autre établissement d'enseignement",
+ "Capitainerie",
+ "Caserne",
+ "Caserne de pompiers",
+ "Collège",
+ "Divers public ou administratif",
+ "Enseignement primaire",
+ "Enseignement supérieur",
+ "Etablissement extraterritorial",
+ "Etablissement hospitalier",
+ "Etablissement pénitentiaire",
+ "Etablissement thermal",
+ "Gendarmerie",
+ "Hôpital",
+ "Lycée",
+ "Maison de retraite",
+ "Maison du parc",
+ "Musée",
+ "Office de tourisme",
+ "Palais de justice",
+ "Piscine",
+ "Police",
+ "Poste",
+ "Science",
+ "Siège d'EPCI",
+ "Structure d'accueil pour personnes handicapées",
+ "Université"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#E3BFE2",
+ "fill-opacity": 0.5,
+ "fill-outline-color": "#E39FE1"
+ }
+ },
+ {
+ "id": "bati ZAI - Commandement",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_zai",
+ "minzoom": 15,
+ "filter": [
+ "match",
+ ["get", "nature"],
+ [
+ "Hôtel de département",
+ "Hôtel de région",
+ "Préfecture",
+ "Préfecture de région",
+ "Sous-préfecture"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#FF0000",
+ "fill-opacity": 0.3,
+ "fill-outline-color": "#B40000"
+ }
+ },
+ {
+ "id": "construction linéaire - mur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "MUR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#8C8C8C", "line-width": 0.3}
+ },
+ {
+ "id": "construction linéaire - autre",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FORTIF_LIN", "MUR_SOUTENEMENT", "RUINE_LIN"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#646464", "line-width": 0.5}
+ },
+ {
+ "id": "construction hydrographique linéaire - Barrage",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "BARRAGE_LIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#646464",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.5, 17, 5]
+ }
+ },
+ {
+ "id": "construction hydrographique linéaire - Quai",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "minzoom": 12,
+ "filter": ["match", ["get", "symbo"], ["DIGUE", "QUAI"], true, false],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#828282",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 14, 1, 17, 2.5]
+ }
+ },
+ {
+ "id": "construction hydrographique linéaire - Pecherie",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "PECHERIE_LIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#0066CC",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 14, 1, 17, 2.5]
+ }
+ },
+ {
+ "id": "Chemin a niveau - piste cyclable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "PISTE_CYCLABLE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#9B5CCC",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.1,
+ 15,
+ 1.7,
+ 16,
+ 2,
+ 17,
+ 3.5,
+ 18,
+ 6
+ ],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "Chemin a niveau - filet exterieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#8C7274",
+ 18,
+ "#C8C8C8"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.75,
+ 15,
+ 3,
+ 16,
+ 4.2,
+ 17,
+ 9.5
+ ]
+ }
+ },
+ {
+ "id": "Chemin a niveau - filet interieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.9,
+ 16,
+ 2.7,
+ 17,
+ 5.8
+ ],
+ "line-dasharray": [1, 0.2]
+ }
+ },
+ {
+ "id": "Chemin a niveau - Rue pietonne",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "RUE_PIETONNE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#8C7274",
+ 18,
+ "#F8E5D5"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 5
+ ],
+ "line-dasharray": [1, 3]
+ }
+ },
+ {
+ "id": "Chemin a niveau - sentier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "SENTIER"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#8C7274",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 6
+ ],
+ "line-dasharray": [4, 3]
+ }
+ },
+ {
+ "id": "Chemin a niveau - chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "CHEMIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#8C7274",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#646464",
+ 17,
+ "#8C8C8C"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5,
+ 18,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1",
+ "BRET_AUTO_LIBRE_2",
+ "BRET_AUTO_LIBRE_3",
+ "BRET_AUTO_PEAGE_1",
+ "BRET_AUTO_PEAGE_2",
+ "BRET_AUTO_PEAGE_3"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#DE460E",
+ 17,
+ "#F18800",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 2.5,
+ 14,
+ 3.7,
+ 15,
+ 6.8,
+ 16,
+ 8.4,
+ 17,
+ 14
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#969696",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE", "NON_CLASSEE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#969696",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 7,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BRET_LOCALE", "LOCALE_1", "LOCALE_2", "LOCALE_3", "LOCALE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#8C8C8C",
+ 13,
+ "#B4B4B4",
+ 17,
+ "#B4B4B4",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE",
+ "REGIONALE_1",
+ "REGIONALE_2",
+ "REGIONALE_3",
+ "REGIONALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#828282",
+ 10,
+ "#B4B4B4",
+ 17,
+ "#B4B4B4",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE",
+ "PRINCIPALE_1",
+ "PRINCIPALE_2",
+ "PRINCIPALE_3",
+ "PRINCIPALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#E2A52A",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE", "AUTOROU_PEAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#DE460E",
+ 17,
+ "#F18800",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet extérieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1",
+ "BRET_AUTO_LIBRE_2",
+ "BRET_AUTO_LIBRE_3",
+ "BRET_AUTO_PEAGE_1",
+ "BRET_AUTO_PEAGE_2",
+ "BRET_AUTO_PEAGE_3"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F18800",
+ 17,
+ "#F2B230"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.5,
+ 14,
+ 2.6,
+ 15,
+ 5.2,
+ 16,
+ 6.7,
+ 17,
+ 10.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#EDF1FF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE", "NON_CLASSEE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BRET_LOCALE", "LOCALE_1", "LOCALE_2", "LOCALE_3", "LOCALE_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ "#F2B361",
+ 7,
+ "#FFFFFF",
+ 12,
+ "#FFFFFF",
+ 13,
+ "#FCF4A8",
+ 17,
+ "#FCF7C1"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.3,
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.1,
+ 17,
+ 13.1
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 11,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#FCF4A8",
+ 17,
+ "#FCF7C1",
+ 18,
+ "#EDEDED"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE",
+ "REGIONALE_1",
+ "REGIONALE_2",
+ "REGIONALE_3",
+ "REGIONALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ "#F2A949",
+ 7,
+ "#FFFFFF",
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FDF28B",
+ 17,
+ "#FCF6BD"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 1.1,
+ 6,
+ 1.4,
+ 9,
+ 1.5,
+ 14,
+ 3.2,
+ 15,
+ 5.8,
+ 16,
+ 8.3,
+ 17,
+ 16.2
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FDF28B",
+ 17,
+ "#FCF6BD",
+ 18,
+ "#EDEDED"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.4,
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE",
+ "PRINCIPALE_1",
+ "PRINCIPALE_2",
+ "PRINCIPALE_3",
+ "PRINCIPALE_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ "#F29924",
+ 7,
+ "#F3C66D",
+ 9,
+ "#F3C66D",
+ 17,
+ "#F2DDB3"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.6,
+ 6,
+ 1.8,
+ 9,
+ 2.1,
+ 14,
+ 4.4,
+ 15,
+ 7.3,
+ 16,
+ 10,
+ 17,
+ 18.5
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 10,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F3C66D",
+ 17,
+ "#F2DDB3",
+ 18,
+ "#EDEDED"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE", "AUTOROU_PEAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F18800",
+ 17,
+ "#F2B230"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 2.7,
+ 14,
+ 5.8,
+ 15,
+ 9,
+ 16,
+ 12,
+ 17,
+ 20.8
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - axe central - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE", "AUTOROU_PEAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Routier a niveau - filet interieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 8,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F18800",
+ 17,
+ "#F2B230",
+ 18,
+ "#EDEDED"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier a niveau - axe centrale - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#808080",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "VF_1",
+ "VF_2",
+ "VF_3",
+ "VF_4",
+ "VF_ELEC_1",
+ "VF_ELEC_2",
+ "VF_ELEC_3",
+ "VF_ELEC_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.8, 17, 2.5]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie normale trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "VF_1",
+ "VF_2",
+ "VF_3",
+ "VF_4",
+ "VF_ELEC_1",
+ "VF_ELEC_2",
+ "VF_ELEC_3",
+ "VF_ELEC_4"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie etroite",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE", "VF_ETROITE_1", "VF_ETROITE_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie etroite trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE", "VF_ETROITE_1", "VF_ETROITE_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie service",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_NON_EXPLOITEE", "VF_SERVICE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [5, 2, 1, 2]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Ferre a niveau - voie en construction trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre a niveau - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE", "TRANSPORT_URBAIN"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre a niveau - 2 trait perpendic - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE", "TRANSPORT_URBAIN"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 17],
+ "line-dasharray": [0.1, 0.2, 0.1, 10]
+ }
+ },
+ {
+ "id": "liaison routiere - Bac Liaison Maritime",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "minzoom": 8,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BAC_AUTO", "BAC_LIAISON_MARITIME", "LIAISON_MARITIME"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#5792C2",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 8, 1, 13, 2.5]
+ }
+ },
+ {
+ "id": "liaison routiere - Gue route",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "filter": ["==", ["get", "symbo"], "GUE_ROUTE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ "#BEBEBE",
+ 17,
+ "#646464",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "liaison routiere - Gue chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "GUE_CHEMIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ "#BEBEBE",
+ 17,
+ "#646464"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.6,
+ 15,
+ 2.9,
+ 16,
+ 4.4,
+ 17,
+ 6.5
+ ]
+ }
+ },
+ {
+ "id": "liaison routiere - filet extérieur - Pont passerelle",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["PONT_LIN", "PONT_MOBILE_LIN", "PONT_PASSERELLE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#C8C8C8",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.2,
+ 15,
+ 3.8,
+ 16,
+ 5.4,
+ 17,
+ 11.8
+ ]
+ }
+ },
+ {
+ "id": "liaison routiere - filet intérieur - Pont passerelle",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_liaison",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["PONT_LIN", "PONT_MOBILE_LIN", "PONT_PASSERELLE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 0.7,
+ 15,
+ 1.1,
+ 16,
+ 1.7,
+ 17,
+ 3.8
+ ]
+ }
+ },
+ {
+ "id": "Routier surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "SURF_ROUT_LOC",
+ "SURF_ROUT_NON_CLA",
+ "SURF_ROUT_PRINC",
+ "SURF_ROUT_REG"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#FFFFFF", "fill-outline-color": "#000000"}
+ },
+ {
+ "id": "Routier surfacique - Dalle de protection",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "DALLE_DE_PROTECTION"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-opacity": 0.5,
+ "fill-color": "#FFFFFF",
+ "fill-outline-color": "#000000"
+ }
+ },
+ {
+ "id": "Routier surfacique - Escalier surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SURF"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-opacity": 0.8,
+ "fill-color": "#FFFFFF",
+ "fill-outline-color": "#918091"
+ }
+ },
+ {
+ "id": "Routier surfacique - Péage surfacique",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "routier_surf",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "SURF_PEAGE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#F2DAAA", "fill-outline-color": "#E2A52A"}
+ },
+ {
+ "id": "bati transport surfacique - bati peage",
+ "type": "fill",
+ "source": "plan_ign",
+ "source-layer": "bati_surf",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "BATI_PEAGE"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "#DCDCDC", "fill-outline-color": "#808080"}
+ },
+ {
+ "id": "réseau hydro - cours d'eau superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["COURS_D_EAU_MOY_SUP", "COURS_D_EAU_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.5, 17, 6.5]
+ }
+ },
+ {
+ "id": "réseau hydro - canal superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": ["==", ["get", "symbo"], "CANAL_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 12, 1.4, 17, 5.9]
+ }
+ },
+ {
+ "id": "réseau hydro - filet interieur - aqueduc superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.4,
+ 16,
+ 3.5,
+ 17,
+ 5.9
+ ]
+ }
+ },
+ {
+ "id": "réseau hydro - carre - aqueduc superieur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "hydro_reseau_sup",
+ "filter": ["==", ["get", "symbo"], "AQUEDUC_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#AAD5E9",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 3.5,
+ 16,
+ 8.7,
+ 17,
+ 14.7
+ ],
+ "line-dasharray": [1, 5]
+ }
+ },
+ {
+ "id": "Chemin superieur - piste cyclable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "PISTE_CYCLABLE_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#9B5CCC",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.1,
+ 15,
+ 1.7,
+ 16,
+ 2,
+ 17,
+ 3.5,
+ 18,
+ 6
+ ],
+ "line-dasharray": [6, 2]
+ }
+ },
+ {
+ "id": "Chemin superieur - filet exterieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#8C7274",
+ 18,
+ "#C8C8C8"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1.75,
+ 15,
+ 3,
+ 16,
+ 4.2,
+ 17,
+ 9.5
+ ]
+ }
+ },
+ {
+ "id": "Chemin superieur - filet interieur - escalier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "ESCALIER_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.9,
+ 16,
+ 2.7,
+ 17,
+ 5.8
+ ],
+ "line-dasharray": [1, 0.2]
+ }
+ },
+ {
+ "id": "Chemin superieur - Rue pietonne",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 14,
+ "filter": ["==", ["get", "symbo"], "RUE_PIETONNE_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#8C7274",
+ 18,
+ "#EBEBEB"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 5
+ ],
+ "line-dasharray": [1, 3]
+ }
+ },
+ {
+ "id": "Chemin superieur - sentier",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "SENTIER_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#8C7274",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 6
+ ],
+ "line-dasharray": [4, 3]
+ }
+ },
+ {
+ "id": "Chemin superieur - chemin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_chemin_sup",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "CHEMIN_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#8C7274",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2,
+ 18,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#646464",
+ 17,
+ "#8C8C8C"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SUP",
+ "BRET_AUTO_LIBRE_2_SUP",
+ "BRET_AUTO_LIBRE_3_SUP",
+ "BRET_AUTO_PEAGE_1_SUP",
+ "BRET_AUTO_PEAGE_2_SUP",
+ "BRET_AUTO_PEAGE_3_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#DE460E",
+ 17,
+ "#F18800",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 2.5,
+ 14,
+ 3.7,
+ 15,
+ 6.8,
+ 16,
+ 8.4,
+ 17,
+ 14
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#969696",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SUP", "NON_CLASSEE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#969696",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 3.2,
+ 15,
+ 5.4,
+ 16,
+ 7.7,
+ 17,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SUP",
+ "LOCALE_1_SUP",
+ "LOCALE_2_SUP",
+ "LOCALE_3_SUP",
+ "LOCALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#8C8C8C",
+ 13,
+ "#B4B4B4",
+ 17,
+ "#B4B4B4",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SUP",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#828282",
+ 10,
+ "#B4B4B4",
+ 17,
+ "#B4B4B4",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SUP",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 17,
+ "#E2A52A",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SUP", "AUTOROU_PEAGE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#DE460E",
+ 17,
+ "#F18800",
+ 18,
+ "#FFFFFF"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet extérieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#C8C8C8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route non revetu carrosable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "filter": ["==", ["get", "symbo"], "NON_REVETUE_CARRO_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5,
+ 18,
+ 16.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - bretelle autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 12,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_AUTO_LIBRE_1_SUP",
+ "BRET_AUTO_LIBRE_2_SUP",
+ "BRET_AUTO_LIBRE_3_SUP",
+ "BRET_AUTO_PEAGE_1_SUP",
+ "BRET_AUTO_PEAGE_2_SUP",
+ "BRET_AUTO_PEAGE_3_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F18800",
+ 17,
+ "#F2B230"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ 1.5,
+ 14,
+ 2.6,
+ 15,
+ 5.2,
+ 16,
+ 6.7,
+ 17,
+ 10.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route non classee restreint",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "NON_CLASSEE_RESTREINT_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#EDF1FF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route non classee",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["NON_CLASSEE_4_SUP", "NON_CLASSEE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.3,
+ 17,
+ 13.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route locale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_LOCALE_SUP",
+ "LOCALE_1_SUP",
+ "LOCALE_2_SUP",
+ "LOCALE_3_SUP",
+ "LOCALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#FCF4A8",
+ 17,
+ "#FCF7C1"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.3,
+ 14,
+ 2.3,
+ 15,
+ 4.1,
+ 16,
+ 6.1,
+ 17,
+ 13.1
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route locale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 11,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LOCALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 12,
+ "#FFFFFF",
+ 13,
+ "#FCF4A8",
+ 17,
+ "#FCF7C1"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 2,
+ 14,
+ 3.5,
+ 15,
+ 6,
+ 16,
+ 8.4,
+ 17,
+ 18.3
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route regionale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_REGIONALE_SUP",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FDF28B",
+ 17,
+ "#FCF6BD"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.4,
+ 9,
+ 1.5,
+ 14,
+ 3.2,
+ 15,
+ 5.8,
+ 16,
+ 8.3,
+ 17,
+ 16.2
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route regionale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "REGIONALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#FFFFFF",
+ 10,
+ "#FDF28B",
+ 17,
+ "#FCF6BD"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.5,
+ 9,
+ 2.3,
+ 14,
+ 5,
+ 15,
+ 8.1,
+ 16,
+ 11.2,
+ 17,
+ 22
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route principale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "BRET_PRINCIPALE_SUP",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F3C66D",
+ 17,
+ "#F2DDB3"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.5,
+ 6,
+ 1.8,
+ 9,
+ 2.1,
+ 14,
+ 4.4,
+ 15,
+ 7.3,
+ 16,
+ 10,
+ 17,
+ 18.5
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - route principale en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "PRINCIPALE_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F3C66D",
+ 17,
+ "#F2DDB3"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 6,
+ 1.8,
+ 9,
+ 2.7,
+ 14,
+ 5.9,
+ 15,
+ 9,
+ 16,
+ 12.2,
+ 17,
+ 22.5
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SUP", "AUTOROU_PEAGE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F18800",
+ 17,
+ "#F2B230"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 2.7,
+ 14,
+ 5.8,
+ 15,
+ 9,
+ 16,
+ 12,
+ 17,
+ 20.8
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - axe central - autoroute",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AUTOROU_LIBRE_SUP", "AUTOROU_PEAGE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFFFFF",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Routier superieur - filet interieur - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "#F18800",
+ 17,
+ "#F2B230"
+ ],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.7,
+ 6,
+ 2.5,
+ 9,
+ 3.5,
+ 14,
+ 7.5,
+ 15,
+ 11,
+ 16,
+ 15,
+ 17,
+ 26
+ ],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Routier superieur - axe centrale - autoroute en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "routier_route_sup",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "AUTOROU_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#808080",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 0.6,
+ 14,
+ 0.7,
+ 15,
+ 1,
+ 16,
+ 1.2,
+ 17,
+ 2.1
+ ]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie normale",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SUP", "VF_2_SUP", "VF_ELEC_1_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.8, 17, 2.5]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie normale trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_1_SUP", "VF_2_SUP", "VF_ELEC_1_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie etroite",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SUP", "VF_ETROITE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie etroite trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_ETROITE_1_SUP", "VF_ETROITE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie service",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["VF_NON_EXPLOITEE_SUP", "VF_SERVICE_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [5, 2, 1, 2]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie en construction",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "Ferre superieur - voie en construction trait perpendic",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "minzoom": 10,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "VF_EN_CONSTR_SUP"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 14.7],
+ "line-dasharray": [0.1, 10]
+ }
+ },
+ {
+ "id": "Ferre superieur - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SUP", "TRANSPORT_URBAIN_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 0.3, 17, 1.8]
+ }
+ },
+ {
+ "id": "Ferre superieur - 2 trait perpendic - funic/urbain",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "ferre_sup",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["FUNI_CREMAILLERE_SUP", "TRANSPORT_URBAIN_SUP"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#787878",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 10, 3.5, 17, 17],
+ "line-dasharray": [0.1, 0.2, 0.1, 10]
+ }
+ },
+ {
+ "id": "Limite - cloture",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "filter": ["==", ["get", "symbo"], "CLOTURE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#000000",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 0.6, 17, 1],
+ "line-dasharray": [1.5, 4]
+ }
+ },
+ {
+ "id": "Limite - layon",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 14,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LAYON"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#B3989A",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 15,
+ 1.2,
+ 16,
+ 1.4,
+ 17,
+ 2
+ ],
+ "line-dasharray": [4, 7]
+ }
+ },
+ {
+ "id": "Zone Règlementee - Enceinte militaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LIM_CHAMP_TIR",
+ "LIM_ENCEINTE_MILI",
+ "LIM_ENCEINTE_MILITAIRE",
+ "LIM_ZONE_REGLEMENTEE"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(226, 130, 92, 0.8)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1.7, 17, 3.1],
+ "line-dasharray": [4, 1, 2, 5]
+ }
+ },
+ {
+ "id": "limite zone naturelle",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LIM_RESERVE_NATURELLE",
+ "LIM_ZONE_NATURELLE",
+ "LIM_ZONE_NATURELLE_ILE"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#FFC2CB",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 1]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 10",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "maxzoom": 10,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#42A266",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 1]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 11",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 10,
+ "maxzoom": 11,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#42A266",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 2]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 12",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 11,
+ "maxzoom": 12,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#42A266",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 3]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 13",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 12,
+ "maxzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#42A266",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 4]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc naturel 14",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_PARC_NATUREL", "LIM_PARC_NATUREL_ILE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(66, 162, 102, 0.7)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 5]
+ }
+ },
+ {
+ "id": "limite zone naturelle - Parc marin",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LIM_PARC_NATUREL_MARIN"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#2A81A2",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 2, 17, 4],
+ "line-dasharray": [2, 1]
+ }
+ },
+ {
+ "id": "parcellaire - parcelle bordure",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "parcellaire_parcelle",
+ "filter": ["==", ["get", "symbo"], "PARCELLE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#9933FF", "line-width": 1}
+ },
+ {
+ "id": "parcellaire - section",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "parcellaire_section",
+ "filter": ["==", ["get", "symbo"], "SECTION"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#287B00",
+ "line-width": 1.9,
+ "line-dasharray": [2, 4, 2]
+ }
+ },
+ {
+ "id": "toponyme - parcellaire - section",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_parcellaire_section",
+ "filter": ["==", ["get", "txt_typo"], "SECTION"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-offset": [0, 0],
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {"text-color": "#287B00"}
+ },
+ {
+ "id": "toponyme - parcellaire - parcelle",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_parcellaire_parcelle",
+ "filter": ["==", ["get", "txt_typo"], "PARCELLE"],
+ "layout": {
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Bold"]
+ },
+ "paint": {
+ "text-color": "#9933FF",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - parcellaire - adresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_parcellaire_adresse_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ADRESSE"],
+ "layout": {
+ "symbol-placement": "point",
+ "text-field": ["concat", "{numero}", "{indice_de_repetition}"],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Bold"]
+ },
+ "paint": {
+ "text-color": "#695744",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "limite admin - limite de commune",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_ARRONDISSEMENT", "LIM_CANTON", "LIM_COMMUNE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(126, 119, 184, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 3, 17, 5.5],
+ "line-dasharray": [4, 2, 1, 1, 1, 1, 1, 2]
+ }
+ },
+ {
+ "id": "limite admin - limite de département bandeau",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 8,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "symbo"], "LIM_DEPARTEMENT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(178, 175, 219, 0.4)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 9, 4.1, 12, 6]
+ }
+ },
+ {
+ "id": "limite admin - limite de département tiret",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LIM_DEPARTEMENT"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(126, 119, 184, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 3, 17, 5.5],
+ "line-dasharray": [4, 2, 1, 1, 1, 2]
+ }
+ },
+ {
+ "id": "limite admin - limite de région bandeau",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 7,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "symbo"], "LIM_REGION"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(178, 175, 219, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 9, 4.5, 12, 6.7]
+ }
+ },
+ {
+ "id": "limite admin - limite de région tiret",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 13,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "symbo"], "LIM_REGION"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(126, 119, 184, 0.5)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 3, 17, 5.5],
+ "line-dasharray": [4, 2, 1, 2]
+ }
+ },
+ {
+ "id": "limite etat 1",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 2,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_ETAT", "LIM_ETAT_ETRANGER"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgba(178, 175, 219, 0.6)",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 2,
+ 2,
+ 3,
+ 3.5,
+ 9,
+ 5,
+ 14,
+ 13,
+ 15,
+ 20,
+ 16,
+ 24,
+ 17,
+ 42
+ ]
+ }
+ },
+ {
+ "id": "limite etat 2",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 7,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["LIM_ETAT", "LIM_ETAT_ETRANGER"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#9F9CB8",
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 1.5,
+ 14,
+ 3.5,
+ 15,
+ 5.5,
+ 16,
+ 6.5,
+ 17,
+ 11
+ ],
+ "line-dasharray": [4, 2]
+ }
+ },
+ {
+ "id": "limite cote",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "limite_lin",
+ "minzoom": 7,
+ "maxzoom": 10,
+ "filter": ["match", ["get", "symbo"], ["LIM_COTE"], true, false],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#82A3B2", "line-width": 1}
+ },
+ {
+ "id": "ligne electrique",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "LIGNE_ELECTRIQUE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#808080",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 13, 1, 17, 2]
+ }
+ },
+ {
+ "id": "autre construction linéaire",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CABLE",
+ "CONDUITE_MATIERES_P",
+ "HYDROCARBURES",
+ "PISTE_AERO_LIN",
+ "PISTE_BOBSLEIGH",
+ "PISTE_LUGE",
+ "REMONTEE_MEC",
+ "SPORT_MONTAGNE_LIN"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {"line-color": "#808080", "line-width": 1}
+ },
+ {
+ "id": "autre construction linéaire - trait perpend cable",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "CABLE"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#808080",
+ "line-width": 5,
+ "line-dasharray": [0.5, 10]
+ }
+ },
+ {
+ "id": "autre construction linéaire - trait perpend 1 remont",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "REMONTEE_MEC"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#808080",
+ "line-width": 6,
+ "line-dasharray": [1, 10]
+ }
+ },
+ {
+ "id": "autre construction linéaire - trait perpend 2 remont",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": ["==", ["get", "symbo"], "REMONTEE_MEC"],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#BEBEBE",
+ "line-width": 6,
+ "line-dasharray": [0.3, 0.4, 0.3, 10]
+ }
+ },
+ {
+ "id": "autre construction linéaire - trait perpend carbur",
+ "type": "line",
+ "source": "plan_ign",
+ "source-layer": "bati_lin",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["CONDUITE_MATIERES_P", "HYDROCARBURES"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "#808080",
+ "line-width": 5,
+ "line-dasharray": [1, 10]
+ }
+ },
+ {
+ "id": "routier ponctuel - peage ponctuel",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "routier_ponc",
+ "minzoom": 8,
+ "filter": ["==", ["get", "symbo"], "PEAGE_PONC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 9, 3.5, 12, 6.5],
+ "circle-color": "#E2A52A",
+ "circle-stroke-width": 1,
+ "circle-stroke-color": "#808080"
+ }
+ },
+ {
+ "id": "routier ponctuel - barriere",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "routier_ponc",
+ "minzoom": 12,
+ "filter": ["==", ["get", "symbo"], "BARRIERE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Barriere",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.25,
+ 16,
+ 0.45,
+ 17,
+ 0.7
+ ],
+ "icon-allow-overlap": true,
+ "icon-rotate": ["get", "rotation"]
+ },
+ "paint": {"icon-color": "#969696"}
+ },
+ {
+ "id": "hydro ponctuel",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "hydro_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "AUTRE_HYDRO_PONC",
+ "CASCADE",
+ "FONTAINE",
+ "PERTE",
+ "POINT_D_EAU",
+ "RESURGENCE",
+ "SOURCE",
+ "SOURCE_CAPTEE"
+ ],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 7],
+ "circle-color": "#FFFFFF",
+ "circle-opacity": 1,
+ "circle-stroke-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2,
+ 17,
+ 5
+ ],
+ "circle-stroke-color": "#1466B2"
+ }
+ },
+ {
+ "id": "point coté",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "oro_ponc",
+ "minzoom": 11,
+ "maxzoom": 16,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["POINT_COTE", "POINT_COTE_RESEAU", "POINT_COTE_TOPO", "POINT_RBF"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.1,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.2, 0.4],
+ "text-padding": 2,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#505050"}
+ },
+ {
+ "id": "bati ponctuel : Hopital",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "HOPITAL_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Hopital",
+ "icon-size": 0.33
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel hydrographique",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CITERNE",
+ "LAVOIR",
+ "STATION_DE_POMPAGE",
+ "STATION_EPURATION",
+ "USINE_ELEVATRICE",
+ "USINE_PRODUCTION_EAU"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Pompage",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.2, 17, 0.6],
+ "icon-allow-overlap": true
+ },
+ "paint": {"icon-color": "#1C62A6"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Puits-Abreuvoir",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["ABREUVOIR", "PUITS"],
+ true,
+ false
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 7],
+ "circle-color": "#FFFFFF",
+ "circle-opacity": 1,
+ "circle-stroke-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 2,
+ 17,
+ 5
+ ],
+ "circle-stroke-color": "#1466B2"
+ }
+ },
+ {
+ "id": "bati ponctuel hydrographique - Phare",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": ["==", ["get", "symbo"], "PHARE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Phare",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 17, 1.3]
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Amer-Feu",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["AMER", "FEU", "FEU_PONC", "TOURELLE_LUMINEUSE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Feu",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 17, 1.3]
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Balise",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ ["BALISE", "TOURELLE"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Balise",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.7, 17, 1.3]
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Ecluse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "ECLUSE_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Ecluse",
+ "icon-size": 0.2
+ },
+ "paint": {"icon-color": "#1C62A6"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Barrage",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 14,
+ "filter": ["==", ["get", "symbo"], "BARRAGE_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Barrage",
+ "icon-size": 0.25
+ },
+ "paint": {"icon-color": "#1C62A6"}
+ },
+ {
+ "id": "bati ponctuel hydrographique - Chateau d'eau",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "CHATEAU_EAU_PONC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 8],
+ "circle-color": "#1466B2"
+ }
+ },
+ {
+ "id": "bati ponctuel hydrographique - Réservoir d'eau",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "RESERVOIR_EAU_PONC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 14, 3, 17, 8],
+ "circle-color": "#AAD5E9",
+ "circle-opacity": 1,
+ "circle-stroke-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 14,
+ 1,
+ 17,
+ 2.5
+ ],
+ "circle-stroke-color": "#1466B2"
+ }
+ },
+ {
+ "id": "bati ponctuel infrastructure - Constr spé",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "ANTENNE",
+ "CHEMINEE",
+ "CHEVALEMENT",
+ "CONSTR_INDIF_PONC",
+ "CONSTR_SPE_TECHNIQUE",
+ "PUITS_GAZ",
+ "PUITS_PETROLE",
+ "PYLONE_METEO",
+ "TORCHERE",
+ "TOUR_GUET",
+ "TOUR_HERTZIENNE"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "ConstrSpeciale",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.22, 17, 0.5]
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - Silo",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "SILO_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Silo",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.22, 17, 0.5]
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - Eolienne",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "EOLIENNE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Eolienne",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 17,
+ 1,
+ 18,
+ 0.8
+ ]
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - Reservoir",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "maxzoom": 15,
+ "filter": ["==", ["get", "symbo"], "RESERVOIR_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Reservoir",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 13, 0.26, 17, 0.5]
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel infrastructure - pylone électrique",
+ "type": "circle",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "PYLONE_ELEC"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "circle-radius": ["interpolate", ["linear"], ["zoom"], 13, 1, 17, 2],
+ "circle-color": "#000000"
+ }
+ },
+ {
+ "id": "bati ponctuel montagne - Abri",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "ABRI"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Abri",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 15,
+ 0.6,
+ 17,
+ 0.9
+ ]
+ },
+ "paint": {"icon-color": "#246138"}
+ },
+ {
+ "id": "bati ponctuel montagne - Refuge Garde",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "REFUGE_GARDE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Refugegard",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 15,
+ 0.6,
+ 17,
+ 0.9
+ ]
+ },
+ "paint": {"icon-color": "#246138"}
+ },
+ {
+ "id": "bati ponctuel montagne - Refuge Non Garde",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "REFUGE"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Refugenongard",
+ "icon-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ 0.4,
+ 15,
+ 0.6,
+ 17,
+ 0.9
+ ]
+ },
+ "paint": {"icon-color": "#246138"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aeroport FXX",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AEROPORT_PONC"],
+ ["==", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aeroport",
+ "icon-size": 0.5
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aerodrome FXX",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AERODROME_PONC"],
+ ["==", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aerodrome",
+ "icon-size": 0.4
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aeroport DOM",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AEROPORT_PONC"],
+ ["!=", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aeroport",
+ "icon-size": 0.5
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel transport aerien - Aerodrome DOM",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "AERODROME_PONC"],
+ ["!=", ["get", "territoire"], "FXX"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Aerodrome",
+ "icon-size": 0.4
+ },
+ "paint": {"icon-color": "#646464"}
+ },
+ {
+ "id": "bati ponctuel transport ferroviaire",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "bati_ponc",
+ "filter": ["==", ["get", "symbo"], "GARE_VOYAGEURS"],
+ "layout": {
+ "visibility": "visible",
+ "icon-image": "Gare",
+ "icon-size": 0.33
+ },
+ "paint": {"icon-color": "#787878"}
+ },
+ {
+ "id": "toponyme - bornes postales haute - chemins",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CHEMIN",
+ "CHEMIN_SOU",
+ "CHEMIN_SUP",
+ "ESCALIER",
+ "ESCALIER_SUP",
+ "PISTE_CYCLABLE",
+ "PISTE_CYCLABLE_SOU",
+ "PISTE_CYCLABLE_SUP",
+ "RUE_PIETONNE",
+ "RUE_PIETONNE_SOU",
+ "RUE_PIETONNE_SUP",
+ "SENTIER",
+ "SENTIER_SOU",
+ "SENTIER_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - non revetue, non classee",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "NON_CLASSEE",
+ "NON_CLASSEE_4",
+ "NON_CLASSEE_4_SUP",
+ "NON_CLASSEE_RESTREINT",
+ "NON_CLASSEE_RESTREINT_SUP",
+ "NON_CLASSEE_SOU",
+ "NON_CLASSEE_SUP",
+ "NON_REVETUE_CARRO",
+ "NON_REVETUE_CARRO_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.3],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - locales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LOCALE_1",
+ "LOCALE_1_SOU",
+ "LOCALE_1_SUP",
+ "LOCALE_2",
+ "LOCALE_2_SOU",
+ "LOCALE_2_SUP",
+ "LOCALE_3",
+ "LOCALE_3_SOU",
+ "LOCALE_3_SUP",
+ "LOCALE_4",
+ "LOCALE_4_SOU",
+ "LOCALE_4_SUP",
+ "LOCALE_CONSTR",
+ "LOCALE_CONSTR_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.4],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - regionales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "REGIONALE_1",
+ "REGIONALE_1_SOU",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2",
+ "REGIONALE_2_SOU",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3",
+ "REGIONALE_3_SOU",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4",
+ "REGIONALE_4_SUP",
+ "REGIONALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.5],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales haute - principales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "PRINCIPALE_1",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4",
+ "PRINCIPALE_4_SOU",
+ "PRINCIPALE_4_SUP",
+ "PRINCIPALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sur"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, -1.6],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - chemins",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "CHEMIN",
+ "CHEMIN_SOU",
+ "CHEMIN_SUP",
+ "ESCALIER",
+ "ESCALIER_SUP",
+ "PISTE_CYCLABLE",
+ "PISTE_CYCLABLE_SOU",
+ "PISTE_CYCLABLE_SUP",
+ "RUE_PIETONNE",
+ "RUE_PIETONNE_SOU",
+ "RUE_PIETONNE_SUP",
+ "SENTIER",
+ "SENTIER_SOU",
+ "SENTIER_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - non revetue, non classee",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "NON_CLASSEE",
+ "NON_CLASSEE_4",
+ "NON_CLASSEE_4_SUP",
+ "NON_CLASSEE_RESTREINT",
+ "NON_CLASSEE_RESTREINT_SUP",
+ "NON_CLASSEE_SOU",
+ "NON_CLASSEE_SUP",
+ "NON_REVETUE_CARRO",
+ "NON_REVETUE_CARRO_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.3],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - locales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "LOCALE_1",
+ "LOCALE_1_SOU",
+ "LOCALE_1_SUP",
+ "LOCALE_2",
+ "LOCALE_2_SOU",
+ "LOCALE_2_SUP",
+ "LOCALE_3",
+ "LOCALE_3_SOU",
+ "LOCALE_3_SUP",
+ "LOCALE_4",
+ "LOCALE_4_SOU",
+ "LOCALE_4_SUP",
+ "LOCALE_CONSTR",
+ "LOCALE_CONSTR_SUP"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.4],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - regionales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "REGIONALE_1",
+ "REGIONALE_1_SOU",
+ "REGIONALE_1_SUP",
+ "REGIONALE_2",
+ "REGIONALE_2_SOU",
+ "REGIONALE_2_SUP",
+ "REGIONALE_3",
+ "REGIONALE_3_SOU",
+ "REGIONALE_3_SUP",
+ "REGIONALE_4",
+ "REGIONALE_4_SUP",
+ "REGIONALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.5],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - bornes postales bas - principales",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_borne",
+ "minzoom": 17,
+ "maxzoom": 18,
+ "filter": [
+ "match",
+ ["get", "symbo"],
+ [
+ "PRINCIPALE_1",
+ "PRINCIPALE_1_SOU",
+ "PRINCIPALE_1_SUP",
+ "PRINCIPALE_2",
+ "PRINCIPALE_2_SOU",
+ "PRINCIPALE_2_SUP",
+ "PRINCIPALE_3",
+ "PRINCIPALE_3_SOU",
+ "PRINCIPALE_3_SUP",
+ "PRINCIPALE_4",
+ "PRINCIPALE_4_SOU",
+ "PRINCIPALE_4_SUP",
+ "PRINCIPALE_CONSTR"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "borne_sous"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-offset": [0, 1.6],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#79654F",
+ "text-halo-width": 1,
+ "text-halo-color": "#FFFFFF"
+ }
+ },
+ {
+ "id": "toponyme - courbe rocher maitresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_COURBE_ROCHER"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 30,
+ "text-rotate": ["get", "rotation"],
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#333333",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - courbe glacier maitresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_COURBE_GLACIER"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 30,
+ "text-rotate": ["get", "rotation"],
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#629FD9",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - courbe maitresse",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_COURBE"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 30,
+ "text-rotate": ["get", "rotation"],
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#604A2F",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - liaison maritime",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_liaison_lin",
+ "minzoom": 8,
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "LIAISON_MARITIME"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#5792C2",
+ "text-halo-width": 5,
+ "text-halo-color": "#AAD5E9"
+ }
+ },
+ {
+ "id": "toponyme bati station de métro + bati ponctuel metro",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_E_1"],
+ ["==", ["get", "symbo"], "STATION_METRO"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-offset": [0.3, -0.25],
+ "text-padding": 3,
+ "text-anchor": "bottom-left",
+ "text-font": ["Source Sans Pro"],
+ "icon-image": "Metro",
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 15, 0.33, 17, 0.6]
+ },
+ "paint": {"text-color": "#3C3C3C", "icon-color": "#646464"}
+ },
+ {
+ "id": "toponyme ferre lineaire",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ferre_lin",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["FER_NOM", "FER_OUVRAGE"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10,
+ "text-anchor": "center",
+ "text-offset": [0, -1],
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-width": 1,
+ "text-halo-color": "rgba(255, 255, 255, 1)"
+ }
+ },
+ {
+ "id": "toponyme station epuration, de pompage, usine de production eau",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 14,
+ "filter": ["==", ["get", "txt_typo"], "station"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "designation"]],
+ "text-anchor": "left",
+ "text-offset": [0.8, 0],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#447FB3"}
+ },
+ {
+ "id": "toponyme bati ponc gare",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 15,
+ "filter": ["==", ["get", "txt_typo"], "gore"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "designation"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#000000"}
+ },
+ {
+ "id": "toponyme bati ponc barrage",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "filter": ["==", ["get", "txt_typo"], "BARRAGE_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "left",
+ "text-offset": [0.8, 0],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#447FB3"}
+ },
+ {
+ "id": "toponyme bati ponc phare - niveau 13",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "maxzoom": 13,
+ "filter": ["==", ["get", "txt_typo"], "PHARE"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "right",
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#532A2A"}
+ },
+ {
+ "id": "toponyme bati ponc phare - niveau 14à19",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "PHARE"],
+ [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_C_6", "TYPO_C_7", "TYPO_C_8", "TYPO_E_GE"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "right",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 18, 18],
+ "text-allow-overlap": false,
+ "text-offset": [-2, 0],
+ "text-padding": 3,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#532A2A"}
+ },
+ {
+ "id": "toponyme bati ponc autre",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_ACTIVITE", "BAT_FORTIF", "BAT_VILLAGE_DETRUIT"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {"text-color": "#532A2A"}
+ },
+ {
+ "id": "toponyme bati ponc aerogare",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 14,
+ "maxzoom": 17,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_E_GE"],
+ ["==", ["get", "symbo"], "AEROGARE"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 9, 16, 11],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#120049",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme bati ponc aeroport 12",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 11,
+ "maxzoom": 12,
+ "filter": ["==", ["get", "txt_typo"], "AEROPORT_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -1.3],
+ "text-size": 10.5,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#120049",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aeroport 13",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "txt_typo"], "AEROPORT_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -2],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#120049",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aeroport",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 13,
+ "maxzoom": 17,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_A_5"],
+ ["==", ["get", "symbo"], "AEROPORT"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 11, 16, 13],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#120049",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aerodrome 12",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 11,
+ "maxzoom": 12,
+ "filter": ["==", ["get", "txt_typo"], "AERODROME_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -1.3],
+ "text-size": 9.5,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#120049",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aerodrome 13",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 12,
+ "maxzoom": 13,
+ "filter": ["==", ["get", "txt_typo"], "AERODROME_PONC"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "bottom",
+ "text-offset": [0, -2],
+ "text-size": 10,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#120049",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc aerodrome",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 13,
+ "maxzoom": 17,
+ "filter": [
+ "all",
+ ["==", ["get", "txt_typo"], "TYPO_A_7"],
+ ["==", ["get", "symbo"], "AERODROME"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-anchor": "center",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 12, 10, 16, 12],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro"]
+ },
+ "paint": {
+ "text-color": "#120049",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 5",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_D_10", "TYPO_D_9", "TYPO_E_1_cyan"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 11, 17, 14],
+ "text-allow-overlap": true,
+ "text-padding": 5,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc glacier",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": ["==", ["get", "txt_typo"], "ORO_GLACIER_2"],
+ "layout": {
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 14,
+ "text-anchor": "center",
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - limite militaire ponc 3 et 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_MILI_3", "LIM_MILI_4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-allow-overlap": false,
+ "text-padding": 2,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#0D2000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - limite parc ponc 3 et 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_PARC_3", "LIM_PARC_4", "RESERVE_NATURELLE_PONC"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": false,
+ "text-padding": 2,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme numéro de route - départementale",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_numero_lin",
+ "minzoom": 11,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "Départementale"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 10.5,
+ "text-allow-overlap": false,
+ "text-padding": 2,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Semibold"],
+ "text-rotation-alignment": "viewport"
+ },
+ "paint": {
+ "text-color": "#4D4D4D",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme numéro de route - nationale",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_numero_lin",
+ "minzoom": 7,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "Nationale"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-allow-overlap": false,
+ "text-padding": 0,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Regular"],
+ "icon-image": "Ecluse",
+ "icon-rotation-alignment": "viewport",
+ "text-rotation-alignment": "viewport",
+ "icon-text-fit": "both",
+ "icon-size": 0
+ },
+ "paint": {
+ "text-color": "#F0F0F0",
+ "icon-color": "#646464",
+ "text-halo-color": "rgba(80, 80, 80, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme numéro de route - autoroute",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_numero_lin",
+ "minzoom": 7,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "Autoroute"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 0,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Regular"],
+ "icon-image": "Ecluse",
+ "icon-rotation-alignment": "viewport",
+ "text-rotation-alignment": "viewport",
+ "icon-text-fit": "both",
+ "icon-size": 0
+ },
+ "paint": {
+ "text-color": "#F0F0F0",
+ "icon-color": "#646464",
+ "text-halo-color": "rgba(80, 80, 80, 0.5)",
+ "text-halo-width": 5
+ }
+ },
+ {
+ "id": "toponyme - odonyme abrégé",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_odonyme_lin",
+ "minzoom": 15,
+ "maxzoom": 17,
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "nom_gauche"]],
+ "text-size": 10,
+ "text-anchor": "center",
+ "text-max-angle": 30,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 1)"
+ }
+ },
+ {
+ "id": "toponyme - odonyme desabrégé",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_routier_odonyme_lin",
+ "minzoom": 17,
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "nom_desabrege"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-max-angle": 30,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 1)"
+ }
+ },
+ {
+ "id": "toponyme - lieu dit non habité 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "LIEU-DIT_NON_HABITE"],
+ ["match", ["get", "txt_typo"], ["TYPO_B_10", "TYPO_B_11"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - bois",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ ["match", ["get", "txt_typo"], ["TYPO_F_10", "TYPO_F_11"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["ORO_GORGE_2", "ORO_SOMMET_3"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "GORGE",
+ "GROTTE",
+ "ORO_GORGE_2",
+ "ORO_SOMMET_3",
+ "TYPO_G_10",
+ "TYPO_G_9"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 11, 16, 16],
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_SURF_4",
+ "HYD_SURF_4_T",
+ "HYD_SURF_5",
+ "HYD_SURF_5_T",
+ "SOURCE",
+ "TYPO_D_8",
+ "lac - étang - bassin"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 13, 17, 16],
+ "text-allow-overlap": true,
+ "text-padding": 5,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme quartier ",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_QUARTIER", "BAT_QUARTIER_T"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA10",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "TYPO_A_10"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 11, 17, 13.5],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - lieu dit non habité",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "LIEU-DIT_NON_HABITE"],
+ [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_B_7", "TYPO_B_8", "TYPO_B_9"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - bois 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_F_7", "TYPO_F_8", "TYPO_F_9"],
+ true,
+ false
+ ]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 16,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite hameau ",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 11,
+ "maxzoom": 13,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_HAMEAU", "BAT_HAMEAU_T"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.17,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite importance 5",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 9,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "BAT_ANCIENNE_COM",
+ "BAT_ANCIENNE_COM_T",
+ "BAT_CHEF_LIEU_COM",
+ "BAT_CHEF_LIEU_COM-T",
+ "BAT_CHEF_LIEU_COM_T",
+ "BAT_COMMUNE_5",
+ "BAT_COMMUNE_5_T",
+ "BAT_COMMUNE_ASSOCIEE",
+ "BAT_COMMUNE_ASSOCIEE_T",
+ "Commune très petite",
+ "commune 5"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.21,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11.5,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - ocs lineaire 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_lin",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_3"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 12, 12, 15],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-width": 1,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - lieu dit non habité 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "LIEU-DIT_NON_HABITE"],
+ ["match", ["get", "txt_typo"], ["TYPO_B_4", "TYPO_B_5"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - bois 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ ["match", ["get", "txt_typo"], ["TYPO_F_4", "TYPO_F_5"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 19,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - bois 0",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": [
+ "all",
+ ["==", ["get", "symbo"], "BOIS"],
+ ["match", ["get", "txt_typo"], ["TYPO_F_2", "TYPO_F_3"], true, false]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 22,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - ocs ponc 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_3"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 12, 12, 15],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_2",
+ "ORO_CAP_3",
+ "ORO_COL_2",
+ "ORO_GORGE-1",
+ "ORO_GORGE_1",
+ "ORO_ILE_3",
+ "ORO_RELIEF_3",
+ "ORO_RELIEF_3_T",
+ "ORO_RELIEF_4",
+ "ORO_RELIEF_4_T",
+ "ORO_SOMMET_2"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 12,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_2",
+ "ORO_CAP_3",
+ "ORO_COL_2",
+ "ORO_GORGE-1",
+ "ORO_GORGE_1",
+ "ORO_ILE_3",
+ "ORO_RELIEF_3",
+ "ORO_RELIEF_3_T",
+ "ORO_RELIEF_4",
+ "ORO_RELIEF_4_T",
+ "ORO_SOMMET_2",
+ "TYPO_G_7",
+ "TYPO_G_8"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 16, 17],
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_LIN_3",
+ "HYD_LIN_4",
+ "HYD_LIN_5",
+ "HYD_SURF_3",
+ "HYD_SURF_3_T",
+ "HYD_SURF_4",
+ "HYD_SURF_4_T",
+ "HYD_SURF_5",
+ "HYD_SURF_5_T",
+ "TYPO_D_5",
+ "canal",
+ "petite rivière"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 12, 18, 19],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.7)"
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "minzoom": 14,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["TYPO_D_10", "TYPO_D_6", "TYPO_D_8", "TYPO_D_9"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 10, 18, 16],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-width": 1.5,
+ "text-halo-color": "rgba(255, 255, 255, 0.7)"
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_SURF_3",
+ "TYPO_D_5",
+ "TYPO_D_6",
+ "TYPO_D_7",
+ "baie",
+ "grande baie",
+ "petit golfe"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 15, 17, 18],
+ "text-allow-overlap": true,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme bati ponc zai zoom 16",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 15,
+ "maxzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "zai"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "designation"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#000000"}
+ },
+ {
+ "id": "toponyme bati ponc zai zoom 17 et 18",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_bati_ponc",
+ "minzoom": 16,
+ "filter": ["==", ["get", "txt_typo"], "zai"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {"text-color": "#000000"}
+ },
+ {
+ "id": "toponyme localite importance 4",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 7,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE_4", "BAT_COMMUNE_4_T", "commune 4"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.21,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA9",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "TYPO_A_9"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 11.5, 17, 14],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA8",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": ["==", ["get", "txt_typo"], "TYPO_A_8"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 12, 17, 15],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - limite militaire ponc 1 et 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_MILI_1", "LIM_MILI_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 5,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#0D2000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - limite parc marin",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "minzoom": 8,
+ "filter": ["==", ["get", "txt_typo"], "LIM_PARC_NATUREL_MARIN"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 10,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#2A81A2",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - limite parc ponc 1 et 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_limite_ponc",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["LIM_PARC_1", "LIM_PARC_2", "LIM_PARC_NATUREL"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 10,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - ocs lineaire 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_lin",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_2"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 15, 12, 18],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - ocs ponc 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_2"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 15, 12, 18],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-anchor": "center",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_1",
+ "ORO_ILE_2",
+ "ORO_RELIEF_2",
+ "ORO_RELIEF_2_T",
+ "ORO_SOMMET_1"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-padding": 10,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 9,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_CAP_1",
+ "ORO_COL_1",
+ "ORO_ILE_2",
+ "ORO_RELIEF_2",
+ "ORO_RELIEF_2_T",
+ "ORO_SOMMET_1",
+ "TYPO_G_4",
+ "TYPO_G_6",
+ "sommet ou col"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ 13,
+ 10,
+ 15,
+ 13,
+ 15,
+ 16,
+ 19
+ ],
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 2B",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["cap ou pointe", "île"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_LIN_2",
+ "HYD_SURF_2",
+ "HYD_SURF_2_T",
+ "TYPO_D_3",
+ "rivière moyenne"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 14, 15, 18, 21],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "minzoom": 5,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD_SURF_2",
+ "TYPO_D_2",
+ "TYPO_D_3",
+ "TYPO_D_4",
+ "golfe moyen",
+ "moyen"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 5,
+ 12,
+ 6,
+ 18,
+ 10,
+ 17,
+ 18,
+ 21
+ ],
+ "text-allow-overlap": false,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-color": "#FFFFFF",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite importance 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 5,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE_3", "BAT_COMMUNE_3_T", "commune 3"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.21,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 5, 10, 6, 15],
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.1],
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA7 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_7"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 13, 17, 16],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA6 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_6"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 15, 17, 18],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro lineaire 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["ORO_ILE_1", "ORO_RELIEF_1", "ORO_RELIEF_1_T"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 20,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-padding": 5,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - oro ponc monde",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 5,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "Basin",
+ "Depression",
+ "Desert",
+ "Geoarea",
+ "Gorge",
+ "Island",
+ "Island group",
+ "Isthmus",
+ "Lake",
+ "Lowland",
+ "Pen/cape",
+ "Plain",
+ "Plateau",
+ "Range/mtn",
+ "Tundra",
+ "Valley"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 11,
+ "text-allow-overlap": false,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA4 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_4"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 17,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme - ocs lineaire 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_lin",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_1"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 18, 12, 22],
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-padding": 1,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - ocs ponc 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_ocs_ponc",
+ "filter": ["==", ["get", "txt_typo"], "OCS_FORET_1"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 18, 12, 22],
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#287B00",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - oro ponc 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_oro_ponc",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "ORO_ILE_1",
+ "ORO_RELIEF_1",
+ "ORO_RELIEF_1_T",
+ "TYPO_G_1",
+ "TYPO_G_2",
+ "TYPO_G_3",
+ "grande île"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 21,
+ "text-allow-overlap": true,
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#863831",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire glacier",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["ORO_GLACIER_1", "ORO_GLACIER_2"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-font": ["Source Sans Pro Italic"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ [
+ "HYD-LIN-1",
+ "HYD_LIN_1",
+ "HYD_SURF_1",
+ "HYD_SURF_1_T",
+ "TYPO_D_1",
+ "TYPO_D_2",
+ "grande rivière"
+ ],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 18,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-width": 2,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro lineaire ocean",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_lin",
+ "filter": ["==", ["get", "txt_typo"], "mer et océan"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 30,
+ "text-anchor": "center",
+ "text-keep-upright": true,
+ "text-max-angle": 45,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-width": 4,
+ "text-halo-color": "rgba(255, 255, 255, 0.5)"
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "minzoom": 4,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["HYD_SURF_1", "TYPO_D_1", "grand", "grand golfe", "mer"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 16,
+ 6,
+ 30,
+ 10,
+ 25
+ ],
+ "text-allow-overlap": true,
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite importance 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 4,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE-2", "BAT_COMMUNE_2", "BAT_COMMUNE_2_T", "commune 2"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.25,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 4, 10, 6, 17],
+ "text-allow-overlap": true,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.3, 0.2],
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": [
+ "step",
+ ["zoom"],
+ ["literal", ["Source Sans Pro Regular"]],
+ 7,
+ ["literal", ["Source Sans Pro Bold"]],
+ 10,
+ ["literal", ["Source Sans Pro Regular"]]
+ ]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA3 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_3"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 19,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA2 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_2"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 21,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA7 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_7"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 13, 17, 16],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA6 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_6"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 15, 15, 17, 18],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA1 non commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ ["!=", ["get", "symbo"], "COMMUNE_FUSIONNEE"],
+ ["!=", ["get", "symbo"], "COMMUNE_CHEF_LIEU"],
+ ["==", ["get", "txt_typo"], "TYPO_A_1"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 23,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA4 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_4"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 17,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA3 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_3"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 19,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 3
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA2 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_2"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 21,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite importance 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 3,
+ "filter": [
+ "match",
+ ["get", "txt_typo"],
+ ["BAT_COMMUNE_1", "BAT_COMMUNE_1_T", "commune 1"],
+ true,
+ false
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "icon-image": "Localite",
+ "icon-size": 0.3,
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 3, 10, 6, 20],
+ "text-allow-overlap": false,
+ "text-anchor": "bottom-left",
+ "text-offset": [0.25, -0.1],
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": [
+ "step",
+ ["zoom"],
+ ["literal", ["Source Sans Pro Regular"]],
+ 7,
+ ["literal", ["Source Sans Pro Bold"]],
+ 10,
+ ["literal", ["Source Sans Pro Regular"]]
+ ]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme localite n0 typoA1 commune",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 16,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "symbo"],
+ ["COMMUNE_CHEF_LIEU", "COMMUNE_FUSIONNEE"],
+ true,
+ false
+ ],
+ ["==", ["get", "txt_typo"], "TYPO_A_1"]
+ ],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 23,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#000000",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme - hydro ponc ocean",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_hydro_ponc",
+ "minzoom": 1,
+ "filter": ["==", ["get", "txt_typo"], "ocean"],
+ "layout": {
+ "visibility": "visible",
+ "symbol-placement": "point",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 1, 16, 6, 30],
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 10,
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#447FB3",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme pays 3",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 4,
+ "maxzoom": 5,
+ "filter": ["==", ["get", "txt_typo"], "pays 3"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 9,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme pays 2",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 2,
+ "maxzoom": 5,
+ "filter": ["==", ["get", "txt_typo"], "pays 2"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 2,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme pays 1",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "minzoom": 2,
+ "maxzoom": 5,
+ "filter": ["==", ["get", "txt_typo"], "pays 1"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 13,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 2,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Regular"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ },
+ {
+ "id": "toponyme continent",
+ "type": "symbol",
+ "source": "plan_ign",
+ "source-layer": "toponyme_localite_ponc",
+ "maxzoom": 3,
+ "filter": ["==", ["get", "txt_typo"], "continent"],
+ "layout": {
+ "visibility": "visible",
+ "text-field": ["to-string", ["get", "texte"]],
+ "text-size": 15,
+ "text-allow-overlap": true,
+ "text-anchor": "center",
+ "text-padding": 1,
+ "text-transform": "uppercase",
+ "text-font": ["Source Sans Pro Bold"]
+ },
+ "paint": {
+ "text-color": "#787878",
+ "text-halo-color": "rgba(255, 255, 255, 0.5)",
+ "text-halo-width": 4
+ }
+ }
+ ]
+}
diff --git a/samples-src/resources/vendor/ol/v8.2.0/ol.css b/samples-src/resources/vendor/ol/v8.2.0/ol.css
new file mode 100644
index 000000000..62c2b6123
--- /dev/null
+++ b/samples-src/resources/vendor/ol/v8.2.0/ol.css
@@ -0,0 +1,350 @@
+:root,
+:host {
+ --ol-background-color: white;
+ --ol-accent-background-color: #F5F5F5;
+ --ol-subtle-background-color: rgba(128, 128, 128, 0.25);
+ --ol-partial-background-color: rgba(255, 255, 255, 0.75);
+ --ol-foreground-color: #333333;
+ --ol-subtle-foreground-color: #666666;
+ --ol-brand-color: #00AAFF;
+}
+
+.ol-box {
+ box-sizing: border-box;
+ border-radius: 2px;
+ border: 1.5px solid var(--ol-background-color);
+ background-color: var(--ol-partial-background-color);
+}
+
+.ol-mouse-position {
+ top: 8px;
+ right: 8px;
+ position: absolute;
+}
+
+.ol-scale-line {
+ background: var(--ol-partial-background-color);
+ border-radius: 4px;
+ bottom: 8px;
+ left: 8px;
+ padding: 2px;
+ position: absolute;
+}
+
+.ol-scale-line-inner {
+ border: 1px solid var(--ol-subtle-foreground-color);
+ border-top: none;
+ color: var(--ol-foreground-color);
+ font-size: 10px;
+ text-align: center;
+ margin: 1px;
+ will-change: contents, width;
+ transition: all 0.25s;
+}
+
+.ol-scale-bar {
+ position: absolute;
+ bottom: 8px;
+ left: 8px;
+}
+
+.ol-scale-bar-inner {
+ display: flex;
+}
+
+.ol-scale-step-marker {
+ width: 1px;
+ height: 15px;
+ background-color: var(--ol-foreground-color);
+ float: right;
+ z-index: 10;
+}
+
+.ol-scale-step-text {
+ position: absolute;
+ bottom: -5px;
+ font-size: 10px;
+ z-index: 11;
+ color: var(--ol-foreground-color);
+ text-shadow: -1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);
+}
+
+.ol-scale-text {
+ position: absolute;
+ font-size: 12px;
+ text-align: center;
+ bottom: 25px;
+ color: var(--ol-foreground-color);
+ text-shadow: -1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);
+}
+
+.ol-scale-singlebar {
+ position: relative;
+ height: 10px;
+ z-index: 9;
+ box-sizing: border-box;
+ border: 1px solid var(--ol-foreground-color);
+}
+
+.ol-scale-singlebar-even {
+ background-color: var(--ol-subtle-foreground-color);
+}
+
+.ol-scale-singlebar-odd {
+ background-color: var(--ol-background-color);
+}
+
+.ol-unsupported {
+ display: none;
+}
+
+.ol-viewport,
+.ol-unselectable {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: transparent;
+}
+
+.ol-viewport canvas {
+ all: unset;
+ overflow: hidden;
+}
+
+.ol-viewport {
+ touch-action: pan-x pan-y;
+}
+
+.ol-selectable {
+ -webkit-touch-callout: default;
+ -webkit-user-select: text;
+ -moz-user-select: text;
+ user-select: text;
+}
+
+.ol-grabbing {
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: grabbing;
+}
+
+.ol-grab {
+ cursor: move;
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: grab;
+}
+
+.ol-control {
+ position: absolute;
+ background-color: var(--ol-subtle-background-color);
+ border-radius: 4px;
+}
+
+.ol-zoom {
+ top: .5em;
+ left: .5em;
+}
+
+.ol-rotate {
+ top: .5em;
+ right: .5em;
+ transition: opacity .25s linear, visibility 0s linear;
+}
+
+.ol-rotate.ol-hidden {
+ opacity: 0;
+ visibility: hidden;
+ transition: opacity .25s linear, visibility 0s linear .25s;
+}
+
+.ol-zoom-extent {
+ top: 4.643em;
+ left: .5em;
+}
+
+.ol-full-screen {
+ right: .5em;
+ top: .5em;
+}
+
+.ol-control button {
+ display: block;
+ margin: 1px;
+ padding: 0;
+ color: var(--ol-subtle-foreground-color);
+ font-weight: bold;
+ text-decoration: none;
+ font-size: inherit;
+ text-align: center;
+ height: 1.375em;
+ width: 1.375em;
+ line-height: .4em;
+ background-color: var(--ol-background-color);
+ border: none;
+ border-radius: 2px;
+}
+
+.ol-control button::-moz-focus-inner {
+ border: none;
+ padding: 0;
+}
+
+.ol-zoom-extent button {
+ line-height: 1.4em;
+}
+
+.ol-compass {
+ display: block;
+ font-weight: normal;
+ will-change: transform;
+}
+
+.ol-touch .ol-control button {
+ font-size: 1.5em;
+}
+
+.ol-touch .ol-zoom-extent {
+ top: 5.5em;
+}
+
+.ol-control button:hover,
+.ol-control button:focus {
+ text-decoration: none;
+ outline: 1px solid var(--ol-subtle-foreground-color);
+ color: var(--ol-foreground-color);
+}
+
+.ol-zoom .ol-zoom-in {
+ border-radius: 2px 2px 0 0;
+}
+
+.ol-zoom .ol-zoom-out {
+ border-radius: 0 0 2px 2px;
+}
+
+.ol-attribution {
+ text-align: right;
+ bottom: .5em;
+ right: .5em;
+ max-width: calc(100% - 1.3em);
+ display: flex;
+ flex-flow: row-reverse;
+ align-items: center;
+}
+
+.ol-attribution a {
+ color: var(--ol-subtle-foreground-color);
+ text-decoration: none;
+}
+
+.ol-attribution ul {
+ margin: 0;
+ padding: 1px .5em;
+ color: var(--ol-foreground-color);
+ text-shadow: 0 0 2px var(--ol-background-color);
+ font-size: 12px;
+}
+
+.ol-attribution li {
+ display: inline;
+ list-style: none;
+}
+
+.ol-attribution li:not(:last-child):after {
+ content: " ";
+}
+
+.ol-attribution img {
+ max-height: 2em;
+ max-width: inherit;
+ vertical-align: middle;
+}
+
+.ol-attribution button {
+ flex-shrink: 0;
+}
+
+.ol-attribution.ol-collapsed ul {
+ display: none;
+}
+
+.ol-attribution:not(.ol-collapsed) {
+ background: var(--ol-partial-background-color);
+}
+
+.ol-attribution.ol-uncollapsible {
+ bottom: 0;
+ right: 0;
+ border-radius: 4px 0 0;
+}
+
+.ol-attribution.ol-uncollapsible img {
+ margin-top: -.2em;
+ max-height: 1.6em;
+}
+
+.ol-attribution.ol-uncollapsible button {
+ display: none;
+}
+
+.ol-zoomslider {
+ top: 4.5em;
+ left: .5em;
+ height: 200px;
+}
+
+.ol-zoomslider button {
+ position: relative;
+ height: 10px;
+}
+
+.ol-touch .ol-zoomslider {
+ top: 5.5em;
+}
+
+.ol-overviewmap {
+ left: 0.5em;
+ bottom: 0.5em;
+}
+
+.ol-overviewmap.ol-uncollapsible {
+ bottom: 0;
+ left: 0;
+ border-radius: 0 4px 0 0;
+}
+
+.ol-overviewmap .ol-overviewmap-map,
+.ol-overviewmap button {
+ display: block;
+}
+
+.ol-overviewmap .ol-overviewmap-map {
+ border: 1px solid var(--ol-subtle-foreground-color);
+ height: 150px;
+ width: 150px;
+}
+
+.ol-overviewmap:not(.ol-collapsed) button {
+ bottom: 0;
+ left: 0;
+ position: absolute;
+}
+
+.ol-overviewmap.ol-collapsed .ol-overviewmap-map,
+.ol-overviewmap.ol-uncollapsible button {
+ display: none;
+}
+
+.ol-overviewmap:not(.ol-collapsed) {
+ background: var(--ol-subtle-background-color);
+}
+
+.ol-overviewmap-box {
+ border: 1.5px dotted var(--ol-subtle-foreground-color);
+}
+
+.ol-overviewmap .ol-overviewmap-box:hover {
+ cursor: move;
+}
diff --git a/samples-src/resources/vendor/ol/v8.2.0/ol.js b/samples-src/resources/vendor/ol/v8.2.0/ol.js
new file mode 100644
index 000000000..04a3ca40d
--- /dev/null
+++ b/samples-src/resources/vendor/ol/v8.2.0/ol.js
@@ -0,0 +1,4 @@
+var ol=function(){"use strict";function t(t){t.stopPropagation()}var e=class{constructor(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}},i="propertychange";var n=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function r(t,e,i){let n,r;i=i||s;let o=0,a=t.length,l=!1;for(;o
>1),r=+i(t[n],e),r<0?o=n+1:(a=n,l=!r);return l?o:~o}function s(t,e){return t>e?1:te?-1:0}function a(t,e,i){if(t[0]<=e)return 0;const n=t.length;if(e<=t[n-1])return n-1;if("function"==typeof i){for(let r=1;r0?r-1:r}return n-1}if(i>0){for(let i=1;i0||i&&0===s)}))}function d(){return!0}function g(){return!1}function f(){}function p(t){let e,i,n,r=!1;return function(){const s=Array.prototype.slice.call(arguments);return r&&this===n&&c(s,i)||(r=!0,n=this,i=s,e=t.apply(this,arguments)),e}}function m(t){return function(){let e;try{e=t()}catch(t){return Promise.reject(t)}return e instanceof Promise?e:Promise.resolve(e)}()}function _(t){for(const e in t)delete t[e]}function y(t){let e;for(e in t)return!1;return!e}var x=class extends n{constructor(t){super(),this.eventTarget_=t,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(t,e){if(!t||!e)return;const i=this.listeners_||(this.listeners_={}),n=i[t]||(i[t]=[]);n.includes(e)||n.push(e)}dispatchEvent(t){const i="string"==typeof t,n=i?t:t.type,r=this.listeners_&&this.listeners_[n];if(!r)return;const s=i?new e(t):t;s.target||(s.target=this.eventTarget_||this);const o=this.dispatching_||(this.dispatching_={}),a=this.pendingRemovals_||(this.pendingRemovals_={});let l;n in o||(o[n]=0,a[n]=0),++o[n];for(let t=0,e=r.length;t0)}removeEventListener(t,e){if(!this.listeners_)return;const i=this.listeners_[t];if(!i)return;const n=i.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[n]=f,++this.pendingRemovals_[t]):(i.splice(n,1),0===i.length&&delete this.listeners_[t]))}},v="change",w="error",S="contextmenu",E="click",T="dblclick",C="dragenter",b="dragover",R="drop",P="keydown",F="keypress",I="load",L="touchmove",M="wheel";function A(t,e,i,n,r){if(n&&n!==t&&(i=i.bind(n)),r){const n=i;i=function(){t.removeEventListener(e,i),n.apply(this,arguments)}}const s={target:t,type:e,listener:i};return t.addEventListener(e,i),s}function O(t,e,i,n){return A(t,e,i,n,!0)}function N(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),_(t))}class D extends x{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(v)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let r=0;r0;)this.pop()}extend(t){for(let e=0,i=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new $(V,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){this.unique_&&this.assertUnique_(t);const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let i=0,n=e.length;i=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new $(W,e,t)),e}setAt(t,e){if(t>=this.getLength())return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const i=this.array_[t];this.array_[t]=e,this.dispatchEvent(new $(W,i,t)),this.dispatchEvent(new $(V,e,t))}updateLength_(){this.set(Z,this.array_.length)}assertUnique_(t,e){for(let i=0,n=this.array_.length;it)throw new Error("Tile load sequence violation");this.state=t,this.changed()}load(){j()}getAlpha(t,e){if(!this.transition_)return 1;let i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;const n=e-i+1e3/60;return n>=this.transition_?1:tt(n/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}};const st="undefined"!=typeof navigator&&void 0!==navigator.userAgent?navigator.userAgent.toLowerCase():"",ot=st.includes("firefox"),at=st.includes("safari")&&!st.includes("chrom"),lt=at&&(st.includes("version/15.4")||/cpu (os|iphone os) 15_4 like mac os x/.test(st)),ht=st.includes("webkit")&&!st.includes("edge"),ct=st.includes("macintosh"),ut="undefined"!=typeof devicePixelRatio?devicePixelRatio:1,dt="undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas&&self instanceof WorkerGlobalScope,gt="undefined"!=typeof Image&&Image.prototype.decode,ft="function"==typeof createImageBitmap,pt=function(){let t=!1;try{const e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("_",null,e),window.removeEventListener("_",null,e)}catch(t){}return t}();function mt(t,e,i,n){let r;return r=i&&i.length?i.shift():dt?new OffscreenCanvas(t||300,e||300):document.createElement("canvas"),t&&(r.width=t),e&&(r.height=e),r.getContext("2d",n)}function _t(t){const e=t.canvas;e.width=1,e.height=1,t.clearRect(0,0,1,1)}function yt(t){let e=t.offsetWidth;const i=getComputedStyle(t);return e+=parseInt(i.marginLeft,10)+parseInt(i.marginRight,10),e}function xt(t){let e=t.offsetHeight;const i=getComputedStyle(t);return e+=parseInt(i.marginTop,10)+parseInt(i.marginBottom,10),e}function vt(t,e){const i=e.parentNode;i&&i.replaceChild(t,e)}function wt(t){return t&&t.parentNode?t.parentNode.removeChild(t):null}function St(t){for(;t.lastChild;)t.removeChild(t.lastChild)}function Et(t,e){const i=t.childNodes;for(let n=0;;++n){const r=i[n],s=e[n];if(!r&&!s)break;r!==s&&(r?s?t.insertBefore(s,r):(t.removeChild(r),--n):t.appendChild(s))}}function Tt(t){return t instanceof Image||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageBitmap?t:null}function Ct(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Float32Array||t instanceof DataView?t:null}let bt=null;function Rt(t){bt||(bt=mt(t.width,t.height,void 0,{willReadFrequently:!0}));const e=bt.canvas,i=t.width;e.width!==i&&(e.width=i);const n=t.height;return e.height!==n&&(e.height=n),bt.clearRect(0,0,i,n),bt.drawImage(t,0,0),bt.getImageData(0,0,i,n).data}const Pt=[256,256];var Ft=class extends rt{constructor(t){const e=q;super(t.tileCoord,e,{transition:t.transition,interpolate:t.interpolate}),this.loader_=t.loader,this.data_=null,this.error_=null,this.size_=t.size||null}getSize(){if(this.size_)return this.size_;const t=Tt(this.data_);return t?[t.width,t.height]:Pt}getData(){return this.data_}getError(){return this.error_}load(){if(this.state!==q&&this.state!==J)return;this.state=K,this.changed();const t=this;this.loader_().then((function(e){t.data_=e,t.state=H,t.changed()})).catch((function(e){t.error_=e,t.state=J,t.changed()}))}};function It(t,e){if(!t)throw new Error(e)}class Lt extends X{constructor(t){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),t)if("function"==typeof t.getSimplifiedGeometry){const e=t;this.setGeometry(e)}else{const e=t;this.setProperties(e)}}clone(){const t=new Lt(this.hasProperties()?this.getProperties():null);t.setGeometryName(this.getGeometryName());const e=this.getGeometry();e&&t.setGeometry(e.clone());const i=this.getStyle();return i&&t.setStyle(i),t}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(N(this.geometryChangeKey_),this.geometryChangeKey_=null);const t=this.getGeometry();t&&(this.geometryChangeKey_=A(t,v,this.handleGeometryChange_,this)),this.changed()}setGeometry(t){this.set(this.geometryName_,t)}setStyle(t){this.style_=t,this.styleFunction_=t?Mt(t):void 0,this.changed()}setId(t){this.id_=t,this.changed()}setGeometryName(t){this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_()}}function Mt(t){if("function"==typeof t)return t;let e;if(Array.isArray(t))e=t;else{It("function"==typeof t.getZIndex,"Expected an `ol/style/Style` or an array of `ol/style/Style.js`");e=[t]}return function(){return e}}var At=Lt;const Ot=new Array(6);function Nt(){return[1,0,0,1,0,0]}function Dt(t){return Gt(t,1,0,0,1,0,0)}function kt(t,e){const i=t[0],n=t[1],r=t[2],s=t[3],o=t[4],a=t[5],l=e[0],h=e[1],c=e[2],u=e[3],d=e[4],g=e[5];return t[0]=i*l+r*h,t[1]=n*l+s*h,t[2]=i*c+r*u,t[3]=n*c+s*u,t[4]=i*d+r*g+o,t[5]=n*d+s*g+a,t}function Gt(t,e,i,n,r,s,o){return t[0]=e,t[1]=i,t[2]=n,t[3]=r,t[4]=s,t[5]=o,t}function jt(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Bt(t,e){const i=e[0],n=e[1];return e[0]=t[0]*i+t[2]*n+t[4],e[1]=t[1]*i+t[3]*n+t[5],e}function Ut(t,e){const i=Math.cos(e),n=Math.sin(e);return kt(t,Gt(Ot,i,n,-n,i,0,0))}function zt(t,e,i){return kt(t,Gt(Ot,e,0,0,i,0,0))}function Xt(t,e,i){return Gt(t,e,0,0,i,0,0)}function Vt(t,e,i){return kt(t,Gt(Ot,1,0,0,1,e,i))}function Wt(t,e,i,n,r,s,o,a){const l=Math.sin(s),h=Math.cos(s);return t[0]=n*h,t[1]=r*l,t[2]=-n*l,t[3]=r*h,t[4]=o*n*h-a*n*l+e,t[5]=o*r*l+a*r*h+i,t}function Zt(t,e){const i=$t(e);It(0!==i,"Transformation matrix cannot be inverted");const n=e[0],r=e[1],s=e[2],o=e[3],a=e[4],l=e[5];return t[0]=o/i,t[1]=-r/i,t[2]=-s/i,t[3]=n/i,t[4]=(s*l-o*a)/i,t[5]=-(n*l-r*a)/i,t}function $t(t){return t[0]*t[3]-t[1]*t[2]}let Yt;function qt(t){const e="matrix("+t.join(", ")+")";if(dt)return e;const i=Yt||(Yt=document.createElement("div"));return i.style.transform=e,i.style.transform}var Kt={UNKNOWN:0,INTERSECTING:1,ABOVE:2,RIGHT:4,BELOW:8,LEFT:16};function Ht(t){const e=se();for(let i=0,n=t.length;ir&&(l|=Kt.RIGHT),as&&(l|=Kt.ABOVE),l===Kt.UNKNOWN&&(l=Kt.INTERSECTING),l}function se(){return[1/0,1/0,-1/0,-1/0]}function oe(t,e,i,n,r){return r?(r[0]=t,r[1]=e,r[2]=i,r[3]=n,r):[t,e,i,n]}function ae(t){return oe(1/0,1/0,-1/0,-1/0,t)}function le(t,e){const i=t[0],n=t[1];return oe(i,n,i,n,e)}function he(t,e,i,n,r){return pe(ae(r),t,e,i,n)}function ce(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ue(t,e,i){return Math.abs(t[0]-e[0])t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function ge(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function fe(t,e){for(let i=0,n=e.length;ie[0]?n[0]=t[0]:n[0]=e[0],t[1]>e[1]?n[1]=t[1]:n[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function Me(t){return t[2]=o&&p<=l),n||!(s&Kt.RIGHT)||r&Kt.RIGHT||(m=g-(d-l)*f,n=m>=a&&m<=h),n||!(s&Kt.BELOW)||r&Kt.BELOW||(p=d-(g-a)/f,n=p>=o&&p<=l),n||!(s&Kt.LEFT)||r&Kt.LEFT||(m=g-(d-o)*f,n=m>=a&&m<=h)}return n}function De(t,e,i,n){if(Me(t))return ae(i);let r=[];if(n>1){const e=t[2]-t[0],i=t[3]-t[1];for(let s=0;s=i[2])){const e=Ie(i),r=Math.floor((n[0]-i[0])/e)*e;t[0]-=r,t[2]-=r}return t}function Ge(t,e){if(e.canWrapX()){const i=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[i[0],t[1],i[2],t[3]]];ke(t,e);const n=Ie(i);if(Ie(t)>n)return[[i[0],t[1],i[2],t[3]]];if(t[0]i[2])return[[t[0],t[1],i[2],t[3]],[i[0],t[1],t[2]-n,t[3]]]}return[t]}const je={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function Be(t){return je[t]}const Ue={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var ze=class{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Ue[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}};const Xe=6378137,Ve=Math.PI*Xe,We=[-Ve,-Ve,Ve,Ve],Ze=[-180,-85,180,85],$e=Xe*Math.log(Math.tan(Math.PI/2));class Ye extends ze{constructor(t){super({code:t,units:"m",extent:We,global:!0,worldExtent:Ze,getPointResolution:function(t,e){return t/Math.cosh(e[1]/Xe)}})}}const qe=[new Ye("EPSG:3857"),new Ye("EPSG:102100"),new Ye("EPSG:102113"),new Ye("EPSG:900913"),new Ye("http://www.opengis.net/def/crs/EPSG/0/3857"),new Ye("http://www.opengis.net/gml/srs/epsg.xml#3857")];function Ke(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;r$e?i=$e:i<-$e&&(i=-$e),e[r+1]=i}return e}function He(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;r1?(i=r,n=s):l>0&&(i+=o*l,n+=a*l)}return gi(t,e,i,n)}function gi(t,e,i,n){const r=i-t,s=n-e;return r*r+s*s}function fi(t){const e=t.length;for(let i=0;ir&&(r=e,n=s)}if(0===r)return null;const s=t[n];t[n]=t[i],t[i]=s;for(let n=i+1;n=0;n--){i[n]=t[n][e]/t[n][n];for(let r=n-1;r>=0;r--)t[r][e]-=t[r][n]*i[n]}return i}function pi(t){return 180*t/Math.PI}function mi(t){return t*Math.PI/180}function _i(t,e){const i=t%e;return i*e<0?i+e:i}function yi(t,e,i){return t+i*(e-t)}function xi(t,e){const i=Math.pow(10,e);return Math.round(t*i)/i}function vi(t,e){return Math.round(xi(t,e))}function wi(t,e){return Math.floor(xi(t,e))}function Si(t,e){return Math.ceil(xi(t,e))}function Ei(t,e,i){const n=void 0!==i?t.toFixed(i):""+t;let r=n.indexOf(".");return r=-1===r?n.length:r,r>e?n:new Array(1+e-r).join("0")+n}function Ti(t,e){const i=(""+t).split("."),n=(""+e).split(".");for(let t=0;tr)return 1;if(r>e)return-1}return 0}function Ci(t,e){return t[0]+=+e[0],t[1]+=+e[1],t}function bi(t,e){const i=e.getRadius(),n=e.getCenter(),r=n[0],s=n[1];let o=t[0]-r;const a=t[1]-s;0===o&&0===a&&(o=1);const l=Math.sqrt(o*o+a*a);return[r+i*o/l,s+i*a/l]}function Ri(t,e){const i=t[0],n=t[1],r=e[0],s=e[1],o=r[0],a=r[1],l=s[0],h=s[1],c=l-o,u=h-a,d=0===c&&0===u?0:(c*(i-o)+u*(n-a))/(c*c+u*u||0);let g,f;return d<=0?(g=o,f=a):d>=1?(g=l,f=h):(g=o+d*c,f=a+d*u),[g,f]}function Pi(t,e,i){const n=_i(e+180,360)-180,r=Math.abs(3600*n),s=i||0;let o=Math.floor(r/3600),a=Math.floor((r-3600*o)/60),l=xi(r-3600*o-60*a,s);l>=60&&(l=0,a+=1),a>=60&&(a=0,o+=1);let h=o+"°";return 0===a&&0===l||(h+=" "+Ei(a,2)+"′"),0!==l&&(h+=" "+Ei(l,2,s)+"″"),0!==n&&(h+=" "+t.charAt(n<0?1:0)),h}function Fi(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Ii(t,e){let i=!0;for(let n=t.length-1;n>=0;--n)if(t[n]!=e[n]){i=!1;break}return i}function Li(t,e){const i=Math.cos(e),n=Math.sin(e),r=t[0]*i-t[1]*n,s=t[1]*i+t[0]*n;return t[0]=r,t[1]=s,t}function Mi(t,e){return t[0]*=e,t[1]*=e,t}function Ai(t,e){const i=t[0]-e[0],n=t[1]-e[1];return i*i+n*n}function Oi(t,e){return Math.sqrt(Ai(t,e))}function Ni(t,e){return Ai(t,Ri(t,e))}function Di(t,e){return Fi(t,"{x}, {y}",e)}function ki(t,e){if(e.canWrapX()){const i=Ie(e.getExtent()),n=Gi(t,e,i);n&&(t[0]-=n*i)}return t}function Gi(t,e,i){const n=e.getExtent();let r=0;return e.canWrapX()&&(t[0]n[2])&&(i=i||Ie(n),r=Math.floor((t[0]-n[0])/i)),r}const ji=6371008.8;function Bi(t,e,i){i=i||ji;const n=mi(t[1]),r=mi(e[1]),s=(r-n)/2,o=mi(e[0]-t[0])/2,a=Math.sin(s)*Math.sin(s)+Math.sin(o)*Math.sin(o)*Math.cos(n)*Math.cos(r);return 2*i*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function Ui(t,e){let i=0;for(let n=0,r=t.length;nVi.warn||console.warn(...t)}function $i(...t){Wi>Vi.error||console.error(...t)}let Yi=!0;function qi(t){Yi=!(void 0===t||t)}function Ki(t,e){if(void 0!==e)for(let i=0,n=t.length;i=o?e[s+t]:r[t]}return i}}function an(t,e,i,n){const r=tn(t),s=tn(e);hi(r,s,on(i)),hi(s,r,on(n))}function ln(t,e){if(t===e)return!0;const i=t.getUnits()===e.getUnits();if(t.getCode()===e.getCode())return i;return hn(t,e)===Ki&&i}function hn(t,e){let i=ci(t.getCode(),e.getCode());return i||(i=Hi),i}function cn(t,e){return hn(tn(t),tn(e))}function un(t,e,i){return cn(e,i)(t,void 0,t.length)}function dn(t,e,i,n){return De(t,cn(e,i),void 0,n)}let gn=null;function fn(t){gn=tn(t)}function pn(){return gn}function mn(t,e){return gn?un(t,e,gn):t}function _n(t,e){return gn?un(t,gn,e):(Yi&&!Ii(t,[0,0])&&t[0]>=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(Yi=!1,Zi("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t)}function yn(t,e){return gn?dn(t,e,gn):t}function xn(t,e){return gn?dn(t,gn,e):t}function vn(t,e){if(!gn)return t;const i=tn(e).getMetersPerUnit(),n=gn.getMetersPerUnit();return i&&n?t*i/n:t}function wn(t,e){if(!gn)return t;const i=tn(e).getMetersPerUnit(),n=gn.getMetersPerUnit();return i&&n?t*n/i:t}function Sn(t,e,i){return function(n){let r,s;if(t.canWrapX()){const e=t.getExtent(),o=Ie(e);s=Gi(n=n.slice(0),t,o),s&&(n[0]=n[0]-s*o),n[0]=ui(n[0],e[0],e[2]),n[1]=ui(n[1],e[1],e[3]),r=i(n)}else r=i(n);return s&&e.canWrapX()&&(r[0]+=s*Ie(e.getExtent())),r}}function En(){nn(qe),nn(ii),rn(ii,qe,Ke,He)}function Tn(t,e,i,n,r,s){s=s||[];let o=0;for(let a=e;a{if(!i)return this.getSimplifiedGeometry(e);const n=this.clone();return n.applyTransform(i),n.getSimplifiedGeometry(e)}))}simplifyTransformed(t,e){return this.simplifyTransformedInternal(this.getRevision(),t,e)}clone(){return j()}closestPointXY(t,e,i,n){return j()}containsXY(t,e){const i=this.getClosestPoint([t,e]);return i[0]===t&&i[1]===e}getClosestPoint(t,e){return e=e||[NaN,NaN],this.closestPointXY(t[0],t[1],e,1/0),e}intersectsCoordinate(t){return this.containsXY(t[0],t[1])}computeExtent(t){return j()}getExtent(t){if(this.extentRevision_!=this.getRevision()){const t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&ae(t),this.extentRevision_=this.getRevision()}return Ae(this.extent_,t)}rotate(t,e){j()}scale(t,e,i){j()}simplify(t){return this.getSimplifiedGeometry(t*t)}getSimplifiedGeometry(t){return j()}getType(){return j()}applyTransform(t){j()}intersectsExtent(t){return j()}translate(t,e){j()}transform(t,e){const i=tn(t),n="tile-pixels"==i.getUnits()?function(t,n,r){const s=i.getExtent(),o=i.getWorldExtent(),a=be(o)/be(s);return Wt(Pn,o[0],o[3],a,-a,0,0,0),Tn(t,0,t.length,r,Pn,n),cn(i,e)(t,n,r)}:cn(i,e);return this.applyTransform(n),this}};function In(t){let e;return 2==t?e="XY":3==t?e="XYZ":4==t&&(e="XYZM"),e}function Ln(t){let e;return"XY"==t?e=2:"XYZ"==t||"XYM"==t?e=3:"XYZM"==t&&(e=4),e}function Mn(t,e,i){const n=t.getFlatCoordinates();if(!n)return null;const r=t.getStride();return Tn(n,0,n.length,r,e,i)}var An=class extends Fn{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates}computeExtent(t){return he(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,t)}getCoordinates(){return j()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(t){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),t<0||0!==this.simplifiedGeometryMaxMinSquaredTolerance&&t<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;const e=this.getSimplifiedGeometryInternal(t);return e.getFlatCoordinates().length1)u=i;else{if(d>0){for(let r=0;rr&&(r=a),s=i,o=n}return r}function Dn(t,e,i,n,r){for(let s=0,o=i.length;s0;){const i=h.pop(),s=h.pop();let o=0;const a=t[s],u=t[s+1],d=t[i],g=t[i+1];for(let e=s+n;eo&&(c=e,o=i)}o>r&&(l[(c-e)/n]=1,s+nr&&(s[o++]=h,s[o++]=c,a=h,l=c);return h==a&&c==l||(s[o++]=h,s[o++]=c),o}function Yn(t,e){return e*Math.round(t/e)}function qn(t,e,i,n,r,s,o){if(e==i)return o;let a,l,h=Yn(t[e],r),c=Yn(t[e+1],r);e+=n,s[o++]=h,s[o++]=c;do{if(a=Yn(t[e],r),l=Yn(t[e+1],r),(e+=n)==i)return s[o++]=a,s[o++]=l,o}while(a==h&&l==c);for(;e0&&f>d)&&(g<0&&p0&&p>g)?(a=i,l=u):(s[o++]=a,s[o++]=l,h=a,c=l,a=i,l=u)}return s[o++]=a,s[o++]=l,o}function Kn(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;ls&&(i-a)*(s-l)-(r-a)*(n-l)>0&&o++:n<=s&&(i-a)*(s-l)-(r-a)*(n-l)<0&&o--,a=i,l=n}return 0!==o}function cr(t,e,i,n,r,s){if(0===i.length)return!1;if(!hr(t,e,i[0],n,r,s))return!1;for(let e=1,o=i.length;ey&&(c=(u+d)/2,cr(t,e,i,n,c,p)&&(_=c,y=r)),u=d}return isNaN(_)&&(_=r[o]),a?(a.push(_,p,y),a):[_,p,y]}function gr(t,e,i,n,r){let s=[];for(let o=0,a=i.length;o=r[0]&&s[2]<=r[2]||(s[1]>=r[1]&&s[3]<=r[3]||fr(t,e,i,n,(function(t,e){return Ne(r,t,e)})))))}function mr(t,e,i,n,r){for(let s=0,o=i.length;s0}function Sr(t,e,i,n,r){r=void 0!==r&&r;for(let s=0,o=i.length;s{function r(){o(),i(t)}function s(){o(),n(new Error("Image load error"))}function o(){t.removeEventListener("load",r),t.removeEventListener("error",s)}t.addEventListener("load",r),t.addEventListener("error",s),e&&(t.src=e)}))}function Qr(t,e){return e&&(t.src=e),t.src&>?new Promise(((e,i)=>t.decode().then((()=>e(t))).catch((n=>t.complete&&t.width?e(t):i(n))))):Jr(t)}function ts(t,e){return e&&(t.src=e),t.src&>&&ft?t.decode().then((()=>createImageBitmap(t))).catch((e=>{if(t.complete&&t.width)return t;throw e})):Qr(t)}var es=class extends x{constructor(t,e,i,n){super(),this.extent=t,this.pixelRatio_=i,this.resolution=e,this.state="function"==typeof n?Zr:n,this.image_=null,this.loader="function"==typeof n?n:null}changed(){this.dispatchEvent(v)}getExtent(){return this.extent}getImage(){return this.image_}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){if(this.state==Zr&&this.loader){this.state=$r,this.changed();const t=this.getResolution(),e=Array.isArray(t)?t[0]:t;m((()=>this.loader(this.getExtent(),e,this.getPixelRatio()))).then((t=>{"image"in t&&(this.image_=t.image),"extent"in t&&(this.extent=t.extent),"resolution"in t&&(this.resolution=t.resolution),"pixelRatio"in t&&(this.pixelRatio_=t.pixelRatio),(t instanceof HTMLImageElement||t instanceof ImageBitmap||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement)&&(this.image_=t),this.state=Yr})).catch((t=>{this.state=qr,console.error(t)})).finally((()=>this.changed()))}}setImage(t){this.image_=t}setResolution(t){this.resolution=t}};var is=class extends es{constructor(t,e,i,n,r){super(t,e,i,void 0!==r?Zr:Yr),this.loader_=void 0!==r?r:null,this.canvas_=n,this.error_=null}getError(){return this.error_}handleLoad_(t){t?(this.error_=t,this.state=qr):this.state=Yr,this.changed()}load(){this.state==Zr&&(this.state=$r,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}};var ns=class extends rt{constructor(t,e,i,n,r,s){super(t,e,s),this.crossOrigin_=n,this.src_=i,this.key=i,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.unlisten_=null,this.tileLoadFunction_=r}getImage(){return this.image_}setImage(t){this.image_=t,this.state=H,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=J,this.unlistenImage_(),this.image_=function(){const t=mt(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}(),this.changed()}handleImageLoad_(){const t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=H:this.state=Q,this.unlistenImage_(),this.changed()}load(){this.state==J&&(this.state=q,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==q&&(this.state=K,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=Hr(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}};var rs=class{constructor(t,e,i){this.decay_=t,this.minVelocity_=e,this.delay_=i,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[i+2]>t;)i-=3;const n=this.points_[e+2]-this.points_[i+2];if(n<1e3/60)return!1;const r=this.points_[e]-this.points_[i],s=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(s,r),this.initialVelocity_=Math.sqrt(r*r+s*s)/n,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},ss={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]},os={name:"xyz",min:[0,0,0],channel:["X","Y","Z"],alias:["XYZ","ciexyz","cie1931"],whitepoint:{2:{A:[109.85,100,35.585],C:[98.074,100,118.232],D50:[96.422,100,82.521],D55:[95.682,100,92.149],D65:[95.045592705167,100,108.9057750759878],D75:[94.972,100,122.638],F2:[99.187,100,67.395],F7:[95.044,100,108.755],F11:[100.966,100,64.37],E:[100,100,100]},10:{A:[111.144,100,35.2],C:[97.285,100,116.145],D50:[96.72,100,81.427],D55:[95.799,100,90.926],D65:[94.811,100,107.304],D75:[94.416,100,120.641],F2:[103.28,100,69.026],F7:[95.792,100,107.687],F11:[103.866,100,65.627],E:[100,100,100]}}};os.max=os.whitepoint[2].D65,os.rgb=function(t,e){e=e||os.whitepoint[2].E;var i,n,r,s=t[0]/e[0],o=t[1]/e[1],a=t[2]/e[2];return n=-.96924363628087*s+1.87596750150772*o+.041555057407175*a,r=.055630079696993*s+-.20397695888897*o+1.056971514242878*a,i=(i=3.240969941904521*s+-1.537383177570093*o+-.498610760293*a)>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:r*=12.92,[255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},ss.xyz=function(t,e){var i=t[0]/255,n=t[1]/255,r=t[2]/255,s=.21263900587151*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.71516867876775*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.072192315360733*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92),o=.019330818715591*i+.11919477979462*n+.95053215224966*r;return[(.41239079926595*i+.35758433938387*n+.18048078840183*r)*(e=e||os.whitepoint[2].E)[0],s*e[1],o*e[2]]};var as=os,ls={name:"luv",min:[0,-134,-140],max:[100,224,122],channel:["lightness","u","v"],alias:["LUV","cieluv","cie1976"],xyz:function(t,e,i){var n,r,s,o,a,l,h,c,u;if(s=t[0],o=t[1],a=t[2],0===s)return[0,0,0];return e=e||"D65",i=i||2,n=o/(13*s)+4*(h=as.whitepoint[i][e][0])/(h+15*(c=as.whitepoint[i][e][1])+3*(u=as.whitepoint[i][e][2]))||0,r=a/(13*s)+9*c/(h+15*c+3*u)||0,[9*(l=s>8?c*Math.pow((s+16)/116,3):c*s*.0011070564598794539)*n/(4*r)||0,l,l*(12-3*n-20*r)/(4*r)||0]}};as.luv=function(t,e,i){var n,r,s,o,a,l,h,c,u,d,g;e=e||"D65",i=i||2,d=4*(h=as.whitepoint[i][e][0])/(h+15*(c=as.whitepoint[i][e][1])+3*(u=as.whitepoint[i][e][2])),g=9*c/(h+15*c+3*u),n=4*(o=t[0])/(o+15*(a=t[1])+3*(l=t[2]))||0,r=9*a/(o+15*a+3*l)||0;var f=a/c;return[s=f<=.008856451679035631?903.2962962962961*f:116*Math.pow(f,1/3)-16,13*s*(n-d),13*s*(r-g)]};var hs={name:"lchuv",channel:["lightness","chroma","hue"],alias:["LCHuv","cielchuv"],min:[0,0,0],max:[100,100,360],luv:function(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]},xyz:function(t){return ls.xyz(hs.luv(t))}};function cs(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}ls.lchuv=function(t){var e=t[0],i=t[1],n=t[2],r=Math.sqrt(i*i+n*n),s=360*Math.atan2(n,i)/2/Math.PI;return s<0&&(s+=360),[e,r,s]},as.lchuv=function(t){return ls.lchuv(as.luv(t))};var us=cs({aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),ds={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};var gs={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(t){var e,i,n,r,s,o=t[0]/360,a=t[1]/100,l=t[2]/100,h=0;if(0===a)return[s=255*l,s,s];for(e=2*l-(i=l<.5?l*(1+a):l+a-l*a),r=[0,0,0];h<3;)(n=o+1/3*-(h-1))<0?n++:n>1&&n--,s=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,r[h++]=255*s;return r}};function fs(t){var e;Array.isArray(t)&&t.raw&&(t=String.raw(...arguments)),t instanceof Number&&(t=+t);var i=function(t){var e,i,n=[],r=1;if("number"==typeof t)return{space:"rgb",values:[t>>>16,(65280&t)>>>8,255&t],alpha:1};if("number"==typeof t)return{space:"rgb",values:[t>>>16,(65280&t)>>>8,255&t],alpha:1};if(t=String(t).toLowerCase(),us[t])n=us[t].slice(),i="rgb";else if("transparent"===t)r=0,i="rgb",n=[0,0,0];else if("#"===t[0]){var s=t.slice(1),o=s.length;r=1,o<=4?(n=[parseInt(s[0]+s[0],16),parseInt(s[1]+s[1],16),parseInt(s[2]+s[2],16)],4===o&&(r=parseInt(s[3]+s[3],16)/255)):(n=[parseInt(s[0]+s[1],16),parseInt(s[2]+s[3],16),parseInt(s[4]+s[5],16)],8===o&&(r=parseInt(s[6]+s[7],16)/255)),n[0]||(n[0]=0),n[1]||(n[1]=0),n[2]||(n[2]=0),i="rgb"}else if(e=/^((?:rgba?|hs[lvb]a?|hwba?|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms|oklch|oklab|color))\s*\(([^\)]*)\)/.exec(t)){var a=e[1],l="cmyk"===(i=a.replace(/a$/,""))?4:"gray"===i?1:3;n=e[2].trim().split(/\s*[,\/]\s*|\s+/),"color"===i&&(i=n.shift()),r=(n=n.map((function(t,e){if("%"===t[t.length-1])return t=parseFloat(t)/100,3===e?t:"rgb"===i?255*t:"h"===i[0]?100*t:"l"!==i[0]||e?"lab"===i?125*t:"lch"===i?e<2?150*t:360*t:"o"!==i[0]||e?"oklab"===i?.4*t:"oklch"===i?e<2?.4*t:360*t:t:t:100*t;if("h"===i[e]||2===e&&"h"===i[i.length-1]){if(void 0!==ds[t])return ds[t];if(t.endsWith("deg"))return parseFloat(t);if(t.endsWith("turn"))return 360*parseFloat(t);if(t.endsWith("grad"))return 360*parseFloat(t)/400;if(t.endsWith("rad"))return 180*parseFloat(t)/Math.PI}return"none"===t?0:parseFloat(t)}))).length>l?n.pop():1}else/[0-9](?:\s|\/|,)/.test(t)&&(n=t.match(/([0-9]+)/g).map((function(t){return parseFloat(t)})),i=t.match(/([a-z])/gi)?.join("")?.toLowerCase()||"rgb");return{space:i,values:n,alpha:r}}(t);if(!i.space)return[];const n="h"===i.space[0]?gs.min:ss.min,r="h"===i.space[0]?gs.max:ss.max;return(e=Array(3))[0]=Math.min(Math.max(i.values[0],n[0]),r[0]),e[1]=Math.min(Math.max(i.values[1],n[1]),r[1]),e[2]=Math.min(Math.max(i.values[2],n[2]),r[2]),"h"===i.space[0]&&(e=gs.rgb(e)),e.push(Math.min(Math.max(i.alpha,0),1)),e}function ps(t){return"string"==typeof t?t:Cs(t)}ss.hsl=function(t){var e,i,n=t[0]/255,r=t[1]/255,s=t[2]/255,o=Math.min(n,r,s),a=Math.max(n,r,s),l=a-o;return a===o?e=0:n===a?e=(r-s)/l:r===a?e=2+(s-n)/l:s===a&&(e=4+(n-r)/l),(e=Math.min(60*e,360))<0&&(e+=360),i=(o+a)/2,[e,100*(a===o?0:i<=.5?l/(a+o):l/(2-a-o)),100*i]};const ms=1024,_s={};let ys=0;function xs(t){if(4===t.length)return t;const e=t.slice();return e[3]=1,e}function vs(t){const e=as.lchuv(ss.xyz(t));return e[3]=t[3],e}function ws(t){const e=as.rgb(hs.xyz(t));return e[3]=t[3],e}function Ss(t){if(_s.hasOwnProperty(t))return _s[t];if(ys>=ms){let t=0;for(const e in _s)0==(3&t++)&&(delete _s[e],--ys)}const e=fs(t);if(4!==e.length)throw new Error('Failed to parse "'+t+'" as color');for(const i of e)if(isNaN(i))throw new Error('Failed to parse "'+t+'" as color');return Ts(e),_s[t]=e,++ys,e}function Es(t){return Array.isArray(t)?t:Ss(t)}function Ts(t){return t[0]=ui(t[0]+.5|0,0,255),t[1]=ui(t[1]+.5|0,0,255),t[2]=ui(t[2]+.5|0,0,255),t[3]=ui(t[3],0,1),t}function Cs(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let i=t[1];i!=(0|i)&&(i=i+.5|0);let n=t[2];n!=(0|n)&&(n=n+.5|0);return"rgba("+e+","+i+","+n+","+(void 0===t[3]?1:Math.round(100*t[3])/100)+")"}function bs(t){try{return Ss(t),!0}catch(t){return!1}}class Rs{constructor(){this.cache_={},this.cacheSize_=0,this.maxCacheSize_=32}clear(){this.cache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}}get(t,e,i){const n=Ps(t,e,i);return n in this.cache_?this.cache_[n]:null}set(t,e,i,n){const r=Ps(t,e,i);this.cache_[r]=n,++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}}function Ps(t,e,i){return e+":"+t+":"+(i?ps(i):"null")}var Fs=Rs;const Is=new Rs;var Ls="opacity",Ms="visible",As="extent",Os="zIndex",Ns="maxResolution",Ds="minResolution",ks="maxZoom",Gs="minZoom",js="source",Bs="map";var Us=class extends X{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"==typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[Ls]=void 0!==t.opacity?t.opacity:1,It("number"==typeof e[Ls],"Layer opacity must be a number"),e[Ms]=void 0===t.visible||t.visible,e[Os]=t.zIndex,e[Ns]=void 0!==t.maxResolution?t.maxResolution:1/0,e[Ds]=void 0!==t.minResolution?t.minResolution:0,e[Gs]=void 0!==t.minZoom?t.minZoom:-1/0,e[ks]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},i=this.getZIndex();return e.opacity=ui(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==i||e.managed?i:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return j()}getLayerStatesArray(t){return j()}getExtent(){return this.get(As)}getMaxResolution(){return this.get(Ns)}getMinResolution(){return this.get(Ds)}getMinZoom(){return this.get(Gs)}getMaxZoom(){return this.get(ks)}getOpacity(){return this.get(Ls)}getSourceState(){return j()}getVisible(){return this.get(Ms)}getZIndex(){return this.get(Os)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(As,t)}setMaxResolution(t){this.set(Ns,t)}setMinResolution(t){this.set(Ds,t)}setMaxZoom(t){this.set(ks,t)}setMinZoom(t){this.set(Gs,t)}setOpacity(t){It("number"==typeof t,"Layer opacity must be a number"),this.set(Ls,t)}setVisible(t){this.set(Ms,t)}setZIndex(t){this.set(Os,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}},zs="prerender",Xs="postrender",Vs="precompose",Ws="postcompose",Zs="rendercomplete",$s=0,Ys=1,qs={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};const Ks=42,Hs=256;function Js(t,e,i){return function(n,r,s,o,a){if(!n)return;if(!r&&!e)return n;const l=e?0:s[0]*r,h=e?0:s[1]*r,c=a?a[0]:0,u=a?a[1]:0;let d=t[0]+l/2+c,g=t[2]-l/2+c,f=t[1]+h/2+u,p=t[3]-h/2+u;d>g&&(d=(g+d)/2,g=d),f>p&&(f=(p+f)/2,p=f);let m=ui(n[0],d,g),_=ui(n[1],f,p);if(o&&i&&r){const t=30*r;m+=-t*Math.log(1+Math.max(0,d-n[0])/t)+t*Math.log(1+Math.max(0,n[0]-g)/t),_+=-t*Math.log(1+Math.max(0,f-n[1])/t)+t*Math.log(1+Math.max(0,n[1]-p)/t)}return[m,_]}}function Qs(t){return t}function to(t,e,i,n){const r=Ie(e)/i[0],s=be(e)/i[1];return n?Math.min(t,Math.max(r,s)):Math.min(t,Math.min(r,s))}function eo(t,e,i){let n=Math.min(t,e);return n*=Math.log(1+50*Math.max(0,t/e-1))/50+1,i&&(n=Math.max(n,i),n/=Math.log(1+50*Math.max(0,i/t-1))/50+1),ui(n,i/2,2*e)}function io(t,e,i,n){return e=void 0===e||e,function(r,s,o,l){if(void 0!==r){const h=t[0],c=t[t.length-1],u=i?to(h,i,o,n):h;if(l)return e?eo(r,u,c):ui(r,c,u);const d=Math.min(u,r),g=Math.floor(a(t,d,s));return t[g]>u&&g1&&"function"==typeof arguments[i-1]&&(e=arguments[i-1],--i);let n=0;for(;n0}getInteracting(){return this.hints_[Ys]>0}cancelAnimations(){let t;this.setHint($s,-this.hints_[$s]);for(let e=0,i=this.animations_.length;e=0;--i){const n=this.animations_[i];let r=!0;for(let i=0,s=n.length;i0?o/s.duration:1;a>=1?(s.complete=!0,a=1):r=!1;const l=s.easing(a);if(s.sourceCenter){const t=s.sourceCenter[0],e=s.sourceCenter[1],i=s.targetCenter[0],n=s.targetCenter[1];this.nextCenter_=s.targetCenter;const r=t+l*(i-t),o=e+l*(n-e);this.targetCenter_=[r,o]}if(s.sourceResolution&&s.targetResolution){const t=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const e=this.getViewportSize_(this.getRotation()),i=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(i,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const t=1===l?_i(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!s.complete)break}if(r){this.animations_[i]=null,this.setHint($s,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=n[0].callback;t&&ho(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let i;const n=this.getCenterInternal();return void 0!==n&&(i=[n[0]-e[0],n[1]-e[1]],Li(i,t-this.getRotation()),Ci(i,e)),i}calculateCenterZoom(t,e){let i;const n=this.getCenterInternal(),r=this.getResolution();if(void 0!==n&&void 0!==r){i=[e[0]-t*(e[0]-n[0])/r,e[1]-t*(e[1]-n[1])/r]}return i}getViewportSize_(t){const e=this.viewportSize_;if(t){const i=e[0],n=e[1];return[Math.abs(i*Math.cos(t))+Math.abs(n*Math.sin(t)),Math.abs(i*Math.sin(t))+Math.abs(n*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?mn(t,this.getProjection()):t}getCenterInternal(){return this.get(qs.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){return yn(this.calculateExtentInternal(t),this.getProjection())}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();It(e,"The view center is not defined");const i=this.getResolution();It(void 0!==i,"The view resolution is not defined");const n=this.getRotation();return It(void 0!==n,"The view rotation is not defined"),Te(e,i,n,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(qs.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(xn(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const i=Ie(t)/e[0],n=be(t)/e[1];return Math.max(i,n)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,n=Math.log(e/i)/Math.log(t);return function(i){return e/Math.pow(t,i*n)}}getRotation(){return this.get(qs.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),i=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(i/n)/e;return function(t){return Math.log(i/t)/e/r}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const i=this.padding_;return i&&(e=[e[0]-i[1]-i[3],e[1]-i[0]-i[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),i=this.getRotation();let n=this.getCenterInternal();const r=this.padding_;if(r){const t=this.getViewportSizeMinusPadding_();n=po(n,this.getViewportSize_(),[t[0]/2+r[3],t[1]/2+r[0]],e,i)}return{center:n.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:i,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,i,n=this.minZoom_||0;if(this.resolutions_){const r=a(this.resolutions_,t,1);n=r,e=this.resolutions_[r],i=r==this.resolutions_.length-1?2:e/this.resolutions_[r+1]}else e=this.maxResolution_,i=this.zoomFactor_;return n+Math.log(e/t)/Math.log(i)}getResolutionForZoom(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;const e=ui(Math.floor(t),0,this.resolutions_.length-2),i=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(i,ui(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let i;if(It(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,"Invalid extent or geometry provided as `geometry`"),Array.isArray(t)){It(!Me(t),"Cannot fit empty extent provided as `geometry`");i=Ir(xn(t,this.getProjection()))}else if("Circle"===t.getType()){const e=xn(t.getExtent(),this.getProjection());i=Ir(e),i.rotate(this.getRotation(),Se(e))}else{const e=pn();i=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(i,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),i=Math.cos(e),n=Math.sin(-e),r=t.getFlatCoordinates(),s=t.getStride();let o=1/0,a=1/0,l=-1/0,h=-1/0;for(let t=0,e=r.length;t=t.maxResolution)return!1;const n=e.zoom;return n>t.minZoom&&n<=t.maxZoom}var yo=class extends Us{constructor(t){const e=Object.assign({},t);delete e.source,super(e),this.on,this.once,this.un,this.mapPrecomposeKey_=null,this.mapRenderKey_=null,this.sourceChangeKey_=null,this.renderer_=null,this.sourceReady_=!1,this.rendered=!1,t.render&&(this.render=t.render),t.map&&this.setMap(t.map),this.addChangeListener(js,this.handleSourcePropertyChange_);const i=t.source?t.source:null;this.setSource(i)}getLayersArray(t){return(t=t||[]).push(this),t}getLayerStatesArray(t){return(t=t||[]).push(this.getLayerState()),t}getSource(){return this.get(js)||null}getRenderSource(){return this.getSource()}getSourceState(){const t=this.getSource();return t?t.getState():"undefined"}handleSourceChange_(){this.changed(),this.sourceReady_||"ready"!==this.getSource().getState()||(this.sourceReady_=!0,this.dispatchEvent("sourceready"))}handleSourcePropertyChange_(){this.sourceChangeKey_&&(N(this.sourceChangeKey_),this.sourceChangeKey_=null),this.sourceReady_=!1;const t=this.getSource();t&&(this.sourceChangeKey_=A(t,v,this.handleSourceChange_,this),"ready"===t.getState()&&(this.sourceReady_=!0,setTimeout((()=>{this.dispatchEvent("sourceready")}),0))),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):Promise.resolve([])}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}isVisible(t){let e;const i=this.getMapInternal();let n;!t&&i&&(t=i.getView()),e=t instanceof mo?{viewState:t.getState(),extent:t.calculateExtent()}:t,!e.layerStatesArray&&i&&(e.layerStatesArray=i.getLayerGroup().getLayerStatesArray()),n=e.layerStatesArray?e.layerStatesArray.find((t=>t.layer===this)):this.getLayerState();const r=this.getExtent();return _o(n,e.viewState)&&(!r||Le(r,e.extent))}getAttributions(t){if(!this.isVisible(t))return[];let e;const i=this.getSource();if(i&&(e=i.getAttributions()),!e)return[];let n=e(t instanceof mo?t.getViewStateAndExtent():t);return Array.isArray(n)||(n=[n]),n}render(t,e){const i=this.getRenderer();return i.prepareFrame(t)?(this.rendered=!0,i.renderFrame(t,e)):null}unrender(){this.rendered=!1}setMapInternal(t){t||this.unrender(),this.set(Bs,t)}getMapInternal(){return this.get(Bs)}setMap(t){this.mapPrecomposeKey_&&(N(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(N(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=A(t,Vs,(function(t){const e=t.frameState.layerStatesArray,i=this.getLayerState(!1);It(!e.some((function(t){return t.layer===i.layer})),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),e.push(i)}),this),this.mapRenderKey_=A(this,v,t.render,t),this.changed())}setSource(t){this.set(js,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}disposeInternal(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),super.disposeInternal()}};function xo(t,e){Is.expire()}var vo=class extends n{constructor(t){super(),this.map_=t}dispatchRenderEvent(t,e){j()}calculateMatrices2D(t){const e=t.viewState,i=t.coordinateToPixelTransform,n=t.pixelToCoordinateTransform;Wt(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Zt(n,i)}forEachFeatureAtCoordinate(t,e,i,n,r,s,o,a){let l;const h=e.viewState;function c(t,e,i,n){return r.call(s,e,t?i:null,n)}const u=h.projection,d=ki(t.slice(),u),g=[[0,0]];if(u.canWrapX()&&n){const t=Ie(u.getExtent());g.push([-t,0],[t,0])}const f=e.layerStatesArray,p=f.length,m=[],_=[];for(let n=0;n=0;--r){const s=f[r],u=s.layer;if(u.hasRenderer()&&_o(s,h)&&o.call(a,u)){const r=u.getRenderer(),o=u.getSource();if(r&&o){const a=o.getWrapX()?d:t,h=c.bind(null,s.managed);_[0]=a[0]+g[n][0],_[1]=a[1]+g[n][1],l=r.forEachFeatureAtCoordinate(_,e,i,h,m)}if(l)return l}}if(0===m.length)return;const y=1/m.length;return m.forEach(((t,e)=>t.distanceSq+=e*y)),m.sort(((t,e)=>t.distanceSq-e.distanceSq)),m.some((t=>l=t.callback(t.feature,t.layer,t.geometry))),l}hasFeatureAtCoordinate(t,e,i,n,r,s){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,n,d,this,r,s)}getMap(){return this.map_}renderFrame(t){j()}flushDeclutterItems(t){}scheduleExpireIconCache(t){Is.canExpireCache()&&t.postRenderFunctions.push(xo)}};var wo=class extends e{constructor(t,e,i,n){super(t),this.inversePixelTransform=e,this.frameState=i,this.context=n}};const So="ol-hidden",Eo="ol-selectable",To="ol-unselectable",Co="ol-unsupported",bo="ol-control",Ro="ol-collapsed",Po=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))","?\\s*([-,\\\"\\'\\sa-z]+?)\\s*$"].join(""),"i"),Fo=["style","variant","weight","size","lineHeight","family"],Io=function(t){const e=t.match(Po);if(!e)return null;const i={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let t=0,n=Fo.length;tMath.max(e,Yo(t,i))),0);return i[e]=n,n}function Ko(t,e){const i=[],n=[],r=[];let s=0,o=0,a=0,l=0;for(let h=0,c=e.length;h<=c;h+=2){const u=e[h];if("\n"===u||h===c){s=Math.max(s,o),r.push(o),o=0,a+=l;continue}const d=e[h+1]||t.font,g=Yo(d,u);i.push(g),o+=g;const f=Zo(d);n.push(f),l=Math.max(l,f)}return{width:s,height:a,widths:i,heights:n,lineWidths:r}}function Ho(t,e,i,n,r,s,o,a,l,h,c){t.save(),1!==i&&(t.globalAlpha*=i),e&&t.transform.apply(t,e),n.contextInstructions?(t.translate(l,h),t.scale(c[0],c[1]),function(t,e){const i=t.contextInstructions;for(let t=0,n=i.length;t=0;--i)e[i].renderDeclutter(t);e.length=0}};class Qo extends e{constructor(t,e){super(t),this.layer=e}}const ta="layers";class ea extends Us{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let i=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(ta,this.handleLayersChanged_),i?Array.isArray(i)?i=new Y(i.slice(),{unique:!0}):It("function"==typeof i.getArray,"Expected `layers` to be an array or a `Collection`"):i=new Y(void 0,{unique:!0}),this.setLayers(i)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(N),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(A(t,V,this.handleLayersAdd_,this),A(t,W,this.handleLayersRemove_,this));for(const t in this.listenerKeys_)this.listenerKeys_[t].forEach(N);_(this.listenerKeys_);const e=t.getArray();for(let t=0,i=e.length;t{this.clickTimeoutId_=void 0;const e=new ra(sa.SINGLECLICK,this.map_,t);this.dispatchEvent(e)}),250)}updateActivePointers_(t){const e=t,i=e.pointerId;if(e.type==sa.POINTERUP||e.type==sa.POINTERCANCEL){delete this.trackedTouches_[i];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=sa.POINTERDOWN&&e.type!=sa.POINTERMOVE||(this.trackedTouches_[i]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new ra(sa.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(N),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new ra(sa.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);if(this.dispatchEvent(e),this.down_=new PointerEvent(t.type,t),Object.defineProperty(this.down_,"target",{writable:!1,value:t.target}),0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(A(t,sa.POINTERMOVE,this.handlePointerMove_,this),A(t,sa.POINTERUP,this.handlePointerUp_,this),A(this.element_,sa.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(A(this.element_.getRootNode(),sa.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new ra(sa.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new ra(sa.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"==typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(N(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(L,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(N(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(N),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},ua="postrender",da="movestart",ga="moveend",fa="loadstart",pa="loadend",ma="layergroup",_a="size",ya="target",xa="view";const va=1/0;var wa=class{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,_(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const n=this.keyFunction_(i);return delete this.queuedElements_[n],i}enqueue(t){It(!(this.keyFunction_(t)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const e=this.priorityFunction_(t);return e!=va&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,i=this.priorities_,n=e.length,r=e[t],s=i[t],o=t;for(;t>1;){const r=this.getLeftChildIndex_(t),s=this.getRightChildIndex_(t),o=st;){const t=this.getParentIndex_(e);if(!(n[t]>s))break;i[e]=i[t],n[e]=n[t],e=t}i[e]=r,n[e]=s}reprioritize(){const t=this.priorityFunction_,e=this.elements_,i=this.priorities_;let n=0;const r=e.length;let s,o,a;for(o=0;o0;)n=this.dequeue()[0],r=n.getKey(),i=n.getState(),i!==q||r in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[r]=!0,++this.tilesLoading_,++s,n.load())}};function Ea(t,e,i,n,r){if(!t||!(i in t.wantedTiles))return va;if(!t.wantedTiles[i][e.getKey()])return va;const s=t.viewState.center,o=n[0]-s[0],a=n[1]-s[1];return 65536*Math.log(r)+Math.sqrt(o*o+a*a)/r}var Ta=class extends X{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){wt(this.element),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&wt(this.element);for(let t=0,e=this.listenerKeys.length;te.getAttributions(t))))),i=!this.getMap().getAllLayers().some((t=>t.getSource()&&!1===t.getSource().getAttributionsCollapsible()));return this.overrideCollapsible_||this.setCollapsible(i),e}updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=this.collectSourceAttributions_(t),i=e.length>0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!c(e,this.renderedAttributions_)){St(this.ulElement_);for(let t=0,i=e.length;t0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:et}):t.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const i=e.viewState.rotation;if(i!=this.rotation_){const t="rotate("+i+"rad)";if(this.autoHide_){const t=this.element.classList.contains(So);t||0!==i?t&&0!==i&&this.element.classList.remove(So):this.element.classList.add(So)}this.label_.style.transform=t}this.rotation_=i}};var Ra=class extends Ta{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",i=void 0!==t.delta?t.delta:1,n=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",r=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",s=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",l=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",h=document.createElement("button");h.className=n,h.setAttribute("type","button"),h.title=a,h.appendChild("string"==typeof s?document.createTextNode(s):s),h.addEventListener(E,this.handleClick_.bind(this,i),!1);const c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=l,c.appendChild("string"==typeof o?document.createTextNode(o):o),c.addEventListener(E,this.handleClick_.bind(this,-i),!1);const u=e+" "+To+" "+bo,d=this.element;d.className=u,d.appendChild(h),d.appendChild(c),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap().getView();if(!e)return;const i=e.getZoom();if(void 0!==i){const n=e.getConstrainedZoom(i+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:n,duration:this.duration_,easing:et})):e.setZoom(n)}}};function Pa(t){t=t||{};const e=new Y;(void 0===t.zoom||t.zoom)&&e.push(new Ra(t.zoomOptions));(void 0===t.rotate||t.rotate)&&e.push(new ba(t.rotateOptions));return(void 0===t.attribution||t.attribution)&&e.push(new Ca(t.attributionOptions)),e}var Fa="active";function Ia(t,e,i){const n=t.getCenterInternal();if(n){const r=[n[0]+e[0],n[1]+e[1]];t.animateInternal({duration:void 0!==i?i:250,easing:nt,center:t.getConstrainedCenter(r)})}}function La(t,e,i,n){const r=t.getZoom();if(void 0===r)return;const s=t.getConstrainedZoom(r+e),o=t.getResolutionForZoom(s);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:i,duration:void 0!==n?n:250,easing:et})}var Ma=class extends X{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(Fa)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(Fa,t)}setMap(t){this.map_=t}};var Aa=class extends Ma{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==sa.DBLCLICK){const i=t.originalEvent,n=t.map,r=t.coordinate,s=i.shiftKey?-this.delta_:this.delta_;La(n.getView(),s,r,this.duration_),i.preventDefault(),e=!0}return!e}};function Oa(t){const e=t.length;let i=0,n=0;for(let r=0;r0}}else if(t.type==sa.POINTERDOWN){const i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==sa.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}};function Da(t){const e=arguments;return function(t){let i=!0;for(let n=0,r=e.length;n0&&this.condition_(t)){const e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}};var Ja=class extends Na{constructor(t){t=t||{},super({stopDown:g}),this.condition_=t.condition?t.condition:Ga,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!qa(t))return;const e=t.map,i=e.getView();if(i.getConstraints().rotation===so)return;const n=e.getSize(),r=t.pixel,s=Math.atan2(n[1]/2-r[1],r[0]-n[0]/2);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;i.adjustRotationInternal(-t)}this.lastAngle_=s}handleUpEvent(t){if(!qa(t))return!0;return t.map.getView().endInteraction(this.duration_),!1}handleDownEvent(t){if(!qa(t))return!1;if(za(t)&&this.condition_(t)){return t.map.getView().beginInteraction(),this.lastAngle_=void 0,!0}return!1}};var Qa=class extends n{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,i="px",n=this.element_.style;n.left=Math.min(t[0],e[0])+i,n.top=Math.min(t[1],e[1])+i,n.width=Math.abs(e[0]-t[0])+i,n.height=Math.abs(e[1]-t[1])+i}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){const t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new Pr([i])}getGeometry(){return this.geometry_}};const tl="boxstart",el="boxdrag",il="boxend",nl="boxcancel";class rl extends e{constructor(t,e,i){super(t),this.coordinate=e,this.mapBrowserEvent=i}}var sl=class extends Na{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.box_=new Qa(t.className||"ol-dragbox"),this.minArea_=void 0!==t.minArea?t.minArea:64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition?t.condition:za,this.boxEndCondition_=t.boxEndCondition?t.boxEndCondition:this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,i){const n=i[0]-e[0],r=i[1]-e[1];return n*n+r*r>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new rl(el,t.coordinate,t))}handleUpEvent(t){this.box_.setMap(null);const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new rl(e?il:nl,t.coordinate,t)),!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new rl(tl,t.coordinate,t)),!0)}onBoxEnd(t){}};var ol=class extends sl{constructor(t){super({condition:(t=t||{}).condition?t.condition:$a,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap().getView();let i=this.getGeometry();if(this.out_){const t=e.rotatedExtentForGeometry(i),n=e.getResolutionForExtentInternal(t),r=e.getResolution()/n;i=i.clone(),i.scale(r*r)}e.fitInternal(i,{duration:this.duration_,easing:et})}},al="ArrowLeft",ll="ArrowUp",hl="ArrowRight",cl="ArrowDown";var ul=class extends Ma{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return Wa(t)&&Ya(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==P){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&(n==cl||n==al||n==hl||n==ll)){const r=t.map.getView(),s=r.getResolution()*this.pixelDelta_;let o=0,a=0;n==cl?a=-s:n==al?o=-s:n==hl?o=s:a=s;const l=[o,a];Li(l,r.getRotation()),Ia(r,l,this.duration_),i.preventDefault(),e=!0}}return!e}};var dl=class extends Ma{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:function(t){return!Za(t)&&Ya(t)},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==P||t.type==F){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&("+"===n||"-"===n)){const r=t.map,s="+"===n?this.delta_:-this.delta_;La(r.getView(),s,void 0,this.duration_),i.preventDefault(),e=!0}}return!e}};var gl=class extends Ma{constructor(t){super(t=t||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:Ua;this.condition_=t.onFocusOnly?Da(Ba,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;t.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)}handleEvent(t){if(!this.condition_(t))return!0;if(t.type!==M)return!0;const e=t.map,i=t.originalEvent;let n;if(i.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==M&&(n=i.deltaY,ot&&i.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(n/=ut),i.deltaMode===WheelEvent.DOM_DELTA_LINE&&(n*=40)),0===n)return!1;this.lastDelta_=n;const r=Date.now();void 0===this.startTime_&&(this.startTime_=r),(!this.mode_||r-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(n)<4?"trackpad":"wheel");const s=e.getView();if("trackpad"===this.mode_&&!s.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(s.getAnimating()&&s.cancelAnimations(),s.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),s.adjustZoom(-n/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=r,!1;this.totalDelta_+=n;const o=Math.max(this.timeout_-(r-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,e),o),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let i=-ui(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(i=i?i>0?1:-1:0),La(e,i,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}};var fl=class extends Na{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=g),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const i=this.targetPointers[0],n=this.targetPointers[1],r=Math.atan2(n.clientY-i.clientY,n.clientX-i.clientX);if(void 0!==this.lastAngle_){const t=r-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=r;const s=t.map,o=s.getView();o.getConstraints().rotation!==so&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(Oa(this.targetPointers))),this.rotating_&&(s.render(),o.adjustRotationInternal(e,this.anchor_)))}handleUpEvent(t){if(this.targetPointers.length<2){return t.map.getView().endInteraction(this.duration_),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};var pl=class extends Na{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=g),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const i=this.targetPointers[0],n=this.targetPointers[1],r=i.clientX-n.clientX,s=i.clientY-n.clientY,o=Math.sqrt(r*r+s*s);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(Oa(this.targetPointers))),a.render(),l.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map.getView(),i=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,i),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};function ml(t){t=t||{};const e=new Y,i=new rs(-.005,.05,100);(void 0===t.altShiftDragRotate||t.altShiftDragRotate)&&e.push(new Ja);(void 0===t.doubleClickZoom||t.doubleClickZoom)&&e.push(new Aa({delta:t.zoomDelta,duration:t.zoomDuration}));(void 0===t.dragPan||t.dragPan)&&e.push(new Ha({onFocusOnly:t.onFocusOnly,kinetic:i}));(void 0===t.pinchRotate||t.pinchRotate)&&e.push(new fl);(void 0===t.pinchZoom||t.pinchZoom)&&e.push(new pl({duration:t.zoomDuration}));(void 0===t.keyboard||t.keyboard)&&(e.push(new ul),e.push(new dl({delta:t.zoomDelta,duration:t.zoomDuration})));(void 0===t.mouseWheelZoom||t.mouseWheelZoom)&&e.push(new gl({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration}));return(void 0===t.shiftDragZoom||t.shiftDragZoom)&&e.push(new ol({duration:t.zoomDuration})),e}function _l(t){return t[0]>0&&t[1]>0}function yl(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]*e+.5|0,i[1]=t[1]*e+.5|0,i}function xl(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}function vl(t){t instanceof yo?t.setMapInternal(null):t instanceof ia&&t.getLayers().forEach(vl)}function wl(t,e){if(t instanceof yo)t.setMapInternal(e);else if(t instanceof ia){const i=t.getLayers().getArray();for(let t=0,n=i.length;tthis.updateSize())),this.controls=e.controls||Pa(),this.interactions=e.interactions||ml({onFocusOnly:!0}),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new Sa(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(ma,this.handleLayerGroupChanged_),this.addChangeListener(xa,this.handleViewChanged_),this.addChangeListener(_a,this.handleSizeChanged_),this.addChangeListener(ya,this.handleTargetChanged_),this.setProperties(e.values);const i=this;!t.view||t.view instanceof mo||t.view.then((function(t){i.setView(new mo(t))})),this.controls.addEventListener(V,(t=>{t.element.setMap(this)})),this.controls.addEventListener(W,(t=>{t.element.setMap(null)})),this.interactions.addEventListener(V,(t=>{t.element.setMap(this)})),this.interactions.addEventListener(W,(t=>{t.element.setMap(null)})),this.overlays_.addEventListener(V,(t=>{this.addOverlayInternal_(t.element)})),this.overlays_.addEventListener(W,(t=>{const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)})),this.controls.forEach((t=>{t.setMap(this)})),this.interactions.forEach((t=>{t.setMap(this)})),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){this.getLayerGroup().getLayers().push(t)}handleLayerAdd_(t){wl(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,i){if(!this.frameState_||!this.renderer_)return;const n=this.getCoordinateFromPixelInternal(t),r=void 0!==(i=void 0!==i?i:{}).hitTolerance?i.hitTolerance:0,s=void 0!==i.layerFilter?i.layerFilter:d,o=!1!==i.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(n,this.frameState_,r,o,e,null,s,null)}getFeaturesAtPixel(t,e){const i=[];return this.forEachFeatureAtPixel(t,(function(t){i.push(t)}),e),i}getAllLayers(){const t=[];return function e(i){i.forEach((function(i){i instanceof ia?e(i.getLayers()):t.push(i)}))}(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const i=this.getCoordinateFromPixelInternal(t),n=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:d,r=void 0!==e.hitTolerance?e.hitTolerance:0,s=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,r,s,n,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_.getBoundingClientRect(),i=this.getSize(),n=e.width/i[0],r=e.height/i[1],s="changedTouches"in t?t.changedTouches[0]:t;return[(s.clientX-e.left)/n,(s.clientY-e.top)/r]}getTarget(){return this.get(ya)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(t){return mn(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?Bt(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(ma)}setLayers(t){const e=this.getLayerGroup();if(t instanceof Y)return void e.setLayers(t);const i=e.getLayers();i.clear(),i.extend(t)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e=0;i--){const n=e[i];if(n.getMap()!==this||!n.getActive()||!this.getTargetElement())continue;if(!n.handleEvent(t)||t.propagationStopped)break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let i=this.maxTilesLoading_,n=i;if(t){const e=t.viewHints;if(e[$s]||e[Ys]){const e=Date.now()-t.time>8;i=e?0:8,n=e?0:2}}e.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()}),0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new Qo("removelayer",e)),this.set(ma,t)}setSize(t){this.set(_a,t)}setTarget(t){this.set(ya,t)}setView(t){if(!t||t instanceof mo)return void this.set(xa,t);this.set(xa,new mo);const e=this;t.then((function(t){e.setView(new mo(t))}))}updateSize(){const t=this.getTargetElement();let e;if(t){const i=getComputedStyle(t),n=t.offsetWidth-parseFloat(i.borderLeftWidth)-parseFloat(i.paddingLeft)-parseFloat(i.paddingRight)-parseFloat(i.borderRightWidth),r=t.offsetHeight-parseFloat(i.borderTopWidth)-parseFloat(i.paddingTop)-parseFloat(i.paddingBottom)-parseFloat(i.borderBottomWidth);isNaN(n)||isNaN(r)||(e=[n,r],!_l(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&Zi("No map visible because the map container's width or height are 0."))}const i=this.getSize();!e||i&&c(e,i)||(this.setSize(e),this.updateViewportSize_(e))}updateViewportSize_(t){const e=this.getView();e&&e.setViewportSize(t)}};const El="element",Tl="map",Cl="offset",bl="position",Rl="positioning";var Pl=class extends X{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container "+Eo,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(El,this.handleElementChanged),this.addChangeListener(Tl,this.handleMapChanged),this.addChangeListener(Cl,this.handleOffsetChanged),this.addChangeListener(bl,this.handlePositionChanged),this.addChangeListener(Rl,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(El)}getId(){return this.id}getMap(){return this.get(Tl)||null}getOffset(){return this.get(Cl)}getPosition(){return this.get(bl)}getPositioning(){return this.get(Rl)}handleElementChanged(){St(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(wt(this.element),N(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=A(t,ua,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(El,t)}setMap(t){this.set(Tl,t)}setOffset(t){this.set(Cl,t)}setPosition(t){this.set(bl,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(bl))return;const i=this.getRect(e.getTargetElement(),e.getSize()),n=this.getElement(),r=this.getRect(n,[yt(n),xt(n)]),s=void 0===(t=t||{}).margin?20:t.margin;if(!ie(i,r)){const n=r[0]-i[0],o=i[2]-r[2],a=r[1]-i[1],l=i[3]-r[3],h=[0,0];if(n<0?h[0]=n-s:o<0&&(h[0]=Math.abs(o)+s),a<0?h[1]=a-s:l<0&&(h[1]=Math.abs(l)+s),0!==h[0]||0!==h[1]){const i=e.getView().getCenterInternal(),n=e.getPixelFromCoordinateInternal(i);if(!n)return;const r=[n[0]+h[0],n[1]+h[1]],s=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(r),duration:s.duration,easing:s.easing})}}}getRect(t,e){const i=t.getBoundingClientRect(),n=i.left+window.pageXOffset,r=i.top+window.pageYOffset;return[n,r,n+e[0],r+e[1]]}setPositioning(t){this.set(Rl,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const i=t.getPixelFromCoordinate(e),n=t.getSize();this.updateRenderedPosition(i,n)}updateRenderedPosition(t,e){const i=this.element.style,n=this.getOffset(),r=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==r||"center-right"==r||"top-right"==r?s="-100%":"bottom-center"!=r&&"center-center"!=r&&"top-center"!=r||(s="-50%"),"bottom-left"==r||"bottom-center"==r||"bottom-right"==r?o="-100%":"center-left"!=r&&"center-center"!=r&&"center-right"!=r||(o="-50%");const a=`translate(${s}, ${o}) translate(${Math.round(t[0]+n[0])+"px"}, ${Math.round(t[1]+n[1])+"px"})`;this.rendered.transform_!=a&&(this.rendered.transform_=a,i.transform=a)}getOptions(){return this.options}};var Fl=class{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){for(;this.canExpireCache();)this.pop()}clear(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;for(;e;)t(e.value_,e.key_,this),e=e.newer}get(t,e){const i=this.entries_[t];return It(void 0!==i,"Tried to get a value for a key that does not exist in the cache"),i===this.newest_||(i===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(i.newer.older=i.older,i.older.newer=i.newer),i.newer=null,i.older=this.newest_,this.newest_.newer=i,this.newest_=i),i.value_}remove(t){const e=this.entries_[t];return It(void 0!==e,"Tried to get a value for a key that does not exist in the cache"),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){return this.entries_[t]?.value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){It(!(t in this.entries_),"Tried to set a value for a key that is used already");const i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_}setSize(t){this.highWaterMark=t}};function Il(t,e,i,n){return void 0!==n?(n[0]=t,n[1]=e,n[2]=i,n):[t,e,i]}function Ll(t,e,i){return t+"/"+e+"/"+i}function Ml(t){return Ll(t[0],t[1],t[2])}function Al(t){const[e,i,n]=t.substring(t.lastIndexOf("/")+1,t.length).split(",").map(Number);return Ll(e,i,n)}function Ol(t){return t.split("/").map(Number)}function Nl(t){return(t[1]<i||i>e.getMaxZoom())return!1;const s=e.getFullTileRange(i);return!s||s.containsXY(n,r)}var kl=class extends Fl{clear(){for(;this.getCount()>0;)this.pop().release();super.clear()}expireCache(t){for(;this.canExpireCache();){if(this.peekLast().getKey()in t)break;this.pop().release()}}pruneExceptNewestZ(){if(0===this.getCount())return;const t=Ol(this.peekFirstKey())[0];this.forEach((e=>{e.tileCoord[0]!==t&&(this.remove(Ml(e.tileCoord)),e.release())}))}};class Gl{constructor(t,e,i,n){this.minX=t,this.maxX=e,this.minY=i,this.maxY=n}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}}function jl(t,e,i,n,r){return void 0!==r?(r.minX=t,r.maxX=e,r.minY=i,r.maxY=n,r):new Gl(t,e,i,n)}var Bl=Gl;const Ul=[];var zl=class extends rt{constructor(t,e,i,n){super(t,e,{transition:0}),this.context_={},this.executorGroups={},this.declutterExecutorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=n.bind(void 0,this),this.wrappedTileCoord=i}getContext(t){const e=U(t);return e in this.context_||(this.context_[e]=mt(1,1,Ul)),this.context_[e]}hasContext(t){return U(t)in this.context_}getImage(t){return this.hasContext(t)?this.getContext(t).canvas:null}getReplayState(t){const e=U(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[e]}load(){this.getSourceTiles()}release(){for(const t in this.context_){const e=this.context_[t];_t(e),Ul.push(e.canvas),delete this.context_[t]}super.release()}};var Xl=class extends rt{constructor(t,e,i,n,r,s){super(t,e,s),this.extent=null,this.format_=n,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=r,this.url_=i,this.key=i}getFormat(){return this.format_}getFeatures(){return this.features_}load(){this.state==q&&(this.setState(K),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(t,e){this.setFeatures(t)}onError(){this.setState(J)}setFeatures(t){this.features_=t,this.setState(H)}setLoader(t){this.loader_=t}};function Vl(t){return Array.isArray(t)?Cs(t):t}let Wl,Zl=!1;function $l(t,e,i,n,r,s,o){const a=new XMLHttpRequest;a.open("GET","function"==typeof t?t(i,n,r):t,!0),"arraybuffer"==e.getType()&&(a.responseType="arraybuffer"),a.withCredentials=Zl,a.onload=function(t){if(!a.status||a.status>=200&&a.status<300){const t=e.getType();let n;"json"==t?n=JSON.parse(a.responseText):"text"==t?n=a.responseText:"xml"==t?(n=a.responseXML,n||(n=(new DOMParser).parseFromString(a.responseText,"application/xml"))):"arraybuffer"==t&&(n=a.response),n?s(e.readFeatures(n,{extent:i,featureProjection:r}),e.readProjection(n)):o()}else o()},a.onerror=o,a.send()}function Yl(t,e){return function(i,n,r,s,o){const a=this;$l(t,e,i,n,r,(function(t,e){a.addFeatures(t),void 0!==s&&s(t)}),o||f)}}function ql(t,e){return[[-1/0,-1/0,1/0,1/0]]}function Kl(t,e,i,n){const r=document.createElement("script"),s="olc_"+U(e);function o(){delete window[s],r.parentNode.removeChild(r)}r.async=!0,r.src=t+(t.includes("?")?"&":"?")+(n||"callback")+"="+s;const a=setTimeout((function(){o(),i&&i()}),1e4);window[s]=function(t){clearTimeout(a),o(),e(t)},document.head.appendChild(r)}class Hl extends Error{constructor(t){super("Unexpected response status: "+t.status),this.name="ResponseError",this.response=t}}class Jl extends Error{constructor(t){super("Failed to issue request"),this.name="ClientError",this.client=t}}function Ql(t){return new Promise((function(e,i){const n=new XMLHttpRequest;n.addEventListener("load",(function(t){const n=t.target;if(!n.status||n.status>=200&&n.status<300){let t;try{t=JSON.parse(n.responseText)}catch(t){const e="Error parsing response text as JSON: "+t.message;return void i(new Error(e))}e(t)}else i(new Hl(n))})),n.addEventListener("error",(function(t){i(new Jl(t.target))})),n.open("GET",t),n.setRequestHeader("Accept","application/json"),n.send()}))}function th(t,e){return e.includes("://")?e:new URL(e,t).href}var eh=class{drawCustom(t,e,i,n){}drawGeometry(t){}setStyle(t){}drawCircle(t,e){}drawFeature(t,e){}drawGeometryCollection(t,e){}drawLineString(t,e){}drawMultiLineString(t,e){}drawMultiPoint(t,e){}drawMultiPolygon(t,e){}drawPoint(t,e){}drawPolygon(t,e){}drawText(t,e){}setFillStrokeStyle(t,e){}setImageStyle(t,e){}setTextStyle(t,e){}};var ih=class extends eh{constructor(t,e,i,n,r,s,o){super(),this.context_=t,this.pixelRatio_=e,this.extent_=i,this.transform_=n,this.transformRotation_=n?xi(Math.atan2(n[1],n[0]),10):0,this.viewRotation_=r,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=[1,0,0,1,0,0]}drawImages_(t,e,i,n){if(!this.image_)return;const r=Tn(t,e,i,n,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;0===this.transformRotation_&&(l-=this.viewRotation_),this.imageRotateWithView_&&(l+=this.viewRotation_);for(let t=0,e=r.length;tt*this.pixelRatio_)),lineDashOffset:(r||0)*this.pixelRatio_,lineJoin:void 0!==s?s:No,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:Do,strokeStyle:Vl(t||ko)}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const i=t.getPixelRatio(this.pixelRatio_),n=t.getAnchor(),r=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=n[0]*i,this.imageAnchorY_=n[1]*i,this.imageHeight_=e[1]*i,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=r[0],this.imageOriginY_=r[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const s=t.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/i,s[1]*this.pixelRatio_/i],this.imageWidth_=e[0]*i}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:Vl(t||Mo)}}else this.textFillState_=null;const i=t.getStroke();if(i){const t=i.getColor(),e=i.getLineCap(),n=i.getLineDash(),r=i.getLineDashOffset(),s=i.getLineJoin(),o=i.getWidth(),a=i.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:Ao,lineDash:n||Oo,lineDashOffset:r||0,lineJoin:void 0!==s?s:No,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:Do,strokeStyle:Vl(t||ko)}}else this.textStrokeState_=null;const n=t.getFont(),r=t.getOffsetX(),s=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),l=t.getScaleArray(),h=t.getText(),c=t.getTextAlign(),u=t.getTextBaseline();this.textState_={font:void 0!==n?n:Lo,textAlign:void 0!==c?c:Go,textBaseline:void 0!==u?u:jo},this.text_=void 0!==h?Array.isArray(h)?h.reduce(((t,e,i)=>t+(i%2?" ":e)),""):h:"",this.textOffsetX_=void 0!==r?this.pixelRatio_*r:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}};const nh=.5,rh={Point:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=Yr)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},LineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},Polygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(s||o){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},MultiPoint:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=Yr)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawMultiPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawMultiPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},MultiLineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawMultiLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},MultiPolygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(o||s){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawMultiPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},GeometryCollection:function(t,e,i,n,r){const s=e.getGeometriesArray();let o,a;for(o=0,a=s.length;o2||Math.abs(t[4*e+3]-191.25)>2}function ph(t,e,i,n){const r=un(i,e,t);let s=en(e,n,i);const o=e.getMetersPerUnit();void 0!==o&&(s*=o);const a=t.getMetersPerUnit();void 0!==a&&(s/=a);const l=t.getExtent();if(!l||ee(l,r)){const e=en(t,s,r)/s;isFinite(e)&&e>0&&(s/=e)}return s}function mh(t,e,i,n){const r=Se(i);let s=ph(t,e,r,n);return(!isFinite(s)||s<=0)&&ye(i,(function(i){return s=ph(t,e,i,n),isFinite(s)&&s>0})),s}function _h(t,e,i,n,r,s,o,a,l,h,c,u,d){const g=mt(Math.round(i*t),Math.round(i*e),dh);if(u||(g.imageSmoothingEnabled=!1),0===l.length)return g.canvas;function f(t){return Math.round(t*i)/i}g.scale(i,i),g.globalCompositeOperation="lighter";const p=[1/0,1/0,-1/0,-1/0];let m;if(l.forEach((function(t,e,i){de(p,t.extent)})),!d||1!==l.length||0!==h){const t=Ie(p),e=be(p);m=mt(Math.round(i*t/n),Math.round(i*e/n),dh),u||(m.imageSmoothingEnabled=!1);const r=i/n;l.forEach((function(t,e,i){const n=t.extent[0]-p[0],s=-(t.extent[3]-p[3]),o=Ie(t.extent),a=be(t.extent);t.image.width>0&&t.image.height>0&&m.drawImage(t.image,h,h,t.image.width-2*h,t.image.height-2*h,n*r,s*r,o*r,a*r)}))}const _=Pe(o);return a.getTriangles().forEach((function(t,e,r){const o=t.source,a=t.target;let h=o[0][0],c=o[0][1],d=o[1][0],y=o[1][1],x=o[2][0],v=o[2][1];const w=f((a[0][0]-_[0])/s),S=f(-(a[0][1]-_[1])/s),E=f((a[1][0]-_[0])/s),T=f(-(a[1][1]-_[1])/s),C=f((a[2][0]-_[0])/s),b=f(-(a[2][1]-_[1])/s),R=h,P=c;h=0,c=0,d-=R,y-=P,x-=R,v-=P;const F=fi([[d,y,0,0,E-w],[x,v,0,0,C-w],[0,0,d,y,T-S],[0,0,x,v,b-S]]);if(!F)return;if(g.save(),g.beginPath(),function(){if(void 0===uh){const t=mt(6,6,dh);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",gh(t,4,5,4,0),gh(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;uh=fh(e,0)||fh(e,4)||fh(e,8),_t(t),dh.push(t.canvas)}return uh}()||!u){g.moveTo(E,T);const t=4,e=w-E,i=S-T;for(let n=0;n=Ie(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Ie(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Ie(this.targetProj_.getExtent()):null;const l=Pe(i),h=Fe(i),c=we(i),u=ve(i),d=this.transformInv_(l),g=this.transformInv_(h),f=this.transformInv_(c),p=this.transformInv_(u),m=10+(s?Math.max(0,Math.ceil(Math.log2(xe(i)/(s*s*256*256)))):0);if(this.addQuad_(l,h,c,u,d,g,f,p,m),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach((function(e,i,n){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])})),this.triangles_.forEach((e=>{if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const i=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];i[0][0]-t>this.sourceWorldWidth_/2&&(i[0][0]-=this.sourceWorldWidth_),i[1][0]-t>this.sourceWorldWidth_/2&&(i[1][0]-=this.sourceWorldWidth_),i[2][0]-t>this.sourceWorldWidth_/2&&(i[2][0]-=this.sourceWorldWidth_);const n=Math.min(i[0][0],i[1][0],i[2][0]);Math.max(i[0][0],i[1][0],i[2][0])-n.5&&c<1;let g=!1;if(l>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){g=Ie(Ht([t,e,i,n]))/this.targetWorldWidth_>.25||g}!d&&this.sourceProj_.isGlobal()&&c&&(g=c>.25||g)}if(!g&&this.maxSourceExtent_&&isFinite(h[0])&&isFinite(h[1])&&isFinite(h[2])&&isFinite(h[3])&&!Le(h,this.maxSourceExtent_))return;let f=0;if(!(g||isFinite(r[0])&&isFinite(r[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)g=!0;else if(f=(isFinite(r[0])&&isFinite(r[1])?0:8)+(isFinite(s[0])&&isFinite(s[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=f&&2!=f&&4!=f&&8!=f)return;if(l>0){if(!g){const e=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=this.transformInv_(e);let s;if(d){s=(_i(r[0],u)+_i(o[0],u))/2-_i(n[0],u)}else s=(r[0]+o[0])/2-n[0];const a=(r[1]+o[1])/2-n[1];g=s*s+a*a>this.errorThresholdSquared_}if(g){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){const h=[(e[0]+i[0])/2,(e[1]+i[1])/2],c=this.transformInv_(h),u=[(n[0]+t[0])/2,(n[1]+t[1])/2],d=this.transformInv_(u);this.addQuad_(t,e,h,u,r,s,c,d,l-1),this.addQuad_(u,h,i,n,d,c,o,a,l-1)}else{const h=[(t[0]+e[0])/2,(t[1]+e[1])/2],c=this.transformInv_(h),u=[(i[0]+n[0])/2,(i[1]+n[1])/2],d=this.transformInv_(u);this.addQuad_(t,h,u,n,r,c,d,a,l-1),this.addQuad_(h,e,i,u,c,s,o,d,l-1)}return}}if(d){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}0==(11&f)&&this.addTriangle_(t,i,n,r,o,a),0==(14&f)&&this.addTriangle_(t,i,e,r,o,s),f&&(0==(13&f)&&this.addTriangle_(e,n,t,s,a,r),0==(7&f)&&this.addTriangle_(e,n,i,s,a,o))}calculateSourceExtent(){const t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach((function(e,i,n){const r=e.source;ge(t,r[0]),ge(t,r[1]),ge(t,r[2])})),t}getTriangles(){return this.triangles_}};var wh=class extends rt{constructor(t,e,i,n,r,s,o,a,l,h,c,u){super(r,q,u),this.renderEdges_=void 0!==c&&c,this.pixelRatio_=o,this.gutter_=a,this.canvas_=null,this.sourceTileGrid_=e,this.targetTileGrid_=n,this.wrappedTileCoord_=s||r,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const d=n.getTileCoordExtent(this.wrappedTileCoord_),g=this.targetTileGrid_.getExtent();let f=this.sourceTileGrid_.getExtent();const p=g?Re(d,g):d;if(0===xe(p))return void(this.state=Q);const m=t.getExtent();m&&(f=f?Re(f,m):m);const _=n.getResolution(this.wrappedTileCoord_[0]),y=mh(t,i,p,_);if(!isFinite(y)||y<=0)return void(this.state=Q);const x=void 0!==h?h:xh;if(this.triangulation_=new vh(t,i,p,f,y*x,_),0===this.triangulation_.getTriangles().length)return void(this.state=Q);this.sourceZ_=e.getZForResolution(y);let v=this.triangulation_.calculateSourceExtent();if(f&&(t.canWrapX()?(v[1]=ui(v[1],f[1],f[3]),v[3]=ui(v[3],f[1],f[3])):v=Re(v,f)),xe(v)){const t=e.getTileRangeForExtentAndZ(v,this.sourceZ_);for(let e=t.minX;e<=t.maxX;e++)for(let i=t.minY;i<=t.maxY;i++){const t=l(this.sourceZ_,e,i,o);t&&this.sourceTiles_.push(t)}0===this.sourceTiles_.length&&(this.state=Q)}else this.state=Q}getImage(){return this.canvas_}reproject_(){const t=[];if(this.sourceTiles_.forEach((e=>{e&&e.getState()==H&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})})),this.sourceTiles_.length=0,0===t.length)this.state=J;else{const e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),n="number"==typeof i?i:i[0],r="number"==typeof i?i:i[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=_h(n,r,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=H}this.changed()}load(){if(this.state==q){this.state=K,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach((e=>{const i=e.getState();if(i==q||i==K){t++;const i=A(e,v,(function(n){const r=e.getState();r!=H&&r!=J&&r!=Q||(N(i),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(i)}})),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,i){t.getState()==q&&t.load()}))}}unlistenSources_(){this.sourcesListenerKeys_.forEach(N),this.sourcesListenerKeys_=null}release(){this.canvas_&&(_t(this.canvas_.getContext("2d")),dh.push(this.canvas_),this.canvas_=null),super.release()}},Sh="tileloadstart",Eh="tileloadend",Th="tileloaderror";function Ch(t){return t?Array.isArray(t)?function(e){return t}:"function"==typeof t?t:function(e){return[t]}:null}var bh=class extends X{constructor(t){super(),this.projection=tn(t.projection),this.attributions_=Ch(t.attributions),this.attributionsCollapsible_=void 0===t.attributionsCollapsible||t.attributionsCollapsible,this.loading=!1,this.state_=void 0!==t.state?t.state:"ready",this.wrapX_=void 0!==t.wrapX&&t.wrapX,this.interpolate_=!!t.interpolate,this.viewResolver=null,this.viewRejector=null;const e=this;this.viewPromise_=new Promise((function(t,i){e.viewResolver=t,e.viewRejector=i}))}getAttributions(){return this.attributions_}getAttributionsCollapsible(){return this.attributionsCollapsible_}getProjection(){return this.projection}getResolutions(t){return null}getView(){return this.viewPromise_}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(t){this.attributions_=Ch(t),this.changed()}setState(t){this.state_=t,this.changed()}};const Rh=[0,0,0];var Ph=class{constructor(t){let e;if(this.minZoom=void 0!==t.minZoom?t.minZoom:0,this.resolutions_=t.resolutions,It(u(this.resolutions_,((t,e)=>e-t),!0),"`resolutions` must be sorted in descending order"),!t.origins)for(let t=0,i=this.resolutions_.length-1;t{const n=new Bl(Math.min(0,t[0]),Math.max(t[0]-1,-1),Math.min(0,t[1]),Math.max(t[1]-1,-1));if(i){const t=this.getTileRangeForExtentAndZ(i,e);n.minX=Math.max(t.minX,n.minX),n.maxX=Math.min(t.maxX,n.maxX),n.minY=Math.max(t.minY,n.minY),n.maxY=Math.min(t.maxY,n.maxY)}return n})):i&&this.calculateTileRanges_(i)}forEachTileCoord(t,e,i){const n=this.getTileRangeForExtentAndZ(t,e);for(let t=n.minX,r=n.maxX;t<=r;++t)for(let r=n.minY,s=n.maxY;r<=s;++r)i([e,t,r])}forEachTileCoordParentTileRange(t,e,i,n){let r,s,o,a=null,l=t[0]-1;for(2===this.zoomFactor_?(s=t[1],o=t[2]):a=this.getTileCoordExtent(t,n);l>=this.minZoom;){if(void 0!==s&&void 0!==o?(s=Math.floor(s/2),o=Math.floor(o/2),r=jl(s,s,o,o,i)):r=this.getTileRangeForExtentAndZ(a,l,i),e(l,r))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,i){if(t[0]this.maxZoom||e0)||i.find((function(i){return e[h]==i[l]||!e[h].includes(":")&&t[h]+":"+e[h]===i[l]})),d){r.push(e[h]);const t=28e-5*e[c]/g,i=e.TileWidth,l=e.TileHeight;f?s.push([e[u][1],e[u][0]]):s.push(e[u]),n.push(t),o.push(i==l?i:[i,l]),a.push([e.MatrixWidth,e.MatrixHeight])}})),new Fh({extent:e,origins:s,resolutions:n,matrixIds:r,tileSizes:o,sizes:a})}function Mh(t){let e=t.getDefaultTileGrid();return e||(e=kh(t),t.setDefaultTileGrid(e)),e}function Ah(t,e,i){const n=e[0],r=t.getTileCoordCenter(e),s=Gh(i);if(!ee(s,r)){const e=Ie(s),i=Math.ceil((s[0]-r[0])/e);return r[0]+=e*i,t.getTileCoordForCoordAndZ(r,n)}return e}function Oh(t,e,i,n){n=void 0!==n?n:"top-left";const r=Dh(t,e,i);return new Ph({extent:t,origin:Ee(t,n),resolutions:r,tileSize:i})}function Nh(t){const e=t||{},i=e.extent||tn("EPSG:3857").getExtent(),n={extent:i,minZoom:e.minZoom,tileSize:e.tileSize,resolutions:Dh(i,e.maxZoom,e.tileSize,e.maxResolution)};return new Ph(n)}function Dh(t,e,i,n){e=void 0!==e?e:Ks,i=xl(void 0!==i?i:Hs);const r=be(t),s=Ie(t);n=n>0?n:Math.max(s/i[0],r/i[1]);const o=e+1,a=new Array(o);for(let t=0;ti.highWaterMark&&(i.highWaterMark=t)}useTile(t,e,i,n){}};function Uh(t,e){const i=/\{z\}/g,n=/\{x\}/g,r=/\{y\}/g,s=/\{-y\}/g;return function(o,a,l){if(o)return t.replace(i,o[0].toString()).replace(n,o[1].toString()).replace(r,o[2].toString()).replace(s,(function(){const t=o[0],i=e.getFullTileRange(t);if(!i)throw new Error("The {-y} placeholder requires a tile grid with extent");return(i.getHeight()-o[2]-1).toString()}))}}function zh(t,e){const i=t.length,n=new Array(i);for(let r=0;rthis.getTileInternal(t,e,i,n,s)),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return f.key=c,l?(f.interimTile=l,f.refreshInterimChain(),o.replace(h,f)):o.set(h,f),f}getTileInternal(t,e,i,n,r){let s=null;const o=Ll(t,e,i),a=this.getKey();if(this.tileCache.containsKey(o)){if(s=this.tileCache.get(o),s.key!=a){const l=s;s=this.createTile_(t,e,i,n,r,a),l.getState()==q?s.interimTile=l.interimTile:s.interimTile=l,s.refreshInterimChain(),this.tileCache.replace(o,s)}}else s=this.createTile_(t,e,i,n,r,a),this.tileCache.set(o,s);return s}setRenderReprojectionEdges(t){if(this.renderReprojectionEdges_!=t){this.renderReprojectionEdges_=t;for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}}setTileGridForProjection(t,e){const i=tn(t);if(i){const t=U(i);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}clear(){super.clear();for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear()}};function Kh(t){const e=t[0],i=new Array(e);let n,r,s=1<>=1;return i.join("")}var Hh=class extends qh{constructor(t){const e=void 0!==t.hidpi&&t.hidpi;super({cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,opaque:!0,projection:tn("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,tilePixelRatio:e?2:1,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.hidpi_=e,this.culture_=void 0!==t.culture?t.culture:"en-us",this.maxZoom_=void 0!==t.maxZoom?t.maxZoom:-1,this.apiKey_=t.key,this.imagerySet_=t.imagerySet,this.placeholderTiles_=t.placeholderTiles;const i="https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_;fetch(i).then((t=>t.json())).then((t=>this.handleImageryMetadataResponse(t)))}getApiKey(){return this.apiKey_}getImagerySet(){return this.imagerySet_}handleImageryMetadataResponse(t){if(200!=t.statusCode||"OK"!=t.statusDescription||"ValidCredentials"!=t.authenticationResultCode||1!=t.resourceSets.length||1!=t.resourceSets[0].resources.length)return void this.setState("error");const e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,n=Gh(this.getProjection()),r=this.hidpi_?2:1,s=e.imageWidth==e.imageHeight?e.imageWidth/r:[e.imageWidth/r,e.imageHeight/r],o=Nh({extent:n,minZoom:e.zoomMin,maxZoom:i,tileSize:s});this.tileGrid=o;const a=this.culture_,l=this.hidpi_,h=this.placeholderTiles_;if(this.tileUrlFunction=Xh(e.imageUrlSubdomains.map((function(t){const i=[0,0,0],n=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,r){if(!t)return;Il(t[0],t[1],t[2],i);const s=new URL(n.replace("{quadkey}",Kh(i))),o=s.searchParams;return l&&(o.set("dpi","d1"),o.set("device","mobile")),!0===h?o.delete("n"):!1===h&&o.set("n","z"),s.toString()}}))),e.imageryProviders){const t=hn(tn("EPSG:4326"),this.getProjection());this.setAttributions((i=>{const n=[],r=i.viewState,s=this.getTileGrid(),o=s.getZForResolution(r.resolution,this.zDirection),a=s.getTileCoordForCoordAndZ(r.center,o)[0];return e.imageryProviders.map((function(e){let r=!1;const s=e.coverageAreas;for(let e=0,n=s.length;e=n.zoomMin&&a<=n.zoomMax){const e=n.bbox;if(Le(De([e[1],e[0],e[3],e[2]],t),i.extent)){r=!0;break}}}r&&n.push(e.attribution)})),n.push('Terms of Use '),n}))}this.setState("ready")}};var Jh=class extends qh{constructor(t){const e=void 0!==(t=t||{}).projection?t.projection:"EPSG:3857",i=void 0!==t.tileGrid?t.tileGrid:Nh({extent:Gh(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize});super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:t.opaque,projection:e,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0}getGutter(){return this.gutter_}};var Qh=class extends Jh{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,maxZoom:void 0!==t.maxZoom?t.maxZoom:18,minZoom:t.minZoom,projection:t.projection,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection}),this.account_=t.account,this.mapId_=t.map||"",this.config_=t.config||{},this.templateCache_={},this.initializeMap_()}getConfig(){return this.config_}updateConfig(t){Object.assign(this.config_,t),this.initializeMap_()}setConfig(t){this.config_=t||{},this.initializeMap_()}initializeMap_(){const t=JSON.stringify(this.config_);if(this.templateCache_[t])return void this.applyTemplate_(this.templateCache_[t]);let e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);const i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}handleInitResponse_(t,e){const i=e.target;if(!i.status||i.status>=200&&i.status<300){let e;try{e=JSON.parse(i.responseText)}catch(t){return void this.setState("error")}this.applyTemplate_(e),this.templateCache_[t]=e,this.setState("ready")}else this.setState("error")}handleInitError_(t){this.setState("error")}applyTemplate_(t){const e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)}};function tc(t,e,i,n,r){ec(t,e,i||0,n||t.length-1,r||nc)}function ec(t,e,i,n,r){for(;n>i;){if(n-i>600){var s=n-i+1,o=e-i+1,a=Math.log(s),l=.5*Math.exp(2*a/3),h=.5*Math.sqrt(a*l*(s-l)/s)*(o-s/2<0?-1:1);ec(t,e,Math.max(i,Math.floor(e-o*l/s+h)),Math.min(n,Math.floor(e+(s-o)*l/s+h)),r)}var c=t[e],u=i,d=n;for(ic(t,i,e),r(t[n],c)>0&&ic(t,i,n);u0;)d--}0===r(t[i],c)?ic(t,i,d):ic(t,++d,n),d<=e&&(i=d+1),e<=d&&(n=d-1)}}function ic(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function nc(t,e){return te?1:0}let rc=class{constructor(t=9){this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}all(){return this._all(this.data,[])}search(t){let e=this.data;const i=[];if(!pc(t,e))return i;const n=this.toBBox,r=[];for(;e;){for(let s=0;s=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)}_split(t,e){const i=t[e],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);const s=this._chooseSplitIndex(i,r,n),o=mc(i.children.splice(s,i.children.length-s));o.height=i.height,o.leaf=i.leaf,oc(i,this.toBBox),oc(o,this.toBBox),e?t[e-1].children.push(o):this._splitRoot(i,o)}_splitRoot(t,e){this.data=mc([t,e]),this.data.height=t.height+1,this.data.leaf=!1,oc(this.data,this.toBBox)}_chooseSplitIndex(t,e,i){let n,r=1/0,s=1/0;for(let o=e;o<=i-e;o++){const e=ac(t,0,o,this.toBBox),a=ac(t,o,i,this.toBBox),l=gc(e,a),h=uc(e)+uc(a);l=e;n--){const e=t.children[n];lc(o,t.leaf?r(e):e),a+=dc(o)}return a}_adjustParentBBoxes(t,e,i){for(let n=i;n>=0;n--)lc(e[n],t)}_condense(t){for(let e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children,e.splice(e.indexOf(t[i]),1)):this.clear():oc(t[i],this.toBBox)}};function sc(t,e,i){if(!i)return e.indexOf(t);for(let n=0;n=t.minX&&e.maxY>=t.minY}function mc(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function _c(t,e,i,n,r){const s=[e,i];for(;s.length;){if((i=s.pop())-(e=s.pop())<=n)continue;const o=e+Math.ceil((i-e)/n/2)*n;tc(t,o,e,i,r),s.push(e,o,o,i)}}var yc=class{constructor(t){this.rbush_=new rc(t),this.items_={}}insert(t,e){const i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[U(e)]=i}load(t,e){const i=new Array(e.length);for(let n=0,r=e.length;n=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||ye(t,this.intersectsCoordinate.bind(this)))}return!1}setCenter(t){const e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],n=t.slice();n[e]=n[0]+i;for(let i=1;i1?a:2,o=o||new Array(a);for(let e=0;e>1;r{if(t===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),e&&this.simplifiedGeometry_.applyTransform(e);const i=this.simplifiedGeometry_.getFlatCoordinates();let n;switch(this.type_){case"LineString":i.length=Wn(i,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,t,i,0),n=[i.length];break;case"MultiLineString":n=[],i.length=Zn(i,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,t,i,0,n);break;case"Polygon":n=[],i.length=Kn(i,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(t),i,0,n)}return n&&(this.simplifiedGeometry_=new Gc(this.type_,i,n,2,this.properties_,this.id_)),this.squaredTolerance_=t,this.simplifiedGeometry_})),this}}function jc(t){const e=t.getType();switch(e){case"Point":return new ar(t.getFlatCoordinates());case"MultiPoint":return new Ac(t.getFlatCoordinates(),"XY");case"LineString":return new Fc(t.getFlatCoordinates(),"XY");case"MultiLineString":return new Lc(t.getFlatCoordinates(),"XY",t.getEnds());case"Polygon":const i=t.getFlatCoordinates(),n=t.getEnds(),r=br(i,n);return r.length>1?new Dc(i,"XY",r):new Pr(i,"XY",n);default:throw new Error("Invalid geometry type:"+e)}}Gc.prototype.getFlatCoordinates=Gc.prototype.getOrientedFlatCoordinates;var Bc=Gc,Uc="addfeature",zc="changefeature",Xc="clear",Vc="removefeature",Wc="featuresloadstart",Zc="featuresloadend",$c="featuresloaderror";class Yc extends e{constructor(t,e,i){super(t),this.feature=e,this.features=i}}var qc=class extends bh{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=f,this.format_=t.format,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(It(this.format_,"`format` must be set when `url` is set"),this.loader_=Yl(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:ql;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let i,n;this.featuresRtree_=e?new yc:null,this.loadedExtentsRtree_=new yc,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?n=t.features:t.features&&(i=t.features,n=i.getArray()),e||void 0!==i||(i=new Y(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==i&&this.bindFeaturesCollection_(i)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=U(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const i=t.getGeometry();if(i){const e=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new Yc(Uc,t))}setupChangeEvents_(t,e){e instanceof Bc||(this.featureChangeKeys_[t]=[A(e,v,this.handleFeatureChange_,this),A(e,i,this.handleFeatureChange_,this)])}addToIndex_(t,e){let i=!0;if(void 0!==e.getId()){const t=String(e.getId());if(t in this.idIndex_)if(e instanceof Bc){const n=this.idIndex_[t];n instanceof Bc?Array.isArray(n)?n.push(e):this.idIndex_[t]=[n,e]:i=!1}else i=!1;else this.idIndex_[t]=e}return i&&(It(!(t in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[t]=e),i}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],i=[],n=[];for(let e=0,n=t.length;e{e||(e=!0,this.addFeature(t.element),e=!1)})),t.addEventListener(W,(t=>{e||(e=!0,this.removeFeature(t.element),e=!1)})),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_){this.featureChangeKeys_[t].forEach(N)}this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){const t=t=>{this.removeFeatureInternal(t)};this.featuresRtree_.forEach(t);for(const t in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[t])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new Yc(Xc);this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const i=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(i,(function(i){const n=i.getGeometry();if(n instanceof Bc||n.intersectsCoordinate(t))return e(i)}))}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,(function(i){const n=i.getGeometry();if(n instanceof Bc||n.intersectsExtent(t)){const t=e(i);if(t)return t}}))}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),y(this.nullGeometryFeatures_)||h(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,(function(t){e.push(t)})),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const i=Ge(t,e);return[].concat(...i.map((t=>this.featuresRtree_.getInExtent(t))))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const i=t[0],n=t[1];let r=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||d,this.featuresRtree_.forEachInExtent(a,(function(t){if(e(t)){const e=t.getGeometry(),l=o;if(o=e instanceof Bc?0:e.closestPointXY(i,n,s,o),o{--this.loadingExtentsCount_,this.dispatchEvent(new Yc(Zc,void 0,t))}),(()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Yc($c))})),n.insert(s,{extent:s.slice()}))}this.loading=!(this.loader_.length<4)&&this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_;let i;e.forEachInExtent(t,(function(e){if(ce(e.extent,t))return i=e,!0})),i&&e.remove(i)}removeFeature(t){if(!t)return;const e=U(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t);this.removeFeatureInternal(t)&&this.changed()}removeFeatureInternal(t){const e=U(t),i=this.featureChangeKeys_[e];if(!i)return;i.forEach(N),delete this.featureChangeKeys_[e];const n=t.getId();return void 0!==n&&delete this.idIndex_[n.toString()],delete this.uidIndex_[e],this.dispatchEvent(new Yc(Vc,t)),t}removeFromIdIndex_(t){let e=!1;for(const i in this.idIndex_){const n=this.idIndex_[i];if(t instanceof Bc&&Array.isArray(n)&&n.includes(t))n.splice(n.indexOf(t),1);else if(this.idIndex_[i]===t){delete this.idIndex_[i],e=!0;break}}return e}setLoader(t){this.loader_=t}setUrl(t){It(this.format_,"`format` must be set when `url` is set"),this.url_=t,this.setLoader(Yl(t,this.format_))}};var Kc=class extends qc{constructor(t){super({attributions:t.attributions,wrapX:t.wrapX}),this.resolution=void 0,this.distance=void 0!==t.distance?t.distance:20,this.minDistance=t.minDistance||0,this.interpolationRatio=0,this.features=[],this.geometryFunction=t.geometryFunction||function(t){const e=t.getGeometry();return It(!e||"Point"===e.getType(),"The default `geometryFunction` can only handle `Point` or null geometries"),e},this.createCustomCluster_=t.createCluster,this.source=null,this.boundRefresh_=this.refresh.bind(this),this.updateDistance(this.distance,this.minDistance),this.setSource(t.source||null)}clear(t){this.features.length=0,super.clear(t)}getDistance(){return this.distance}getSource(){return this.source}loadFeatures(t,e,i){this.source.loadFeatures(t,e,i),e!==this.resolution&&(this.resolution=e,this.refresh())}setDistance(t){this.updateDistance(t,this.minDistance)}setMinDistance(t){this.updateDistance(this.distance,t)}getMinDistance(){return this.minDistance}setSource(t){this.source&&this.source.removeEventListener(v,this.boundRefresh_),this.source=t,t&&t.addEventListener(v,this.boundRefresh_),this.refresh()}refresh(){this.clear(),this.cluster(),this.addFeatures(this.features)}updateDistance(t,e){const i=0===t?0:Math.min(e,t)/t,n=t!==this.distance||this.interpolationRatio!==i;this.distance=t,this.minDistance=e,this.interpolationRatio=i,n&&this.refresh()}cluster(){if(void 0===this.resolution||!this.source)return;const t=[1/0,1/0,-1/0,-1/0],e=this.distance*this.resolution,i=this.source.getFeatures(),n={};for(let r=0,s=i.length;r=0;--e){const n=this.geometryFunction(t[e]);n?Ci(i,n.getCoordinates()):t.splice(e,1)}Mi(i,1/t.length);const n=Se(e),r=this.interpolationRatio,s=new ar([i[0]*(1-r)+n[0]*r,i[1]*(1-r)+n[1]*r]);return this.createCustomCluster_?this.createCustomCluster_(s,t):new At({geometry:s,features:t})}};var Hc=class extends Ft{constructor(t){super({tileCoord:t.tileCoord,loader:()=>Promise.resolve(new Uint8Array(4)),interpolate:t.interpolate,transition:t.transition}),this.pixelRatio_=t.pixelRatio,this.gutter_=t.gutter,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=t.sourceTileGrid,this.targetTileGrid_=t.targetTileGrid,this.wrappedTileCoord_=t.wrappedTileCoord||t.tileCoord,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const e=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),i=this.targetTileGrid_.getExtent();let n=this.sourceTileGrid_.getExtent();const r=i?Re(e,i):e;if(0===xe(r))return void(this.state=Q);const s=t.sourceProj,o=s.getExtent();o&&(n=n?Re(n,o):o);const a=this.targetTileGrid_.getResolution(this.wrappedTileCoord_[0]),l=t.targetProj,h=mh(s,l,r,a);if(!isFinite(h)||h<=0)return void(this.state=Q);const c=void 0!==t.errorThreshold?t.errorThreshold:xh;if(this.triangulation_=new vh(s,l,r,n,h*c,a),0===this.triangulation_.getTriangles().length)return void(this.state=Q);this.sourceZ_=this.sourceTileGrid_.getZForResolution(h);let u=this.triangulation_.calculateSourceExtent();if(n&&(s.canWrapX()?(u[1]=ui(u[1],n[1],n[3]),u[3]=ui(u[3],n[1],n[3])):u=Re(u,n)),xe(u)){const e=this.sourceTileGrid_.getTileRangeForExtentAndZ(u,this.sourceZ_),i=t.getTileFunction;for(let t=e.minX;t<=e.maxX;t++)for(let n=e.minY;n<=e.maxY;n++){const e=i(this.sourceZ_,t,n,this.pixelRatio_);e&&this.sourceTiles_.push(e)}0===this.sourceTiles_.length&&(this.state=Q)}else this.state=Q}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){const t=[];if(this.sourceTiles_.forEach((e=>{if(!e||e.getState()!==H)return;const i=e.getSize(),n=this.gutter_;let r;const s=Ct(e.getData());r=s||Rt(Tt(e.getData()));const o=[i[0]+2*n,i[1]+2*n],a=r instanceof Float32Array,l=o[0]*o[1],h=a?Float32Array:Uint8Array,c=new h(r.buffer),u=h.BYTES_PER_ELEMENT,d=u*c.length/l,g=c.byteLength/o[1],f=Math.floor(g/u/o[0]),p=l*f;let m=c;if(c.length!==p){m=new h(p);let t=0,e=0;const i=o[0]*f;for(let n=0;n=0;--e){const i=[];for(let n=0,r=t.length;n{const i=e.getState();if(i!==q&&i!==K)return;t++;const n=A(e,v,(function(){const i=e.getState();i!=H&&i!=J&&i!=Q||(N(n),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(n)})),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t){t.getState()==q&&t.load()}))}unlistenSources_(){this.sourcesListenerKeys_.forEach(N),this.sourcesListenerKeys_=null}};var Jc=class extends Bh{constructor(t){const e=void 0===t.projection?"EPSG:3857":t.projection;let i=t.tileGrid;void 0===i&&e&&(i=Nh({extent:Gh(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize})),super({cacheSize:.1,attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,projection:e,tileGrid:i,opaque:t.opaque,state:t.state,wrapX:t.wrapX,transition:t.transition,interpolate:t.interpolate}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.tileSize_=t.tileSize?xl(t.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=t.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=void 0===t.bandCount?4:t.bandCount,this.tileGridForProjection_={},this.tileCacheForProjection_={}}setTileSizes(t){this.tileSizes_=t}getTileSize(t){if(this.tileSizes_)return this.tileSizes_[t];if(this.tileSize_)return this.tileSize_;const e=this.getTileGrid();return e?xl(e.getTileSize(t)):[256,256]}getGutterForProjection(t){const e=this.getProjection();return!e||ln(e,t)?this.gutter_:0}setLoader(t){this.loader_=t}getReprojTile_(t,e,i,n,r){const s=this.getTileCacheForProjection(n),o=Ll(t,e,i);if(s.containsKey(o)){const t=s.get(o);if(t&&t.key==this.getKey())return t}const a=this.getTileGrid(),l=Math.max.apply(null,a.getResolutions().map(((t,e)=>{const i=xl(a.getTileSize(e)),n=this.getTileSize(e);return Math.max(n[0]/i[0],n[1]/i[1])}))),h=this.getTileGridForProjection(r),c=this.getTileGridForProjection(n),u=[t,e,i],d=this.getTileCoordForTileUrlFunction(u,n),g=Object.assign({sourceProj:r,sourceTileGrid:h,targetProj:n,targetTileGrid:c,tileCoord:u,wrappedTileCoord:d,pixelRatio:l,gutter:this.getGutterForProjection(r),getTileFunction:(t,e,i,n)=>this.getTile(t,e,i,n,r)},this.tileOptions),f=new Hc(g);return f.key=this.getKey(),f}getTile(t,e,i,n,r){const s=this.getProjection();if(s&&r&&!ln(s,r))return this.getReprojTile_(t,e,i,r,s);const o=this.getTileSize(t),a=Ll(t,e,i);if(this.tileCache.containsKey(a))return this.tileCache.get(a);const l=this.loader_;const h=Object.assign({tileCoord:[t,e,i],loader:function(){return m((function(){return l(t,e,i)}))},size:o},this.tileOptions),c=new Ft(h);return c.key=this.getKey(),c.addEventListener(v,this.handleTileChange_),this.tileCache.set(a,c),c}handleTileChange_(t){const e=t.target,i=U(e),n=e.getState();let r;n==K?(this.tileLoadingKeys_[i]=!0,r=Sh):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],r=n==J?Th:n==H?Eh:void 0),r&&this.dispatchEvent(new jh(r,e))}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||ln(e,t)))return this.tileGrid;const i=U(t);return i in this.tileGridForProjection_||(this.tileGridForProjection_[i]=Mh(t)),this.tileGridForProjection_[i]}setTileGridForProjection(t,e){const i=tn(t);if(i){const t=U(i);t in this.tileGridForProjection_||(this.tileGridForProjection_[t]=e)}}getTileCacheForProjection(t){const e=this.getProjection();if(!e||ln(e,t))return this.tileCache;const i=U(t);return i in this.tileCacheForProjection_||(this.tileCacheForProjection_[i]=new kl(.1)),this.tileCacheForProjection_[i]}expireCache(t,e){const i=this.getTileCacheForProjection(t);this.tileCache.expireCache(this.tileCache==i?e:{});for(const t in this.tileCacheForProjection_){const n=this.tileCacheForProjection_[t];n.expireCache(n==i?e:{})}}clear(){super.clear();for(const t in this.tileCacheForProjection_)this.tileCacheForProjection_[t].clear()}};function Qc(t,e){if(!t)return!1;if(!0===t)return!0;if(3!==e.getSamplesPerPixel())return!1;const i=e.fileDirectory.PhotometricInterpretation,n=GeoTIFF.globals.photometricInterpretations;return i===n.CMYK||i===n.YCbCr||i===n.CIELab||i===n.ICCLab}const tu="STATISTICS_MAXIMUM",eu="STATISTICS_MINIMUM";let iu;function nu(t){try{return t.getBoundingBox()}catch(e){return[0,0,t.getWidth(),t.getHeight()]}}function ru(t){try{return t.getOrigin().slice(0,2)}catch(e){return[0,t.getHeight()]}}function su(t,e){try{return t.getResolution(e)}catch(i){return[e.getWidth()/t.getWidth(),e.getHeight()/t.getHeight()]}}function ou(t){const e=t.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey&&32767!==e.ProjectedCSTypeGeoKey){const t="EPSG:"+e.ProjectedCSTypeGeoKey;let i=tn(t);if(!i){const n=Be(e.ProjLinearUnitsGeoKey);n&&(i=new ze({code:t,units:n}))}return i}if(e.GeographicTypeGeoKey&&32767!==e.GeographicTypeGeoKey){const t="EPSG:"+e.GeographicTypeGeoKey;let i=tn(t);if(!i){const n=Be(e.GeogAngularUnitsGeoKey);n&&(i=new ze({code:t,units:n}))}return i}return null}function au(t){return t.getImageCount().then((function(e){const i=new Array(e);for(let n=0;ni*t)throw new Error(n)}function cu(t){return t instanceof Int8Array?127:t instanceof Uint8Array||t instanceof Uint8ClampedArray?255:t instanceof Int16Array?32767:t instanceof Uint16Array?65535:t instanceof Int32Array?2147483647:t instanceof Uint32Array?4294967295:t instanceof Float32Array?34e37:255}class uu extends Jc{constructor(t){super({state:"loading",tileGrid:null,projection:t.projection||null,opaque:t.opaque,transition:t.transition,interpolate:!1!==t.interpolate,wrapX:t.wrapX}),this.sourceInfo_=t.sources;const e=this.sourceInfo_.length;this.sourceOptions_=t.sourceOptions,this.sourceImagery_=new Array(e),this.sourceMasks_=new Array(e),this.resolutionFactors_=new Array(e),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=!1!==t.normalize,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=t.convertToRGB||!1,this.setKey(this.sourceInfo_.map((t=>t.url)).join(","));const i=this,n=new Array(e);for(let t=0;t=0;--t){const i=ou(e[t]);if(i){this.projection=i;break}}}configure_(t){let e,i,n,r,s;const o=new Array(t.length),a=new Array(t.length),l=new Array(t.length);let h=0;const c=t.length;for(let u=0;u{4==(4&(t.fileDirectory.NewSubfileType||0))?d.push(t):c.push(t)}));const g=c.length;if(d.length>0&&d.length!==g)throw new Error(`Expected one mask per image found ${d.length} masks and ${g} images`);let f,p;const m=new Array(g),_=new Array(g),y=new Array(g);a[u]=new Array(g),l[u]=new Array(g);for(let t=0;ty.length&&(h=s.length-y.length);const t=s[s.length-1]/y[y.length-1];this.resolutionFactors_[u]=t;const e=y.map((e=>e*t)),i=`Resolution mismatch for source ${u}, got [${e}] but expected [${s}]`;hu(s.slice(h,s.length),e,.02,i,this.viewRejector)}else s=y,this.resolutionFactors_[u]=1;n?hu(n.slice(h,n.length),_,.01,`Tile size mismatch for source ${u}`,this.viewRejector):n=_,r?hu(r.slice(h,r.length),m,0,`Tile size mismatch for source ${u}`,this.viewRejector):r=m,this.sourceImagery_[u]=c.reverse(),this.sourceMasks_[u]=d.reverse()}for(let t=0,e=this.sourceImagery_.length;tl||s>l;)o.push([Math.ceil(r/l),Math.ceil(s/l)]),l+=l;break;case"truncated":let t=r,e=s;for(;t>l||e>l;)o.push([Math.ceil(t/l),Math.ceil(e/l)]),t>>=1,e>>=1;break;default:throw new Error("Unknown `tierSizeCalculation` configured")}o.push([1,1]),o.reverse();const h=[n],c=[0];for(let t=1,e=o.length;t{f=a,this.changed()})),y.src=_}};const pu="version1",mu="version2",_u="version3",yu={};yu[pu]={level0:{supports:[],formats:[],qualities:["native"]},level1:{supports:["regionByPx","sizeByW","sizeByH","sizeByPct"],formats:["jpg"],qualities:["native"]},level2:{supports:["regionByPx","regionByPct","sizeByW","sizeByH","sizeByPct","sizeByConfinedWh","sizeByWh"],formats:["jpg","png"],qualities:["native","color","grey","bitonal"]}},yu[mu]={level0:{supports:[],formats:["jpg"],qualities:["default"]},level1:{supports:["regionByPx","sizeByW","sizeByH","sizeByPct"],formats:["jpg"],qualities:["default"]},level2:{supports:["regionByPx","regionByPct","sizeByW","sizeByH","sizeByPct","sizeByConfinedWh","sizeByDistortedWh","sizeByWh"],formats:["jpg","png"],qualities:["default","bitonal"]}},yu[_u]={level0:{supports:[],formats:["jpg"],qualities:["default"]},level1:{supports:["regionByPx","regionSquare","sizeByW","sizeByH","sizeByWh"],formats:["jpg"],qualities:["default"]},level2:{supports:["regionByPx","regionSquare","regionByPct","sizeByW","sizeByH","sizeByPct","sizeByConfinedWh","sizeByWh"],formats:["jpg","png"],qualities:["default"]}},yu.none={none:{supports:[],formats:[],qualities:[]}};const xu=/^https?:\/\/library\.stanford\.edu\/iiif\/image-api\/(?:1\.1\/)?compliance\.html#level[0-2]$/,vu=/^https?:\/\/iiif\.io\/api\/image\/2\/level[0-2](?:\.json)?$/,wu=/(^https?:\/\/iiif\.io\/api\/image\/3\/level[0-2](?:\.json)?$)|(^level[0-2]$)/;const Su={};Su[pu]=function(t){let e=t.getComplianceLevelSupportedFeatures();return void 0===e&&(e=yu[pu].level0),{url:void 0===t.imageInfo["@id"]?void 0:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),supports:e.supports,formats:[...e.formats,void 0===t.imageInfo.formats?[]:t.imageInfo.formats],qualities:[...e.qualities,void 0===t.imageInfo.qualities?[]:t.imageInfo.qualities],resolutions:t.imageInfo.scale_factors,tileSize:void 0!==t.imageInfo.tile_width?void 0!==t.imageInfo.tile_height?[t.imageInfo.tile_width,t.imageInfo.tile_height]:[t.imageInfo.tile_width,t.imageInfo.tile_width]:null!=t.imageInfo.tile_height?[t.imageInfo.tile_height,t.imageInfo.tile_height]:void 0}},Su[mu]=function(t){const e=t.getComplianceLevelSupportedFeatures(),i=Array.isArray(t.imageInfo.profile)&&t.imageInfo.profile.length>1,n=i&&t.imageInfo.profile[1].supports?t.imageInfo.profile[1].supports:[],r=i&&t.imageInfo.profile[1].formats?t.imageInfo.profile[1].formats:[],s=i&&t.imageInfo.profile[1].qualities?t.imageInfo.profile[1].qualities:[];return{url:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return void 0===t.height?t.width:t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:[...e.supports,...n],formats:[...e.formats,...r],qualities:[...e.qualities,...s]}},Su[_u]=function(t){const e=t.getComplianceLevelSupportedFeatures(),i=void 0===t.imageInfo.extraFormats?e.formats:[...e.formats,...t.imageInfo.extraFormats],n=void 0!==t.imageInfo.preferredFormats&&Array.isArray(t.imageInfo.preferredFormats)&&t.imageInfo.preferredFormats.length>0?t.imageInfo.preferredFormats.filter((function(t){return["jpg","png","gif"].includes(t)})).reduce((function(t,e){return void 0===t&&i.includes(e)?e:t}),void 0):void 0;return{url:t.imageInfo.id,sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:void 0===t.imageInfo.extraFeatures?e.supports:[...e.supports,...t.imageInfo.extraFeatures],formats:i,qualities:void 0===t.imageInfo.extraQualities?e.qualities:[...e.qualities,...t.imageInfo.extraQualities],preferredFormat:n}};var Eu=class{constructor(t){this.setImageInfo(t)}setImageInfo(t){this.imageInfo="string"==typeof t?JSON.parse(t):t}getImageApiVersion(){if(void 0===this.imageInfo)return;let t=this.imageInfo["@context"]||"ol-no-context";"string"==typeof t&&(t=[t]);for(let e=0;e0&&"string"==typeof this.imageInfo.profile[0]&&vu.test(this.imageInfo.profile[0]))return this.imageInfo.profile[0]}}getComplianceLevelFromProfile(t){const e=this.getComplianceLevelEntryFromProfile(t);if(void 0===e)return;const i=e.match(/level[0-2](?:\.json)?$/g);return Array.isArray(i)?i[0].replace(".json",""):void 0}getComplianceLevelSupportedFeatures(){if(void 0===this.imageInfo)return;const t=this.getImageApiVersion(),e=this.getComplianceLevelFromProfile(t);return void 0===e?yu.none.none:yu[t][e]}getTileSourceOptions(t){const e=t||{},i=this.getImageApiVersion();if(void 0===i)return;const n=void 0===i?void 0:Su[i](this);return void 0!==n?{url:n.url,version:i,size:[this.imageInfo.width,this.imageInfo.height],sizes:n.sizes,format:void 0!==e.format&&n.formats.includes(e.format)?e.format:void 0!==n.preferredFormat?n.preferredFormat:"jpg",supports:n.supports,quality:e.quality&&n.qualities.includes(e.quality)?e.quality:n.qualities.includes("native")?"native":"default",resolutions:Array.isArray(n.resolutions)?n.resolutions.sort((function(t,e){return e-t})):void 0,tileSize:n.tileSize}:void 0}};function Tu(t){return t.toLocaleString("en",{maximumFractionDigits:10})}var Cu=class extends qh{constructor(t){const e=t||{};let i=e.url||"";i+=i.lastIndexOf("/")===i.length-1||""===i?"":"/";const n=e.version||mu,r=e.sizes||[],s=e.size;It(null!=s&&Array.isArray(s)&&2==s.length&&!isNaN(s[0])&&s[0]>0&&!isNaN(s[1])&&s[1]>0,"Missing or invalid `size`");const o=s[0],a=s[1],l=e.tileSize,h=e.tilePixelRatio||1,c=e.format||"jpg",u=e.quality||(e.version==pu?"native":"default");let d=e.resolutions||[];const g=e.supports||[],f=e.extent||[0,-a,o,0],p=null!=r&&Array.isArray(r)&&r.length>0,m=void 0!==l&&("number"==typeof l&&Number.isInteger(l)&&l>0||Array.isArray(l)&&l.length>0),_=null!=g&&Array.isArray(g)&&(g.includes("regionByPx")||g.includes("regionByPct"))&&(g.includes("sizeByWh")||g.includes("sizeByH")||g.includes("sizeByW")||g.includes("sizeByPct"));let y,x,v;if(d.sort((function(t,e){return e-t})),m||_)if(null!=l&&("number"==typeof l&&Number.isInteger(l)&&l>0?(y=l,x=l):Array.isArray(l)&&l.length>0&&((1==l.length||null==l[1]&&Number.isInteger(l[0]))&&(y=l[0],x=l[0]),2==l.length&&(Number.isInteger(l[0])&&Number.isInteger(l[1])?(y=l[0],x=l[1]):null==l[0]&&Number.isInteger(l[1])&&(y=l[1],x=l[1])))),void 0!==y&&void 0!==x||(y=Hs,x=Hs),0==d.length){v=Math.max(Math.ceil(Math.log(o/y)/Math.LN2),Math.ceil(Math.log(a/x)/Math.LN2));for(let t=v;t>=0;t--)d.push(Math.pow(2,t))}else{const t=Math.max(...d);v=Math.round(Math.log(t)/Math.LN2)}else if(y=o,x=a,d=[],p){r.sort((function(t,e){return t[0]-e[0]})),v=-1;const t=[];for(let e=0;e0&&d[d.length-1]==i?t.push(e):(d.push(i),v++)}if(t.length>0)for(let e=0;ev)return;const w=t[1],S=t[2],E=d[f];if(!(void 0===w||void 0===S||void 0===E||w<0||Math.ceil(o/E/y)<=w||S<0||Math.ceil(a/E/x)<=S)){if(_||m){const t=w*y*E,e=S*x*E;let i=y*E,r=x*E,s=y,c=x;if(t+i>o&&(i=o-t),e+r>a&&(r=a-e),t+y*E>o&&(s=Math.floor((o-t+E-1)/E)),e+x*E>a&&(c=Math.floor((a-e+E-1)/E)),0==t&&i==o&&0==e&&r==a)l="full";else if(!_||g.includes("regionByPx"))l=t+","+e+","+i+","+r;else if(g.includes("regionByPct")){l="pct:"+Tu(t/o*100)+","+Tu(e/a*100)+","+Tu(i/o*100)+","+Tu(r/a*100)}n!=_u||_&&!g.includes("sizeByWh")?!_||g.includes("sizeByW")?h=s+",":g.includes("sizeByH")?h=","+c:g.includes("sizeByWh")?h=s+","+c:g.includes("sizeByPct")&&(h="pct:"+Tu(100/E)):h=s+","+c}else if(l="full",p){const t=r[f][0],e=r[f][1];h=n==_u?t==o&&e==a?"max":t+","+e:t==o?"full":t+","}else h=n==_u?"max":"full";return i+l+"/"+h+"/0/"+u+"."+c}},transition:e.transition}),this.zDirection=e.zDirection}};var bu=class extends es{constructor(t,e,i,n,r,s,o){let a=t.getExtent();a&&t.canWrapX()&&(a=a.slice(),a[0]=-1/0,a[2]=1/0);let l=e.getExtent();l&&e.canWrapX()&&(l=l.slice(),l[0]=-1/0,l[2]=1/0);const h=l?Re(i,l):i,c=ph(t,e,Se(h),n),u=new vh(t,e,h,a,.5*c,n),d=u.calculateSourceExtent(),g=Me(d)?null:s(d,c,r),f=g?Zr:Kr,p=g?g.getPixelRatio():1;super(i,n,p,f),this.targetProj_=e,this.maxSourceExtent_=a,this.triangulation_=u,this.targetResolution_=n,this.targetExtent_=i,this.sourceImage_=g,this.sourcePixelRatio_=p,this.interpolate_=o,this.canvas_=null,this.sourceListenerKey_=null}disposeInternal(){this.state==$r&&this.unlistenSource_(),super.disposeInternal()}getImage(){return this.canvas_}getProjection(){return this.targetProj_}reproject_(){const t=this.sourceImage_.getState();if(t==Yr){const t=Ie(this.targetExtent_)/this.targetResolution_,e=be(this.targetExtent_)/this.targetResolution_;this.canvas_=_h(t,e,this.sourcePixelRatio_,yh(this.sourceImage_.getResolution()),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.interpolate_,!0)}this.state=t,this.changed()}load(){if(this.state==Zr){this.state=$r,this.changed();const t=this.sourceImage_.getState();t==Yr||t==qr?this.reproject_():(this.sourceListenerKey_=A(this.sourceImage_,v,(function(t){const e=this.sourceImage_.getState();e!=Yr&&e!=qr||(this.unlistenSource_(),this.reproject_())}),this),this.sourceImage_.load())}}unlistenSource_(){N(this.sourceListenerKey_),this.sourceListenerKey_=null}};const Ru=4,Pu="imageloadstart",Fu="imageloadend",Iu="imageloaderror";class Lu extends e{constructor(t,e){super(t),this.image=e}}function Mu(t,e){t.getImage().src=e}function Au(t,e,i,n){const r=e/i,s=Se(t),o=Si(Ie(t)/r,Ru),a=Si(be(t)/r,Ru);return Te(s,r,0,[o+2*Si((n-1)*o/2,Ru),a+2*Si((n-1)*a/2,Ru)])}var Ou=class extends bh{constructor(t){super({attributions:t.attributions,projection:t.projection,state:t.state,interpolate:void 0===t.interpolate||t.interpolate}),this.on,this.once,this.un,this.loader=t.loader||null,this.resolutions_=void 0!==t.resolutions?t.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0,this.image=null,this.wantedExtent_,this.wantedResolution_,this.static_=!!t.loader&&0===t.loader.length,this.wantedProjection_=null}getResolutions(){return this.resolutions_}setResolutions(t){this.resolutions_=t}findNearestResolution(t){const e=this.getResolutions();if(e){t=e[a(e,t,0)]}return t}getImage(t,e,i,n){const r=this.getProjection();if(!r||!n||ln(r,n))return r&&(n=r),this.getImageInternal(t,e,i,n);if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&ln(this.reprojectedImage_.getProjection(),n)&&this.reprojectedImage_.getResolution()==e&&ce(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new bu(r,n,t,e,i,((t,e,i)=>this.getImageInternal(t,e,i,r)),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(t,e,i,n){if(this.loader){const r=Au(t,e,i,1),s=this.findNearestResolution(e);if(this.image&&(this.static_||this.wantedProjection_===n&&(this.wantedExtent_&&ie(this.wantedExtent_,r)||ie(this.image.getExtent(),r))&&(this.wantedResolution_&&yh(this.wantedResolution_)===s||yh(this.image.getResolution())===s)))return this.image;this.wantedProjection_=n,this.wantedExtent_=r,this.wantedResolution_=s,this.image=new es(r,s,i,this.loader),this.image.addEventListener(v,this.handleImageChange.bind(this))}return this.image}handleImageChange(t){const e=t.target;let i;switch(e.getState()){case $r:this.loading=!0,i=Pu;break;case Yr:this.loading=!1,i=Fu;break;case qr:this.loading=!1,i=Iu;break;default:return}this.hasListener(i)&&this.dispatchEvent(new Lu(i,e))}};function Nu(t,e){const i=[];Object.keys(e).forEach((function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))}));const n=i.join("&");return t=t.replace(/[?&]$/,""),(t+=t.includes("?")?"&":"?")+n}function Du(t,e,i,n,r,s){const o=r.getCode().split(/:(?=\d+$)/).pop(),a=i/n,l=[vi(Ie(e)/a,Ru),vi(be(e)/a,Ru)];s.SIZE=l[0]+","+l[1],s.BBOX=e.join(","),s.BBOXSR=o,s.IMAGESR=o,s.DPI=Math.round(s.DPI?s.DPI*n:90*n);const h=t.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");if(h==t)throw new Error("`options.featureTypes` should be an Array");return Nu(h,s)}function ku(t){const e=t.load?t.load:ts,i=tn(t.projection||"EPSG:3857");return function(n,r,s){s=t.hidpi?s:1;const o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Object.assign(o,t.params),n=Au(n,r,s,t.ratio);const a=Du(t.url,n,r,s,i,o),l=new Image;return null!==t.crossOrigin&&(l.crossOrigin=t.crossOrigin),e(l,a).then((t=>{const e=Ie(n)/t.width*s;return{image:t,extent:n,resolution:e,pixelRatio:s}}))}}var Gu=class extends Ou{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.hidpi_=void 0===t.hidpi||t.hidpi,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Mu,this.params_=t.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5,this.loaderProjection_=null}getParams(){return this.params_}getImageInternal(t,e,i,n){return void 0===this.url_?null:(this.loader&&this.loaderProjection_===n||(this.loaderProjection_=n,this.loader=ku({crossOrigin:this.crossOrigin_,params:this.params_,projection:n,hidpi:this.hidpi_,url:this.url_,ratio:this.ratio_,load:(t,e)=>(this.image.setImage(t),this.imageLoadFunction_(this.image,e),ts(t))})),super.getImageInternal(t,e,i,n))}getImageLoadFunction(){return this.imageLoadFunction_}getUrl(){return this.url_}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.image_=null,this.changed()}};var ju=class extends Ou{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions,state:t.state}),this.canvasFunction_=t.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getImageInternal(t,e,i,n){e=this.findNearestResolution(e);let r=this.canvas_;if(r&&this.renderedRevision_==this.getRevision()&&r.getResolution()==e&&r.getPixelRatio()==i&&ie(r.getExtent(),t))return r;Oe(t=t.slice(),this.ratio_);const s=[Ie(t)/e*i,be(t)/e*i],o=this.canvasFunction_.call(this,t,e,i,s,n);return o&&(r=new is(t,e,i,o)),this.canvas_=r,this.renderedRevision_=this.getRevision(),r}};function Bu(t,e,i,n,r,s,o){const a=function(t,e,i,n){const r=Ie(t),s=be(t),o=e[0],a=e[1],l=.0254/n;return a*r>o*s?r*i/(o*l):s*i/(a*l)}(i,n,s,o),l=Se(i),h={OPERATION:r?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:o,SETDISPLAYWIDTH:Math.round(n[0]),SETDISPLAYHEIGHT:Math.round(n[1]),SETVIEWSCALE:a,SETVIEWCENTERX:l[0],SETVIEWCENTERY:l[1]};return Object.assign(h,e),Nu(t,h)}function Uu(t){const e=t.load||ts;return function(i,n,r){const s=new Image;null!==t.crossOrigin&&(s.crossOrigin=t.crossOrigin);const o=Ie(i=Au(i,n,r,t.ratio))/n,a=be(i)/n,l=[o*r,a*r],h=Bu(t.url,t.params,i,l,t.useOverlay,t.metersPerUnit||1,t.displayDpi||96);return e(s,h).then((t=>({image:t,extent:i,pixelRatio:r})))}}var zu=class extends Ou{constructor(t){super({interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.displayDpi_=void 0!==t.displayDpi?t.displayDpi:96,this.params_=t.params||{},this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Mu,this.hidpi_=void 0===t.hidpi||t.hidpi,this.metersPerUnit_=void 0!==t.metersPerUnit?t.metersPerUnit:1,this.ratio_=void 0!==t.ratio?t.ratio:1,this.useOverlay_=void 0!==t.useOverlay&&t.useOverlay,this.image_=null,this.renderedRevision_=0,this.loaderProjection_=null}getParams(){return this.params_}getImageInternal(t,e,i,n){return void 0===this.url_?null:(this.loader&&this.loaderProjection_===n||(this.loaderProjection_=n,this.loader=Uu({crossOrigin:this.crossOrigin_,params:this.params_,hidpi:this.hidpi_,metersPerUnit:this.metersPerUnit_,url:this.url_,useOverlay:this.useOverlay_,ratio:this.ratio_,load:(t,e)=>(this.image.setImage(t),this.imageLoadFunction_(this.image,e),ts(t))})),super.getImageInternal(t,e,i,n))}getImageLoadFunction(){return this.imageLoadFunction_}updateParams(t){Object.assign(this.params_,t),this.changed()}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}};function Xu(t){const e=t.load||ts,i=t.imageExtent,n=new Image;return null!==t.crossOrigin&&(n.crossOrigin=t.crossOrigin),()=>e(n,t.url).then((t=>{const e=Ie(i)/t.width,n=be(i)/t.height;return{image:t,extent:i,resolution:e!==n?[e,n]:n,pixelRatio:1}}))}var Vu=class extends Ou{constructor(t){const e=void 0!==t.crossOrigin?t.crossOrigin:null,i=void 0!==t.imageLoadFunction?t.imageLoadFunction:Mu;super({attributions:t.attributions,interpolate:t.interpolate,projection:tn(t.projection)}),this.url_=t.url,this.imageExtent_=t.imageExtent,this.image=null,this.image=new es(this.imageExtent_,void 0,1,Xu({url:t.url,imageExtent:t.imageExtent,crossOrigin:e,load:(t,e)=>(this.image.setImage(t),i(this.image,e),ts(t))})),this.image.addEventListener(v,this.handleImageChange.bind(this))}getImageExtent(){return this.imageExtent_}getImageInternal(t,e,i,n){return Le(t,this.image.getExtent())?this.image:null}getUrl(){return this.url_}};const Wu="1.3.0",Zu=[101,101];function $u(t,e,i,n,r){r.WIDTH=i[0],r.HEIGHT=i[1];const s=n.getAxisOrientation();let o;const a=Ti(r.VERSION,"1.3")>=0;return r[a?"CRS":"SRS"]=n.getCode(),o=a&&"ne"==s.substr(0,2)?[e[1],e[0],e[3],e[2]]:e,r.BBOX=o.join(","),Nu(t,r)}function Yu(t,e,i,n,r,s,o){s=Object.assign({REQUEST:"GetMap"},s);const a=e/i,l=[vi(Ie(t)/a,Ru),vi(be(t)/a,Ru)];if(1!=i)switch(o){case"geoserver":const t=90*i+.5|0;"FORMAT_OPTIONS"in s?s.FORMAT_OPTIONS+=";dpi:"+t:s.FORMAT_OPTIONS="dpi:"+t;break;case"mapserver":s.MAP_RESOLUTION=90*i;break;case"carmentaserver":case"qgis":s.DPI=90*i;break;default:throw new Error("Unknown `serverType` configured")}return $u(r,t,l,n,s)}function qu(t,e){return Object.assign({REQUEST:e,SERVICE:"WMS",VERSION:Wu,FORMAT:"image/png",STYLES:"",TRANSPARENT:!0},t)}function Ku(t){const e=void 0===t.hidpi||t.hidpi,i=tn(t.projection||"EPSG:3857"),n=t.ratio||1.5,r=t.load||ts;return(s,o,a)=>{s=Au(s,o,a,n),1==a||e&&void 0!==t.serverType||(a=1);const l=Yu(s,o,a,i,t.url,qu(t.params,"GetMap"),t.serverType),h=new Image;return null!==t.crossOrigin&&(h.crossOrigin=t.crossOrigin),r(h,l).then((t=>({image:t,extent:s,pixelRatio:a})))}}function Hu(t,e,i){if(void 0===t.url)return;const n=tn(t.projection||"EPSG:3857"),r=Te(e,i,0,Zu),s={QUERY_LAYERS:t.params.LAYERS,INFO_FORMAT:"application/json"};Object.assign(s,qu(t.params,"GetFeatureInfo"),t.params);const o=wi((e[0]-r[0])/i,Ru),a=wi((r[3]-e[1])/i,Ru),l=Ti(s.VERSION,"1.3")>=0;return s[l?"I":"X"]=o,s[l?"J":"Y"]=a,$u(t.url,r,Zu,n,s)}function Ju(t,e){if(void 0===t.url)return;const i={SERVICE:"WMS",VERSION:Wu,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===t.params||void 0===t.params.LAYER){const e=t.params.LAYERS;if(!(!Array.isArray(e)||1===e.length))return;i.LAYER=e}if(void 0!==e){const n=tn(t.projection||"EPSG:3857").getMetersPerUnit()||1,r=28e-5;i.SCALE=e*n/r}return Object.assign(i,t.params),Nu(t.url,i)}var Qu=class extends Ou{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Mu,this.params_=t.params,this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5,this.loaderProjection_=null}getFeatureInfoUrl(t,e,i,n){const r=tn(i),s=this.getProjection();s&&s!==r&&(e=ph(s,r,t,e),t=un(t,r,s));return Hu({url:this.url_,params:{...this.params_,...n},projection:s||r},t,e)}getLegendUrl(t,e){return Ju({url:this.url_,params:{...this.params_,...e}},t)}getParams(){return this.params_}getImageInternal(t,e,i,n){return void 0===this.url_?null:(this.loader&&this.loaderProjection_===n||(this.loaderProjection_=n,this.loader=Ku({crossOrigin:this.crossOrigin_,params:this.params_,projection:n,serverType:this.serverType_,hidpi:this.hidpi_,url:this.url_,ratio:this.ratio_,load:(t,e)=>(this.image.setImage(t),this.imageLoadFunction_(this.image,e),ts(t))})),super.getImageInternal(t,e,i,n))}getImageLoadFunction(){return this.imageLoadFunction_}getUrl(){return this.url_}setImageLoadFunction(t){this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.loader=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.changed()}changed(){this.image=null,super.changed()}};const td={"image/png":!0,"image/jpeg":!0,"image/gif":!0,"image/webp":!0},ed={"application/vnd.mapbox-vector-tile":!0,"application/geo+json":!0};function id(t,e){let i,n;for(let r=0;rt.maxTileCol||u.tileRowt.maxTileRow)return}Object.assign(u,_);const d=i.replace(/\{(\w+?)\}/g,(function(t,e){return u[e]}));return th(y,d)}}}function sd(t){return Ql(t.url).then((function(e){return function(t,e){const i=e.tileMatrixSetLimits;let n;if("map"===e.dataType)n=id(e.links,t.mediaType);else{if("vector"!==e.dataType)throw new Error('Expected tileset data type to be "map" or "vector"');n=nd(e.links,t.mediaType,t.supportedMediaTypes)}if(e.tileMatrixSet)return rd(t,e.tileMatrixSet,n,i);const r=e.links.find((t=>"http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme"===t.rel));if(!r)throw new Error("Expected http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme link or tileMatrixSet");const s=r.href;return Ql(th(t.url,s)).then((function(e){return rd(t,e,n,i)}))}(t,e)}))}var od=class extends qh{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition});sd({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){$i(t),this.setState("error")}};var ad=class extends $h{constructor(t){const e=t.projection||"EPSG:3857",i=t.extent||Gh(e),n=t.tileGrid||Nh({extent:i,maxResolution:t.maxResolution,maxZoom:void 0!==t.maxZoom?t.maxZoom:22,minZoom:t.minZoom,tileSize:t.tileSize||512});super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,interpolate:!0,opaque:!1,projection:e,state:t.state,tileGrid:n,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:ld,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:void 0===t.zDirection?1:t.zDirection}),this.format_=t.format?t.format:null,this.sourceTileCache=new kl(this.tileCache.highWaterMark),this.overlaps_=null==t.overlaps||t.overlaps,this.tileClass=t.tileClass?t.tileClass:Xl,this.tileGrids_={}}getFeaturesInExtent(t){const e=[],i=this.tileCache;if(0===i.getCount())return e;const n=Ol(i.peekFirstKey())[0],r=this.tileGrid;return i.forEach((function(i){if(i.tileCoord[0]!==n||i.getState()!==H)return;const s=i.getSourceTiles();for(let i=0,n=s.length;i{const n=Al(e),r=i.peek(n);if(r){const e=r.sourceTiles;for(let i=0,n=e.length;i{const r=this.tileUrlFunction(n,t,e),s=this.sourceTileCache.containsKey(r)?this.sourceTileCache.get(r):new this.tileClass(n,r?q:Q,r,this.format_,this.tileLoadFunction);i.sourceTiles.push(s);const o=s.getState();if(o{this.handleTileChange(e);const n=s.getState();if(n===H||n===J){const e=s.getKey();e in i.errorTileKeys?s.getState()===H&&delete i.errorTileKeys[e]:i.loadingSourceTiles--,n===J?i.errorTileKeys[e]=!0:s.removeEventListener(v,t),0===i.loadingSourceTiles&&i.setState(y(i.errorTileKeys)?H:J)}};s.addEventListener(v,t),i.loadingSourceTiles++}o===q&&(s.extent=l.getTileCoordExtent(n),s.projection=e,s.resolution=l.getResolution(n[0]),this.sourceTileCache.set(r,s),s.load())})),i.loadingSourceTiles||i.setState(i.sourceTiles.some((t=>t.getState()===J))?J:H)}return i.sourceTiles}getTile(t,e,i,n,r){const s=Ll(t,e,i),o=this.getKey();let a;if(this.tileCache.containsKey(s)&&(a=this.tileCache.get(s),a.key===o))return a;const l=[t,e,i];let h=this.getTileCoordForTileUrlFunction(l,r);const c=this.getTileGrid().getExtent(),u=this.getTileGridForProjection(r);if(h&&c){const e=u.getTileCoordExtent(h);Jt(e,-u.getResolution(t),e),Le(c,e)||(h=null)}let d=!0;if(null!==h){const e=this.tileGrid,i=u.getResolution(t),s=e.getZForResolution(i,1),o=u.getTileCoordExtent(h);Jt(o,-i,o),e.forEachTileCoord(o,s,(t=>{d=d&&!this.tileUrlFunction(t,n,r)}))}const g=new zl(l,d?Q:q,h,this.getSourceTiles.bind(this,n,r));return g.key=o,a?(g.interimTile=a,g.refreshInterimChain(),this.tileCache.replace(s,g)):this.tileCache.set(s,g),g}getTileGridForProjection(t){const e=t.getCode();let i=this.tileGrids_[e];if(!i){const t=this.tileGrid,n=t.getResolutions().slice(),r=n.map((function(e,i){return t.getOrigin(i)})),s=n.map((function(e,i){return t.getTileSize(i)})),o=Ks+1;for(let t=n.length;t{const s=this.loadedTileCallback.bind(this,i,n);return t.forEachLoadedTile(e,n,r,s)}}forEachFeatureAtCoordinate(t,e,i,n,r){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){const e=t.target;e.getState()!==Yr&&e.getState()!==qr||this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return e!=Yr&&e!=qr&&t.addEventListener(v,this.boundHandleImageChange_),e==Zr&&(t.load(),e=t.getState()),e==Yr}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}disposeInternal(){delete this.layer_,super.disposeInternal()}};const fd=[];let pd=null;var md=class extends gd{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=[1,0,0,1,0,0],this.pixelTransform=[1,0,0,1,0,0],this.inversePixelTransform=[1,0,0,1,0,0],this.context=null,this.containerReused=!1,this.pixelContext_=null,this.frameState=null}getImageData(t,e,i){let n;pd||(pd=mt(1,1,void 0,{willReadFrequently:!0})),pd.clearRect(0,0,1,1);try{pd.drawImage(t,e,i,1,1,0,0,1,1),n=pd.getImageData(0,0,1,1).data}catch(t){return pd=null,null}return n}getBackground(t){let e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0}useContainer(t,e,i){const n=this.getLayer().getClassName();let r,s;if(t&&t.className===n&&(!i||t&&t.style.backgroundColor&&c(Es(t.style.backgroundColor),Es(i)))){const e=t.firstElementChild;e instanceof HTMLCanvasElement&&(s=e.getContext("2d"))}if(s&&s.canvas.style.transform===e?(this.container=t,this.context=s,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){r=document.createElement("div"),r.className=n;let t=r.style;t.position="absolute",t.width="100%",t.height="100%",s=mt();const e=s.canvas;r.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=r,this.context=s}this.containerReused||!i||this.container.style.backgroundColor||(this.container.style.backgroundColor=i)}clipUnrotated(t,e,i){const n=Pe(i),r=Fe(i),s=we(i),o=ve(i);Bt(e.coordinateToPixelTransform,n),Bt(e.coordinateToPixelTransform,r),Bt(e.coordinateToPixelTransform,s),Bt(e.coordinateToPixelTransform,o);const a=this.inversePixelTransform;Bt(a,n),Bt(a,r),Bt(a,s),Bt(a,o),t.save(),t.beginPath(),t.moveTo(Math.round(n[0]),Math.round(n[1])),t.lineTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.clip()}dispatchRenderEvent_(t,e,i){const n=this.getLayer();if(n.hasListener(t)){const r=new wo(t,this.inversePixelTransform,i,e);n.dispatchEvent(r)}}preRender(t,e){this.frameState=e,this.dispatchRenderEvent_(zs,t,e)}postRender(t,e){this.dispatchRenderEvent_(Xs,t,e)}getRenderTransform(t,e,i,n,r,s,o){const a=r/2,l=s/2,h=n/e,c=-h,u=-t[0]+o,d=-t[1];return Wt(this.tempTransform,a,l,h,c,-i,u,d)}disposeInternal(){delete this.frameState,super.disposeInternal()}};var _d=class extends md{constructor(t){super(t),this.image_=null}getImage(){return this.image_?this.image_.getImage():null}prepareFrame(t){const e=t.layerStatesArray[t.layerIndex],i=t.pixelRatio,n=t.viewState,r=n.resolution,s=this.getLayer().getSource(),o=t.viewHints;let a=t.extent;if(void 0!==e.extent&&(a=Re(a,xn(e.extent,n.projection))),!o[$s]&&!o[Ys]&&!Me(a))if(s){const t=n.projection,e=s.getImage(a,r,i,t);e&&(this.loadImage(e)?this.image_=e:e.getState()===Kr&&(this.image_=null))}else this.image_=null;return!!this.image_}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=Bt(e.pixelToCoordinateTransform,t.slice()),r=i.getExtent();if(r&&!ee(r,n))return null;const s=this.image_.getExtent(),o=this.image_.getImage(),a=Ie(s),l=Math.floor(o.width*((n[0]-s[0])/a));if(l<0||l>=o.width)return null;const h=be(s),c=Math.floor(o.height*((s[3]-n[1])/h));return c<0||c>=o.height?null:this.getImageData(o,l,c)}renderFrame(t,e){const i=this.image_,n=i.getExtent(),r=i.getResolution(),[s,o]=Array.isArray(r)?r:[r,r],a=i.getPixelRatio(),l=t.layerStatesArray[t.layerIndex],h=t.pixelRatio,c=t.viewState,u=c.center,d=c.resolution,g=h*s/(d*a),f=h*o/(d*a),p=t.extent,m=c.resolution,_=c.rotation,y=Math.round(Ie(p)/m*h),x=Math.round(be(p)/m*h);Wt(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/h,1/h,_,-y/2,-x/2),Zt(this.inversePixelTransform,this.pixelTransform);const v=qt(this.pixelTransform);this.useContainer(e,v,this.getBackground(t));const w=this.context,S=w.canvas;S.width!=y||S.height!=x?(S.width=y,S.height=x):this.containerReused||w.clearRect(0,0,y,x);let E=!1,T=!0;if(l.extent){const e=xn(l.extent,c.projection);T=Le(e,t.extent),E=T&&!ie(e,t.extent),E&&this.clipUnrotated(w,t,e)}const C=i.getImage(),b=Wt(this.tempTransform,y/2,x/2,g,f,0,a*(n[0]-u[0])/s,a*(u[1]-n[3])/o);this.renderedResolution=o*h/a;const R=C.width*b[0],P=C.height*b[3];if(this.getLayer().getSource().getInterpolate()||(w.imageSmoothingEnabled=!1),this.preRender(w,t),T&&R>=.5&&P>=.5){const t=b[4],e=b[5],i=l.opacity;let n;1!==i&&(n=w.globalAlpha,w.globalAlpha=i),w.drawImage(C,0,0,+C.width,+C.height,t,e,R,P),1!==i&&(w.globalAlpha=n)}return this.postRender(w,t),E&&w.restore(),w.imageSmoothingEnabled=!0,v!==S.style.transform&&(S.style.transform=v),this.container}};var yd=class extends dd{constructor(t){super(t)}createRenderer(){return new _d(this)}getData(t){return super.getData(t)}},xd="preload",vd="useInterimTilesOnError";var wd=class extends yo{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un,this.setPreload(void 0!==t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError)}getPreload(){return this.get(xd)}setPreload(t){this.set(xd,t)}getUseInterimTilesOnError(){return this.get(vd)}setUseInterimTilesOnError(t){this.set(vd,t)}getData(t){return super.getData(t)}};var Sd=class extends md{constructor(t){super(t),this.extentChanged=!0,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new Bl(0,0,0,0)}isDrawableTile(t){const e=this.getLayer(),i=t.getState(),n=e.getUseInterimTilesOnError();return i==H||i==Q||i==J&&!n}getTile(t,e,i,n){const r=n.pixelRatio,s=n.viewState.projection,o=this.getLayer();let a=o.getSource().getTile(t,e,i,r,s);return a.getState()==J&&o.getUseInterimTilesOnError()&&o.getPreload()>0&&(this.newTiles_=!0),this.isDrawableTile(a)||(a=a.getInterimTile()),a}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=Bt(e.pixelToCoordinateTransform,t.slice()),r=i.getExtent();if(r&&!ee(r,n))return null;const s=e.pixelRatio,o=e.viewState.projection,a=e.viewState,l=i.getRenderSource(),h=l.getTileGridForProjection(a.projection),c=l.getTilePixelRatio(e.pixelRatio);for(let t=h.getZForResolution(a.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=l.getTile(t,e[1],e[2],s,o);if(!(i instanceof ns||i instanceof wh)||i instanceof wh&&i.getState()===Q)return null;if(i.getState()!==H)continue;const r=h.getOrigin(t),u=xl(h.getTileSize(t)),d=h.getResolution(t),g=Math.floor(c*((n[0]-r[0])/d-e[1]*u[0])),f=Math.floor(c*((r[1]-n[1])/d-e[2]*u[1])),p=Math.round(c*l.getGutterForProjection(a.projection));return this.getImageData(i.getImage(),g+p,f+p)}return null}loadedTileCallback(t,e,i){return!!this.isDrawableTile(i)&&super.loadedTileCallback(t,e,i)}prepareFrame(t){return!!this.getLayer().getSource()}renderFrame(t,e){const i=t.layerStatesArray[t.layerIndex],n=t.viewState,r=n.projection,o=n.resolution,a=n.center,l=n.rotation,h=t.pixelRatio,c=this.getLayer(),u=c.getSource(),d=u.getRevision(),g=u.getTileGridForProjection(r),f=g.getZForResolution(o,u.zDirection),p=g.getResolution(f);let m=t.extent;const _=t.viewState.resolution,y=u.getTilePixelRatio(h),x=Math.round(Ie(m)/_*h),v=Math.round(be(m)/_*h),w=i.extent&&xn(i.extent,r);w&&(m=Re(m,xn(i.extent,r)));const S=p*x/2/y,E=p*v/2/y,T=[a[0]-S,a[1]-E,a[0]+S,a[1]+E],C=g.getTileRangeForExtentAndZ(m,f),b={};b[f]={};const R=this.createLoadedTileFinder(u,r,b),P=this.tmpExtent,F=this.tmpTileRange_;this.newTiles_=!1;const I=l?Ce(n.center,_,l,t.size):void 0;for(let e=C.minX;e<=C.maxX;++e)for(let n=C.minY;n<=C.maxY;++n){if(l&&!g.tileCoordIntersectsViewport([f,e,n],I))continue;const r=this.getTile(f,e,n,t);if(this.isDrawableTile(r)){const e=U(this);if(r.getState()==H){b[f][r.tileCoord.toString()]=r;let t=r.inTransition(e);t&&1!==i.opacity&&(r.endTransition(e),t=!1),this.newTiles_||!t&&this.renderedTiles.includes(r)||(this.newTiles_=!0)}if(1===r.getAlpha(e,t.time))continue}const s=g.getTileCoordChildTileRange(r.tileCoord,F,P);let o=!1;s&&(o=R(f+1,s)),o||g.forEachTileCoordParentTileRange(r.tileCoord,R,F,P)}const L=p/o*h/y;Wt(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/h,1/h,l,-x/2,-v/2);const M=qt(this.pixelTransform);this.useContainer(e,M,this.getBackground(t));const A=this.context,O=A.canvas;Zt(this.inversePixelTransform,this.pixelTransform),Wt(this.tempTransform,x/2,v/2,L,L,0,-x/2,-v/2),O.width!=x||O.height!=v?(O.width=x,O.height=v):this.containerReused||A.clearRect(0,0,x,v),w&&this.clipUnrotated(A,t,w),u.getInterpolate()||(A.imageSmoothingEnabled=!1),this.preRender(A,t),this.renderedTiles.length=0;let N,D,k,G=Object.keys(b).map(Number);G.sort(s),1!==i.opacity||this.containerReused&&!u.getOpaque(t.viewState.projection)?(N=[],D=[]):G=G.reverse();for(let e=G.length-1;e>=0;--e){const i=G[e],n=u.getTilePixelSize(i,h,r),s=g.getResolution(i)/p,o=n[0]*s*L,a=n[1]*s*L,l=g.getTileCoordForCoordAndZ(Pe(T),i),c=g.getTileCoordExtent(l),d=Bt(this.tempTransform,[y*(c[0]-T[0])/p,y*(T[3]-c[3])/p]),m=y*u.getGutterForProjection(r),_=b[i];for(const e in _){const n=_[e],r=n.tileCoord,s=l[1]-r[1],h=Math.round(d[0]-(s-1)*o),c=l[2]-r[2],g=Math.round(d[1]-(c-1)*a),p=Math.round(d[0]-s*o),y=Math.round(d[1]-c*a),x=h-p,v=g-y,w=f===i,S=w&&1!==n.getAlpha(U(this),t.time);let E=!1;if(!S)if(N){k=[p,y,p+x,y,p+x,y+v,p,y+v];for(let t=0,e=N.length;tthis._maxQueueLength;)this._queue.shift().callback(null,null)}_dispatch(){if(this._running||0===this._queue.length)return;const t=this._queue.shift();this._job=t;const e=t.inputs[0].width,i=t.inputs[0].height,n=t.inputs.map((function(t){return t.data.buffer})),r=this._workers.length;if(this._running=r,1===r)return void this._workers[0].postMessage({buffers:n,meta:t.meta,imageOps:this._imageOps,width:e,height:i},n);const s=t.inputs[0].data.length,o=4*Math.ceil(s/4/r);for(let s=0;sStadia Maps ','© OpenMapTiles ',cd];t.layer.startsWith("stamen_")&&l.splice(1,0,'© Stamen Design '),super({attributions:l,cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,maxZoom:void 0!==t.maxZoom?t.maxZoom:n.maxZoom,minZoom:void 0!==t.minZoom?t.minZoom:n.minZoom,opaque:r.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:a,tilePixelRatio:o?2:1,wrapX:t.wrapX,zDirection:t.zDirection})}};var Ud=class extends qh{constructor(t){super({attributions:(t=t||{}).attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.params_=t.params||{},this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r,s){const o=this.urls;if(!o)return;let a;if(1==o.length)a=o[0];else{a=o[_i(Nl(t),o.length)]}return Du(a,i,(this.tileGrid||this.getTileGridForProjection(r)).getResolution(t[0]),n,r,s)}getTilePixelRatio(t){return this.hidpi_?t:1}updateParams(t){Object.assign(this.params_,t),this.setKey(this.getKeyForParams_())}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_||(e=1);const r=n.getTileCoordExtent(t,this.tmpExtent_);let s=xl(n.getTileSize(t[0]),this.tmpSize);1!=e&&(s=yl(s,e,this.tmpSize));const o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return Object.assign(o,this.params_),this.getRequestUrl_(t,s,r,e,i,o)}};var zd=class extends Jh{constructor(t){super({opaque:!1,projection:(t=t||{}).projection,tileGrid:t.tileGrid,wrapX:void 0===t.wrapX||t.wrapX,zDirection:t.zDirection,url:t.template||"z:{z} x:{x} y:{y}",tileLoadFunction:(t,e)=>{const i=t.getTileCoord()[0],n=xl(this.tileGrid.getTileSize(i)),r=mt(n[0],n[1]);r.strokeStyle="grey",r.strokeRect(.5,.5,n[0]+.5,n[1]+.5),r.fillStyle="grey",r.strokeStyle="white",r.textAlign="center",r.textBaseline="middle",r.font="24px sans-serif",r.lineWidth=4,r.strokeText(e,n[0]/2,n[1]/2,n[0]),r.fillText(e,n[0]/2,n[1]/2,n[0]),t.setImage(r.canvas)}})}};var Xd=class extends qh{constructor(t){if(super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:tn("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.tileJSON_=null,this.tileSize_=t.tileSize,t.url)if(t.jsonp)Kl(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else{if(!t.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(t.tileJSON)}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(t){const e=tn("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=hn(e,i);n=De(t.bounds,r)}const r=Gh(i),s=t.minzoom||0,o=Nh({extent:r,maxZoom:t.maxzoom||22,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=o,this.tileUrlFunction=zh(t.tiles,o),t.attribution&&!this.getAttributions()){const e=void 0!==n?n:r;this.setAttributions((function(i){return Le(e,i.extent)?[t.attribution]:null}))}this.tileJSON_=t,this.setState("ready")}handleTileJSONError(){this.setState("error")}};var Vd=class extends qh{constructor(t){t=t||{};const e=Object.assign({},t.params),i=!("TRANSPARENT"in e)||e.TRANSPARENT;super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:!i,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.params_=e,this.v13_=!0,this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}getFeatureInfoUrl(t,e,i,n){const r=tn(i),s=this.getProjection()||r;let o=this.getTileGrid();o||(o=this.getTileGridForProjection(s));const a=un(t,r,s),l=ph(s,r,t,e),h=o.getZForResolution(l,this.zDirection),c=o.getResolution(h),u=o.getTileCoordForCoordAndZ(a,h);if(o.getResolutions().length<=u[0])return;let d=o.getTileCoordExtent(u,this.tmpExtent_);const g=this.gutter_;0!==g&&(d=Jt(d,c*g,d));const f={QUERY_LAYERS:this.params_.LAYERS};Object.assign(f,qu(this.params_,"GetFeatureInfo"),n);const p=Math.floor((a[0]-d[0])/c),m=Math.floor((d[3]-a[1])/c);return f[this.v13_?"I":"X"]=p,f[this.v13_?"J":"Y"]=m,this.getRequestUrl_(u,d,1,s||r,f)}getLegendUrl(t,e){if(void 0===this.urls[0])return;const i={SERVICE:"WMS",VERSION:Wu,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,n=28e-5;i.SCALE=t*e/n}return Object.assign(i,e),Nu(this.urls[0],i)}getGutter(){return this.gutter_}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r){const s=this.urls;if(!s)return;let o;if(1==s.length)o=s[0];else{o=s[_i(Nl(t),s.length)]}return Yu(e,(this.tileGrid||this.getTileGridForProjection(n)).getResolution(t[0]),i,n,o,r,this.serverType_)}getTilePixelRatio(t){return this.hidpi_&&void 0!==this.serverType_?t:1}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}updateParams(t){Object.assign(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())}updateV13_(){const t=this.params_.VERSION||Wu;this.v13_=Ti(t,"1.3")>=0}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);const r=n.getResolution(t[0]);let s=n.getTileCoordExtent(t,this.tmpExtent_);const o=this.gutter_;0!==o&&(s=Jt(s,r*o,s));const a=Object.assign({},qu(this.params_,"GetMap"));return this.getRequestUrl_(t,s,e,i,a)}};class Wd extends rt{constructor(t,e,i,n,r,s){super(t,e),this.src_=i,this.extent_=n,this.preemptive_=r,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}getImage(){return null}getData(t){if(!this.grid_||!this.keys_)return null;const e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),n=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof n)return null;let r=n.charCodeAt(Math.floor(e*n.length));r>=93&&r--,r>=35&&r--,r-=32;let s=null;if(r in this.keys_){const t=this.keys_[r];s=this.data_&&t in this.data_?this.data_[t]:t}return s}forDataAtCoordinate(t,e,i){this.state==Q&&!0===i?(this.state=q,O(this,v,(function(i){e(this.getData(t))}),this),this.loadInternal_()):!0===i?setTimeout((()=>{e(this.getData(t))}),0):e(this.getData(t))}getKey(){return this.src_}handleError_(){this.state=J,this.changed()}handleLoad_(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=H,this.changed()}loadInternal_(){if(this.state==q)if(this.state=K,this.jsonp_)Kl(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{const t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(t)}else this.handleError_()}onXHRError_(t){this.handleError_()}load(){this.preemptive_?this.loadInternal_():this.setState(Q)}}var Zd=class extends Bh{constructor(t){if(super({projection:tn("EPSG:3857"),state:"loading",zDirection:t.zDirection}),this.preemptive_=void 0===t.preemptive||t.preemptive,this.tileUrlFunction_=Vh,this.template_=void 0,this.jsonp_=t.jsonp||!1,t.url)if(this.jsonp_)Kl(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else{if(!t.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(t.tileJSON)}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTemplate(){return this.template_}forDataAtCoordinateAndResolution(t,e,i,n){if(this.tileGrid){const r=this.tileGrid.getZForResolution(e,this.zDirection),s=this.tileGrid.getTileCoordForCoordAndZ(t,r);this.getTile(s[0],s[1],s[2],1,this.getProjection()).forDataAtCoordinate(t,i,n)}else!0===n?setTimeout((function(){i(null)}),0):i(null)}handleTileJSONError(){this.setState("error")}handleTileJSONResponse(t){const e=tn("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=hn(e,i);n=De(t.bounds,r)}const r=Gh(i),s=t.minzoom||0,o=Nh({extent:r,maxZoom:t.maxzoom||22,minZoom:s});this.tileGrid=o,this.template_=t.template;const a=t.grids;if(a){if(this.tileUrlFunction_=zh(a,o),void 0!==t.attribution){const e=void 0!==n?n:r;this.setAttributions((function(i){return Le(e,i.extent)?[t.attribution]:null}))}this.setState("ready")}else this.setState("error")}getTile(t,e,i,n,r){const s=Ll(t,e,i);if(this.tileCache.containsKey(s))return this.tileCache.get(s);const o=[t,e,i],a=this.getTileCoordForTileUrlFunction(o,r),l=this.tileUrlFunction_(a,n,r),h=new Wd(o,void 0!==l?q:Q,void 0!==l?l:"",this.tileGrid.getTileCoordExtent(o),this.preemptive_,this.jsonp_);return this.tileCache.set(s,h),h}useTile(t,e,i){const n=Ll(t,e,i);this.tileCache.containsKey(n)&&this.tileCache.get(n)}};var $d=class extends qh{constructor(t){const e=void 0!==t.requestEncoding?t.requestEncoding:"KVP",i=t.tileGrid;let n=t.urls;void 0===n&&void 0!==t.url&&(n=Wh(t.url)),super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,urls:n,wrapX:void 0!==t.wrapX&&t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.version_=void 0!==t.version?t.version:"1.0.0",this.format_=void 0!==t.format?t.format:"image/jpeg",this.dimensions_=void 0!==t.dimensions?t.dimensions:{},this.layer_=t.layer,this.matrixSet_=t.matrixSet,this.style_=t.style,this.requestEncoding_=e,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=Xh(n.map(this.createFromWMTSTemplate.bind(this))))}setUrls(t){this.urls=t;const e=t.join("\n");this.setTileUrlFunction(Xh(t.map(this.createFromWMTSTemplate.bind(this))),e)}getDimensions(){return this.dimensions_}getFormat(){return this.format_}getLayer(){return this.layer_}getMatrixSet(){return this.matrixSet_}getRequestEncoding(){return this.requestEncoding_}getStyle(){return this.style_}getVersion(){return this.version_}getKeyForDimensions_(){const t=this.urls?this.urls.slice(0):[];for(const e in this.dimensions_)t.push(e+"-"+this.dimensions_[e]);return t.join("/")}updateDimensions(t){Object.assign(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())}createFromWMTSTemplate(t){const e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};"KVP"==e&&Object.assign(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t="KVP"==e?Nu(t,i):t.replace(/\{(\w+?)\}/g,(function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t}));const n=this.tileGrid,r=this.dimensions_;return function(i,s,o){if(!i)return;const a={TileMatrix:n.getMatrixId(i[0]),TileCol:i[1],TileRow:i[2]};Object.assign(a,r);let l=t;return l="KVP"==e?Nu(l,a):l.replace(/\{(\w+?)\}/g,(function(t,e){return a[e]})),l}}};const Yd=34962,qd=34963,Kd=35044,Hd=35048,Jd=5126,Qd=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function tg(t,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!lt},e);const i=Qd.length;for(let n=0;n{this.uniforms_.push({value:t.uniforms[i],location:e.getUniformLocation(this.renderTargetProgram_,i)})}))}getGL(){return this.gl_}init(t){const e=this.getGL(),i=[e.drawingBufferWidth*this.scaleRatio_,e.drawingBufferHeight*this.scaleRatio_];if(e.bindFramebuffer(e.FRAMEBUFFER,this.getFrameBuffer()),e.bindRenderbuffer(e.RENDERBUFFER,this.getDepthBuffer()),e.viewport(0,0,i[0],i[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==i[0]||this.renderTargetTextureSize_[1]!==i[1]){this.renderTargetTextureSize_=i;const t=0,n=e.RGBA,r=0,s=e.RGBA,o=e.UNSIGNED_BYTE,a=null;e.bindTexture(e.TEXTURE_2D,this.renderTargetTexture_),e.texImage2D(e.TEXTURE_2D,t,n,i[0],i[1],r,s,o,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.renderTargetTexture_,0),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,i[0],i[1]),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this.depthBuffer_)}}apply(t,e,i,n){const r=this.getGL(),s=t.size;if(r.bindFramebuffer(r.FRAMEBUFFER,e?e.getFrameBuffer():null),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.renderTargetTexture_),!e){const e=U(r.canvas);if(!t.renderTargets[e]){const i=r.getContextAttributes();i&&i.preserveDrawingBuffer&&(r.clearColor(0,0,0,0),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT)),t.renderTargets[e]=!0}}r.disable(r.DEPTH_TEST),r.enable(r.BLEND),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA),r.viewport(0,0,r.drawingBufferWidth,r.drawingBufferHeight),r.bindBuffer(r.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),r.useProgram(this.renderTargetProgram_),r.enableVertexAttribArray(this.renderTargetAttribLocation_),r.vertexAttribPointer(this.renderTargetAttribLocation_,2,r.FLOAT,!1,0,0),r.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),r.uniform1i(this.renderTargetTextureLocation_,0);const o=t.layerStatesArray[t.layerIndex].opacity;r.uniform1f(this.renderTargetOpacityLocation_,o),this.applyUniforms(t),i&&i(r,t),r.drawArrays(r.TRIANGLES,0,6),n&&n(r,t)}getFrameBuffer(){return this.frameBuffer_}getDepthBuffer(){return this.depthBuffer_}applyUniforms(t){const e=this.getGL();let i,n=1;this.uniforms_.forEach((function(r){if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof ImageData)r.texture||(r.texture=e.createTexture()),e.activeTexture(e[`TEXTURE${n}`]),e.bindTexture(e.TEXTURE_2D,r.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),i instanceof ImageData?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,i.width,i.height,0,e.UNSIGNED_BYTE,new Uint8Array(i.data)):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i),e.uniform1i(r.location,n++);else if(Array.isArray(i))switch(i.length){case 2:return void e.uniform2f(r.location,i[0],i[1]);case 3:return void e.uniform3f(r.location,i[0],i[1],i[2]);case 4:return void e.uniform4f(r.location,i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(r.location,i)}))}};function Ng(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Dg(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}const kg={PROJECTION_MATRIX:"u_projectionMatrix",SCREEN_TO_WORLD_MATRIX:"u_screenToWorldMatrix",TIME:"u_time",ZOOM:"u_zoom",RESOLUTION:"u_resolution",ROTATION:"u_rotation",VIEWPORT_SIZE_PX:"u_viewportSizePx",PIXEL_RATIO:"u_pixelRatio",HIT_DETECTION:"u_hitDetection"},Gg={UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:Jd},jg={};function Bg(t){return"shared/"+t}let Ug=0;function zg(t){let e=0;for(let i=0;inew Og({webGlContext:this.gl_,scaleRatio:t.scaleRatio,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}))):[new Og({webGlContext:this.gl_})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(t){this.uniforms_=[],this.addUniforms(t)}addUniforms(t){for(const e in t)this.uniforms_.push({name:e,value:t[e]})}canvasCacheKeyMatches(t){return this.canvasCacheKey_===Bg(t)}getExtension(t){if(t in this.extensionCache_)return this.extensionCache_[t];const e=this.gl_.getExtension(t);return this.extensionCache_[t]=e,e}bindBuffer(t){const e=this.gl_,i=U(t);let n=this.bufferCache_[i];if(!n){n={buffer:t,webGlBuffer:e.createBuffer()},this.bufferCache_[i]=n}e.bindBuffer(t.getType(),n.webGlBuffer)}flushBufferData(t){const e=this.gl_;this.bindBuffer(t),e.bufferData(t.getType(),t.getArray(),t.getUsage())}deleteBuffer(t){const e=this.gl_,i=U(t),n=this.bufferCache_[i];n&&!e.isContextLost()&&e.deleteBuffer(n.webGlBuffer),delete this.bufferCache_[i]}disposeInternal(){const t=this.gl_.canvas;t.removeEventListener(Mg,this.boundHandleWebGLContextLost_),t.removeEventListener(Ag,this.boundHandleWebGLContextRestored_),function(t){const e=jg[t];if(!e)return;if(e.users-=1,e.users>0)return;const i=e.context,n=i.getExtension("WEBGL_lose_context");n&&n.loseContext();const r=i.canvas;r.width=1,r.height=1,delete jg[t]}(this.canvasCacheKey_),delete this.gl_}prepareDraw(t,e,i){const n=this.gl_,r=this.getCanvas(),s=t.size,o=t.pixelRatio;r.width===s[0]*o&&r.height===s[1]*o||(r.width=s[0]*o,r.height=s[1]*o,r.style.width=s[0]+"px",r.style.height=s[1]+"px");for(let e=this.postProcessPasses_.length-1;e>=0;e--)this.postProcessPasses_[e].init(t);n.bindTexture(n.TEXTURE_2D,null),n.clearColor(0,0,0,0),n.depthRange(0,1),n.clearDepth(1),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.ONE,e?n.ZERO:n.ONE_MINUS_SRC_ALPHA),i?(n.enable(n.DEPTH_TEST),n.depthFunc(n.LEQUAL)):n.disable(n.DEPTH_TEST)}bindTexture(t,e,i){const n=this.gl_;n.activeTexture(n.TEXTURE0+e),n.bindTexture(n.TEXTURE_2D,t),n.uniform1i(this.getUniformLocation(i),e)}prepareDrawToRenderTarget(t,e,i,n){const r=this.gl_,s=e.getSize();r.bindFramebuffer(r.FRAMEBUFFER,e.getFramebuffer()),r.bindRenderbuffer(r.RENDERBUFFER,e.getDepthbuffer()),r.viewport(0,0,s[0],s[1]),r.bindTexture(r.TEXTURE_2D,e.getTexture()),r.clearColor(0,0,0,0),r.depthRange(0,1),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,i?r.ZERO:r.ONE_MINUS_SRC_ALPHA),n?(r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL)):r.disable(r.DEPTH_TEST)}drawElements(t,e){const i=this.gl_;this.getExtension("OES_element_index_uint");const n=i.UNSIGNED_INT,r=e-t,s=4*t;i.drawElements(i.TRIANGLES,r,n,s)}finalizeDraw(t,e,i){for(let n=0,r=this.postProcessPasses_.length;n{if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof ImageData){r.texture||(r.prevValue=void 0,r.texture=e.createTexture()),this.bindTexture(r.texture,n,r.name),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);(!(i instanceof HTMLImageElement)||i.complete)&&r.prevValue!==i&&(r.prevValue=i,e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i)),n++}else if(Array.isArray(i)&&6===i.length)this.setUniformMatrixValue(r.name,Dg(this.tmpMat4_,i));else if(Array.isArray(i)&&i.length<=4)switch(i.length){case 2:return void e.uniform2f(this.getUniformLocation(r.name),i[0],i[1]);case 3:return void e.uniform3f(this.getUniformLocation(r.name),i[0],i[1],i[2]);case 4:return void e.uniform4f(this.getUniformLocation(r.name),i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(this.getUniformLocation(r.name),i)}))}useProgram(t,e){this.gl_.useProgram(t),this.currentProgram_=t,this.applyFrameState(e),this.applyUniforms(e)}compileShader(t,e){const i=this.gl_,n=i.createShader(e);return i.shaderSource(n,t),i.compileShader(n),n}getProgram(t,e){const i=this.gl_,n=this.compileShader(t,i.FRAGMENT_SHADER),r=this.compileShader(e,i.VERTEX_SHADER),s=i.createProgram();if(i.attachShader(s,n),i.attachShader(s,r),i.linkProgram(s),!i.getShaderParameter(n,i.COMPILE_STATUS)){const t=`Fragment shader compilation failed: ${i.getShaderInfoLog(n)}`;throw new Error(t)}if(i.deleteShader(n),!i.getShaderParameter(r,i.COMPILE_STATUS)){const t=`Vertex shader compilation failed: ${i.getShaderInfoLog(r)}`;throw new Error(t)}if(i.deleteShader(r),!i.getProgramParameter(s,i.LINK_STATUS)){const t=`GL program linking failed: ${i.getProgramInfoLog(s)}`;throw new Error(t)}return s}getUniformLocation(t){const e=U(this.currentProgram_);return void 0===this.uniformLocationsByProgram_[e]&&(this.uniformLocationsByProgram_[e]={}),void 0===this.uniformLocationsByProgram_[e][t]&&(this.uniformLocationsByProgram_[e][t]=this.gl_.getUniformLocation(this.currentProgram_,t)),this.uniformLocationsByProgram_[e][t]}getAttributeLocation(t){const e=U(this.currentProgram_);return void 0===this.attribLocationsByProgram_[e]&&(this.attribLocationsByProgram_[e]={}),void 0===this.attribLocationsByProgram_[e][t]&&(this.attribLocationsByProgram_[e][t]=this.gl_.getAttribLocation(this.currentProgram_,t)),this.attribLocationsByProgram_[e][t]}makeProjectionTransform(t,e){const i=t.size,n=t.viewState.rotation,r=t.viewState.resolution,s=t.viewState.center;return Wt(e,0,0,2/(r*i[0]),2/(r*i[1]),-n,-s[0],-s[1]),e}setUniformFloatValue(t,e){this.gl_.uniform1f(this.getUniformLocation(t),e)}setUniformFloatVec2(t,e){this.gl_.uniform2fv(this.getUniformLocation(t),e)}setUniformFloatVec4(t,e){this.gl_.uniform4fv(this.getUniformLocation(t),e)}setUniformMatrixValue(t,e){this.gl_.uniformMatrix4fv(this.getUniformLocation(t),!1,e)}enableAttributeArray_(t,e,i,n,r){const s=this.getAttributeLocation(t);s<0||(this.gl_.enableVertexAttribArray(s),this.gl_.vertexAttribPointer(s,e,i,!1,n,r))}enableAttributes(t){const e=zg(t);let i=0;for(let n=0;nthis.size_[0]||e>=this.size_[1])return Zg[0]=0,Zg[1]=0,Zg[2]=0,Zg[3]=0,Zg;this.readAll();const i=Math.floor(t)+(this.size_[1]-Math.floor(e)-1)*this.size_[0];return Zg[0]=this.data_[4*i],Zg[1]=this.data_[4*i+1],Zg[2]=this.data_[4*i+2],Zg[3]=this.data_[4*i+3],Zg}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}getDepthbuffer(){return this.depthbuffer_}updateSize_(){const t=this.size_,e=this.helper_.getGL();this.texture_=this.helper_.createTexture(t,null,this.texture_),e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer_),e.viewport(0,0,t[0],t[1]),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture_,0),e.bindRenderbuffer(e.RENDERBUFFER,this.depthbuffer_),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t[0],t[1]),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this.depthbuffer_),this.data_=new Uint8Array(t[0]*t[1]*4)}},Yg={exports:{}};function qg(t,e,i){i=i||2;var n,r,s,o,a,l,h,c=e&&e.length,u=c?e[0]*i:t.length,d=Kg(t,0,u,i,!0),g=[];if(!d||d.next===d.prev)return g;if(c&&(d=function(t,e,i,n){var r,s,o,a=[];for(r=0,s=e.length;r80*i){n=s=t[0],r=o=t[1];for(var f=i;fs&&(s=a),l>o&&(o=l);h=0!==(h=Math.max(s-n,o-r))?32767/h:0}return Jg(d,g,i,n,r,h,0),g}function Kg(t,e,i,n,r){var s,o;if(r===wf(t,e,i,n)>0)for(s=e;s=e;s-=n)o=yf(s,t[s],t[s+1],o);return o&&df(o,o.next)&&(xf(o),o=o.next),o}function Hg(t,e){if(!t)return t;e||(e=t);var i,n=t;do{if(i=!1,n.steiner||!df(n,n.next)&&0!==uf(n.prev,n,n.next))n=n.next;else{if(xf(n),(n=e=n.prev)===n.next)break;i=!0}}while(i||n!==e);return e}function Jg(t,e,i,n,r,s,o){if(t){!o&&s&&function(t,e,i,n){var r=t;do{0===r.z&&(r.z=af(r.x,r.y,e,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){var e,i,n,r,s,o,a,l,h=1;do{for(i=t,t=null,s=null,o=0;i;){for(o++,n=i,a=0,e=0;e0||l>0&&n;)0!==a&&(0===l||!n||i.z<=n.z)?(r=i,i=i.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,h*=2}while(o>1)}(r)}(t,n,r,s);for(var a,l,h=t;t.prev!==t.next;)if(a=t.prev,l=t.next,s?tf(t,n,r,s):Qg(t))e.push(a.i/i|0),e.push(t.i/i|0),e.push(l.i/i|0),xf(t),t=l.next,h=l.next;else if((t=l)===h){o?1===o?Jg(t=ef(Hg(t),e,i),e,i,n,r,s,2):2===o&&nf(t,e,i,n,r,s):Jg(Hg(t),e,i,n,r,s,1);break}}}function Qg(t){var e=t.prev,i=t,n=t.next;if(uf(e,i,n)>=0)return!1;for(var r=e.x,s=i.x,o=n.x,a=e.y,l=i.y,h=n.y,c=rs?r>o?r:o:s>o?s:o,g=a>l?a>h?a:h:l>h?l:h,f=n.next;f!==e;){if(f.x>=c&&f.x<=d&&f.y>=u&&f.y<=g&&hf(r,a,s,l,o,h,f.x,f.y)&&uf(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function tf(t,e,i,n){var r=t.prev,s=t,o=t.next;if(uf(r,s,o)>=0)return!1;for(var a=r.x,l=s.x,h=o.x,c=r.y,u=s.y,d=o.y,g=al?a>h?a:h:l>h?l:h,m=c>u?c>d?c:d:u>d?u:d,_=af(g,f,e,i,n),y=af(p,m,e,i,n),x=t.prevZ,v=t.nextZ;x&&x.z>=_&&v&&v.z<=y;){if(x.x>=g&&x.x<=p&&x.y>=f&&x.y<=m&&x!==r&&x!==o&&hf(a,c,l,u,h,d,x.x,x.y)&&uf(x.prev,x,x.next)>=0)return!1;if(x=x.prevZ,v.x>=g&&v.x<=p&&v.y>=f&&v.y<=m&&v!==r&&v!==o&&hf(a,c,l,u,h,d,v.x,v.y)&&uf(v.prev,v,v.next)>=0)return!1;v=v.nextZ}for(;x&&x.z>=_;){if(x.x>=g&&x.x<=p&&x.y>=f&&x.y<=m&&x!==r&&x!==o&&hf(a,c,l,u,h,d,x.x,x.y)&&uf(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;v&&v.z<=y;){if(v.x>=g&&v.x<=p&&v.y>=f&&v.y<=m&&v!==r&&v!==o&&hf(a,c,l,u,h,d,v.x,v.y)&&uf(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function ef(t,e,i){var n=t;do{var r=n.prev,s=n.next.next;!df(r,s)&&gf(r,n,n.next,s)&&mf(r,s)&&mf(s,r)&&(e.push(r.i/i|0),e.push(n.i/i|0),e.push(s.i/i|0),xf(n),xf(n.next),n=t=s),n=n.next}while(n!==t);return Hg(n)}function nf(t,e,i,n,r,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&cf(o,a)){var l=_f(o,a);return o=Hg(o,o.next),l=Hg(l,l.next),Jg(o,e,i,n,r,s,0),void Jg(l,e,i,n,r,s,0)}a=a.next}o=o.next}while(o!==t)}function rf(t,e){return t.x-e.x}function sf(t,e){var i=function(t,e){var i,n=e,r=t.x,s=t.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o&&(o=a,i=n.x=n.x&&n.x>=c&&r!==n.x&&hf(si.x||n.x===i.x&&of(i,n)))&&(i=n,d=l)),n=n.next}while(n!==h);return i}(t,e);if(!i)return e;var n=_f(i,t);return Hg(n,n.next),Hg(i,i.next)}function of(t,e){return uf(t.prev,t,e.prev)<0&&uf(e.next,t,t.next)<0}function af(t,e,i,n,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function lf(t){var e=t,i=t;do{(e.x=(t-o)*(s-a)&&(t-o)*(n-a)>=(i-o)*(e-a)&&(i-o)*(s-a)>=(r-o)*(n-a)}function cf(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&gf(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(mf(t,e)&&mf(e,t)&&function(t,e){var i=t,n=!1,r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&r<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==t);return n}(t,e)&&(uf(t.prev,t,e.prev)||uf(t,e.prev,e))||df(t,e)&&uf(t.prev,t,t.next)>0&&uf(e.prev,e,e.next)>0)}function uf(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function df(t,e){return t.x===e.x&&t.y===e.y}function gf(t,e,i,n){var r=pf(uf(t,e,i)),s=pf(uf(t,e,n)),o=pf(uf(i,n,t)),a=pf(uf(i,n,e));return r!==s&&o!==a||(!(0!==r||!ff(t,i,e))||(!(0!==s||!ff(t,n,e))||(!(0!==o||!ff(i,t,n))||!(0!==a||!ff(i,e,n)))))}function ff(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function pf(t){return t>0?1:t<0?-1:0}function mf(t,e){return uf(t.prev,t,t.next)<0?uf(t,e,t.next)>=0&&uf(t,t.prev,e)>=0:uf(t,e,t.prev)<0||uf(t,t.next,e)<0}function _f(t,e){var i=new vf(t.i,t.x,t.y),n=new vf(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=r,r.prev=i,n.next=i,i.prev=n,s.next=n,n.prev=s,n}function yf(t,e,i,n){var r=new vf(t,e,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function xf(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function vf(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function wf(t,e,i,n){for(var r=0,s=e,o=i-n;s0&&(n+=t[r-1].length,i.holes.push(n))}return i};var Sf=cs(Yg.exports);const Ef=.985,Tf=[],Cf={vertexPosition:0,indexPosition:0};function bf(t,e,i,n,r){t[e+0]=i,t[e+1]=n,t[e+2]=r}function Rf(t,e){const i=256,n=255;return(e=e||[])[0]=Math.floor(t/i/i/i)/n,e[1]=Math.floor(t/i/i)%i/n,e[2]=Math.floor(t/i)%i/n,e[3]=t%i/n,e}function Pf(t){let e=0;const i=256,n=255;return e+=Math.round(t[0]*i*i*i*n),e+=Math.round(t[1]*i*i*n),e+=Math.round(t[2]*i*n),e+=Math.round(t[3]*n),e}let Ff=0;const If=0,Lf=1<",GreaterThanOrEqualTo:">=",LessThan:"<",LessThanOrEqualTo:"<=",Multiply:"*",Divide:"/",Add:"+",Subtract:"-",Clamp:"clamp",Mod:"%",Pow:"^",Abs:"abs",Floor:"floor",Ceil:"ceil",Round:"round",Sin:"sin",Cos:"cos",Atan:"atan",Sqrt:"sqrt",Match:"match",Between:"between",Interpolate:"interpolate",Case:"case",In:"in",Number:"number",String:"string",Array:"array",Color:"color",Id:"id",Band:"band",Palette:"palette"},Yf={[$f.Get]:tp((([t,e])=>void 0!==e?function(t){switch(t){case"string":return Af;case"color":return Of;case"number":return Mf;case"boolean":return Lf;case"number[]":return Nf;default:throw new Error(`Unrecognized type hint: ${t}`)}}(e.value):Df),Kf(1,2),(function(t,e){const i=Zf(t[1],e);if(!(i instanceof Xf))throw new Error("Expected a literal argument for get operation");if("string"!=typeof i.value)throw new Error("Expected a string argument for get operation");if(e.properties.add(i.value),3===t.length){return[i,Zf(t[2],e)]}return[i]})),[$f.Var]:tp((([t])=>t.type),Kf(1,1),(function(t,e,i,n){const r=t[1];if("string"!=typeof r)throw new Error("Expected a string argument for var operation");if(e.variables.add(r),!("variables"in e.style)||void 0===e.style.variables[r])return[new Xf(Df,r)];const s=e.style.variables[r],o=Zf(s,e);if(o.value=r,n&&!Uf(n,o.type))throw new Error(`The variable ${r} has type ${jf(o.type)} but the following type was expected: ${jf(n)}`);return[o]})),[$f.Id]:tp(Mf|Af,qf,(function(t,e){e.featureId=!0})),[$f.Concat]:tp(Af,Kf(2,1/0),Hf(Df)),[$f.GeometryType]:tp(Af,qf),[$f.Resolution]:tp(Mf,qf),[$f.Zoom]:tp(Mf,qf),[$f.Time]:tp(Mf,qf),[$f.Any]:tp(Lf,Kf(2,1/0),Hf(Lf)),[$f.All]:tp(Lf,Kf(2,1/0),Hf(Lf)),[$f.Not]:tp(Lf,Kf(1,1),Hf(Lf)),[$f.Equal]:tp(Lf,Kf(2,2),Hf(Df),Jf),[$f.NotEqual]:tp(Lf,Kf(2,2),Hf(Df),Jf),[$f.GreaterThan]:tp(Lf,Kf(2,2),Hf(Df),Jf),[$f.GreaterThanOrEqualTo]:tp(Lf,Kf(2,2),Hf(Df),Jf),[$f.LessThan]:tp(Lf,Kf(2,2),Hf(Df),Jf),[$f.LessThanOrEqualTo]:tp(Lf,Kf(2,2),Hf(Df),Jf),[$f.Multiply]:tp((t=>{let e=Mf|Of;for(let i=0;i{let e=Df;for(let i=2;i{let e=Of|Mf;for(let i=3;i{let e=Df;for(let i=1;i3===t.length||4===t.length?Nf|Of:Nf),Kf(1,1/0),Hf(Mf)),[$f.Color]:tp(Of,Kf(3,4),Hf(Mf)),[$f.Band]:tp(Mf,Kf(1,3),Hf(Mf)),[$f.Palette]:tp(Of,Kf(2,2),(function(t,e){const i=Zf(t[1],e,Mf);if(i.type!==Mf)throw new Error(`The first argument of palette must be an number, got ${jf(i.type)} instead`);const n=t[2];if(!Array.isArray(n))throw new Error("The second argument of palette must be an array");const r=new Array(n.length);for(let t=0;te){throw new Error(`Expected ${e===1/0?`${t} or more`:`${t} to ${e}`} arguments for ${r}, got ${s}`)}}}function Hf(t){return function(e,i){const n=e[0],r=e.length-1,s=new Array(r);for(let o=0;o=f;--r){const i=l.getTileRangeForExtentAndZ(e,r,this.tempTileRange_),o=l.getResolution(r);for(let e=i.minX;e<=i.maxX;++e)for(let g=i.minY;g<=i.maxY;++g){const i=Il(r,e,g,this.tempTileCoord_),f=fp(a,i);let p,m;if(d.containsKey(f)&&(p=d.get(f),m=p.tile),p&&p.tile.key===a.getKey()||(m=a.getTile(r,e,g,t.pixelRatio,s.projection)),up(n,m))continue;if(p)if(this.isDrawableTile_(m))p.setTile(m);else{const t=m.getInterimTile();p.setTile(t)}else p=this.createTileRepresentation({tile:m,grid:l,helper:this.helper,gutter:h}),d.set(f,p);dp(n,p,r);const _=m.getKey();u[_]=!0,m.getState()===q&&(t.tileQueue.isKeyQueued(_)||t.tileQueue.enqueue([m,c,l.getTileCoordCenter(i),o]))}}}beforeTilesRender(t,e){this.helper.prepareDraw(this.frameState,!e,!0)}beforeTilesMaskRender(t){return!1}renderTile(t,e,i,n,r,s,o,a,l,h,c){}renderTileMask(t,e,i,n){}drawTile_(t,e,i,n,r,s,o){if(!e.ready)return;const a=e.tile.tileCoord,l=Ml(a),h=l in s?s[l]:1,c=o.getResolution(i),u=xl(o.getTileSize(i),this.tempSize_),d=o.getOrigin(i),g=o.getTileCoordExtent(a),f=h<1?-1:hp(i);h<1&&(t.animate=!0);const p=t.viewState,m=p.center[0],_=p.center[1],y=u[0]+2*n,x=u[1]+2*n,v=y/x,w=(m-d[0])/(u[0]*c),S=(d[1]-_)/(u[1]*c),E=p.resolution/c,T=a[1],C=a[2];Dt(this.tileTransform_),zt(this.tileTransform_,2/(t.size[0]*E/y),-2/(t.size[1]*E/y)),Ut(this.tileTransform_,p.rotation),zt(this.tileTransform_,1,1/v),Vt(this.tileTransform_,(u[0]*(T-w)-n)/y,(u[1]*(C-S)-n)/x),this.renderTile(e,this.tileTransform_,t,r,c,u,d,g,f,n,h)}renderFrame(t){this.frameState=t,this.renderComplete=!0;const e=this.helper.getGL();this.preRender(e,t);const i=t.viewState,n=this.getLayer(),r=n.getRenderSource(),s=r.getTileGridForProjection(i.projection),a=r.getGutterForProjection(i.projection),l=gp(t,t.extent),h=s.getZForResolution(i.resolution,r.zDirection),c=cp(),u=n.getPreload();if(t.nextExtent){const e=s.getZForResolution(i.nextResolution,r.zDirection),n=gp(t,t.nextExtent);this.enqueueTiles(t,n,e,c,u)}this.enqueueTiles(t,l,h,c,0),u>0&&setTimeout((()=>{this.enqueueTiles(t,l,h-1,c,u-1)}),0);const d={},g=U(this),f=t.time;let p=!1;for(const t of c.representationsByZ[h]){const e=t.tile;if((e instanceof wh||e instanceof Hc)&&e.getState()===Q)continue;const i=e.tileCoord;if(t.ready){const t=e.getAlpha(g,f);if(1===t){e.endTransition(g);continue}p=!0;d[Ml(i)]=t}this.renderComplete=!1;if(this.findAltTiles_(s,i,h+1,c))continue;const n=s.getMinZoom();for(let t=h-1;t>=n;--t){if(this.findAltTiles_(s,i,t,c))break}}const m=c.representationsByZ,_=Object.keys(m).map(Number).sort(o);if(this.beforeTilesMaskRender(t))for(let t=0,e=_.length;tt.dispose())),t.clear()}removeHelper(){this.helper&&this.clearCache(),super.removeHelper()}disposeInternal(){super.disposeInternal(),delete this.frameState}};const mp={...ap,TILE_TEXTURE_ARRAY:"u_tileTextures",TEXTURE_PIXEL_WIDTH:"u_texturePixelWidth",TEXTURE_PIXEL_HEIGHT:"u_texturePixelHeight",TEXTURE_RESOLUTION:"u_textureResolution",TEXTURE_ORIGIN_X:"u_textureOriginX",TEXTURE_ORIGIN_Y:"u_textureOriginY"},_p={TEXTURE_COORD:"a_textureCoord"},yp=[{name:_p.TEXTURE_COORD,size:2,type:Gg.FLOAT}];var xp=class extends pp{constructor(t,e){super(t,e),this.program_,this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.indices_=new Lg(qd,Kd),this.indices_.fromArray([0,1,3,1,2,3]),this.paletteTextures_=e.paletteTextures||[]}reset(t){super.reset(t),this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.paletteTextures_=t.paletteTextures||[],this.helper&&(this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}createTileRepresentation(t){return new rp(t)}beforeTilesRender(t,e){super.beforeTilesRender(t,e),this.helper.useProgram(this.program_,t)}renderTile(t,e,i,n,r,s,o,a,l,h,c){const u=this.helper.getGL();this.helper.bindBuffer(t.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(yp);let d=0;for(;d0&&(x=a,Re(x,n,x)),this.helper.setUniformFloatVec4(mp.RENDER_EXTENT,x),this.helper.setUniformFloatValue(mp.RESOLUTION,g.resolution),this.helper.setUniformFloatValue(mp.ZOOM,g.zoom),this.helper.setUniformFloatValue(mp.TEXTURE_PIXEL_WIDTH,f),this.helper.setUniformFloatValue(mp.TEXTURE_PIXEL_HEIGHT,p),this.helper.setUniformFloatValue(mp.TEXTURE_RESOLUTION,r),this.helper.setUniformFloatValue(mp.TEXTURE_ORIGIN_X,o[0]+_*s[0]*r-h*r),this.helper.setUniformFloatValue(mp.TEXTURE_ORIGIN_Y,o[1]-y*s[1]*r+h*r),this.helper.drawElements(0,this.indices_.getSize())}getData(t){if(!this.helper.getGL())return null;const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=Bt(e.pixelToCoordinateTransform,t.slice()),r=e.viewState,s=i.getExtent();if(s&&!ee(xn(s,r.projection),n))return null;const o=i.getSources(Ht([n]),r.resolution);let a,l,h;for(a=o.length-1;a>=0;--a)if(l=o[a],"ready"===l.getState()){if(h=l.getTileGridForProjection(r.projection),l.getWrapX())break;const t=h.getExtent();if(!t||ee(t,n))break}if(a<0)return null;const c=this.tileRepresentationCache;for(let t=h.getZForResolution(r.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=fp(l,e);if(!c.containsKey(i))continue;const r=c.get(i),s=r.tile;if((s instanceof wh||s instanceof Hc)&&s.getState()===Q)return null;if(!r.loaded)continue;const o=h.getOrigin(t),a=xl(h.getTileSize(t)),u=h.getResolution(t),d=(n[0]-o[0])/u-e[1]*a[0],g=(o[1]-n[1])/u-e[2]*a[1];return r.getPixelData(d,g)}return null}disposeInternal(){const t=this.helper;if(t){t.getGL().deleteProgram(this.program_),delete this.program_,t.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_}};function vp(t){const e=t.toString();return e.includes(".")?e:e+".0"}function wp(t){if(t.length<2||t.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${t.length}(${t.map(vp).join(", ")})`}function Sp(t){const e=Es(t),i=e.length>3?e[3]:1;return wp([e[0]/255*i,e[1]/255*i,e[2]/255*i,i])}const Ep={};let Tp=0;function Cp(t){return t in Ep||(Ep[t]=Tp++),Ep[t]}function bp(t){return vp(Cp(t))}function Rp(t){return"u_var_"+t}function Pp(){return{inFragmentShader:!1,variables:{},properties:{},functions:{},bandCount:0,style:{}}}const Fp="getBandValue",Ip="u_paletteTextures";function Lp(t,e,i,n){const r=Zf(t,i,e);if(zf(r.type,If))throw new Error("No matching type was found");if(!Uf(e,r.type)){const t=jf(e),i=jf(r.type);throw new Error(`Expected expression to be of type ${t}, got ${i}`)}return Op(r,e,n)}function Mp(t){return(e,i,n)=>{const r=i.args.length,s=new Array(r);for(let t=0;t{const i=e.args[0].value;i in t.properties||(t.properties[i]={name:i,type:e.type});return(t.inFragmentShader?"v_prop_":"a_prop_")+i},[$f.GeometryType]:(t,e,i)=>{const n="geometryType",r=t=>{const e=t.getType();switch(e){case"Point":case"LineString":case"Polygon":return e;case"MultiPoint":case"MultiLineString":case"MultiPolygon":return e.substring(5);case"Circle":return"Polygon";case"GeometryCollection":return r(t.getGeometries()[0])}};n in t.properties||(t.properties[n]={name:n,type:Af,evaluator:t=>r(t.getGeometry())});return(t.inFragmentShader?"v_prop_":"a_prop_")+n},[$f.Var]:(t,e)=>{const i=e.args[0].value;return i in t.variables||(t.variables[i]={name:i,type:e.type}),Rp(i)},[$f.Resolution]:()=>"u_resolution",[$f.Zoom]:()=>"u_zoom",[$f.Time]:()=>"u_time",[$f.Any]:Mp((t=>`(${t.join(" || ")})`)),[$f.All]:Mp((t=>`(${t.join(" && ")})`)),[$f.Not]:Mp((([t])=>`(!${t})`)),[$f.Equal]:Mp((([t,e])=>`(${t} == ${e})`)),[$f.NotEqual]:Mp((([t,e])=>`(${t} != ${e})`)),[$f.GreaterThan]:Mp((([t,e])=>`(${t} > ${e})`)),[$f.GreaterThanOrEqualTo]:Mp((([t,e])=>`(${t} >= ${e})`)),[$f.LessThan]:Mp((([t,e])=>`(${t} < ${e})`)),[$f.LessThanOrEqualTo]:Mp((([t,e])=>`(${t} <= ${e})`)),[$f.Multiply]:Mp((t=>`(${t.join(" * ")})`)),[$f.Divide]:Mp((([t,e])=>`(${t} / ${e})`)),[$f.Add]:Mp((t=>`(${t.join(" + ")})`)),[$f.Subtract]:Mp((([t,e])=>`(${t} - ${e})`)),[$f.Clamp]:Mp((([t,e,i])=>`clamp(${t}, ${e}, ${i})`)),[$f.Mod]:Mp((([t,e])=>`mod(${t}, ${e})`)),[$f.Pow]:Mp((([t,e])=>`pow(${t}, ${e})`)),[$f.Abs]:Mp((([t])=>`abs(${t})`)),[$f.Floor]:Mp((([t])=>`floor(${t})`)),[$f.Ceil]:Mp((([t])=>`ceil(${t})`)),[$f.Round]:Mp((([t])=>`floor(${t} + 0.5)`)),[$f.Sin]:Mp((([t])=>`sin(${t})`)),[$f.Cos]:Mp((([t])=>`cos(${t})`)),[$f.Atan]:Mp((([t,e])=>void 0!==e?`atan(${t}, ${e})`:`atan(${t})`)),[$f.Sqrt]:Mp((([t])=>`sqrt(${t})`)),[$f.Match]:Mp((t=>{const e=t[0],i=t[t.length-1];let n=null;for(let r=t.length-3;r>=1;r-=2){n=`(${e} == ${t[r]} ? ${t[r+1]} : ${n||i})`}return n})),[$f.Between]:Mp((([t,e,i])=>`(${t} >= ${e} && ${t} <= ${i})`)),[$f.Interpolate]:Mp((([t,e,...i])=>{let n="";for(let r=0;r{const e=t[t.length-1];let i=null;for(let n=t.length-3;n>=0;n-=2){i=`(${t[n]} ? ${t[n+1]} : ${i||e})`}return i})),[$f.In]:Mp((([t,...e],i)=>{const n=function(t,e){return`operator_${t}_${Object.keys(e.functions).length}`}("in",i),r=[];for(let t=0;t`vec${t.length}(${t.join(", ")})`)),[$f.Color]:Mp((t=>{const e=t.slice(0,3).map((t=>`${t} / 255.0`));if(3===t.length)return`vec4(${e.join(", ")}, 1.0)`;return`(${t[3]} * vec4(${e.join(", ")}, 1.0))`})),[$f.Band]:Mp((([t,e,i],n)=>{if(!(Fp in n.functions)){let t="";const e=n.bandCount||1;for(let i=0;i{const[i,...n]=e.args,r=n.length,s=new Uint8Array(4*r);for(let t=0;t0)return vp(t.value);if((t.type&Lf)>0)return t.value.toString();if((t.type&Af)>0)return bp(t.value.toString());if((t.type&Of)>0)return Sp(t.value);if((t.type&Nf)>0)return wp(t.value);throw new Error(`Unexpected expression ${t.value} (expected type ${jf(e)})`)}function Np(){return{"fill-color":"rgba(255,255,255,0.4)","stroke-color":"#3399CC","stroke-width":1.25,"circle-radius":5,"circle-fill-color":"rgba(255,255,255,0.4)","circle-stroke-width":1.25,"circle-stroke-color":"#3399CC"}}const Dp="#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_screenToWorldMatrix;\nuniform vec2 u_viewportSizePx;\nuniform float u_pixelRatio;\nuniform float u_globalAlpha;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\nuniform float u_rotation;\nuniform vec4 u_renderExtent;\nuniform vec2 u_patternOrigin;\nuniform float u_depth;\nuniform mediump int u_hitDetection;\n\nconst float PI = 3.141592653589793238;\nconst float TWO_PI = 2.0 * PI;\n\n// this used to produce an alpha-premultiplied color from a texture\nvec4 samplePremultiplied(sampler2D sampler, vec2 texCoord) {\n vec4 color = texture2D(sampler, texCoord);\n return vec4(color.rgb * color.a, color.a);\n}\n",kp={"fill-color":"rgba(255,255,255,0.4)","stroke-color":"#3399CC","stroke-width":1.25,"circle-radius":5,"circle-fill-color":"rgba(255,255,255,0.4)","circle-stroke-width":1.25,"circle-stroke-color":"#3399CC"};class Gp{constructor(){this.uniforms_=[],this.attributes_=[],this.varyings_=[],this.hasSymbol_=!1,this.symbolSizeExpression_=`vec2(${vp(kp["circle-radius"])} + ${vp(.5*kp["circle-stroke-width"])})`,this.symbolRotationExpression_="0.0",this.symbolOffsetExpression_="vec2(0.0)",this.symbolColorExpression_=Sp(kp["circle-fill-color"]),this.texCoordExpression_="vec4(0.0, 0.0, 1.0, 1.0)",this.discardExpression_="false",this.symbolRotateWithView_=!1,this.hasStroke_=!1,this.strokeWidthExpression_=vp(kp["stroke-width"]),this.strokeColorExpression_=Sp(kp["stroke-color"]),this.strokeOffsetExpression_="0.",this.strokeCapExpression_=bp("round"),this.strokeJoinExpression_=bp("round"),this.strokeMiterLimitExpression_="10.",this.strokeDistanceFieldExpression_="-1000.",this.hasFill_=!1,this.fillColorExpression_=Sp(kp["fill-color"]),this.vertexShaderFunctions_=[],this.fragmentShaderFunctions_=[]}addUniform(t){return this.uniforms_.push(t),this}addAttribute(t){return this.attributes_.push(t),this}addVarying(t,e,i){return this.varyings_.push({name:t,type:e,expression:i}),this}setSymbolSizeExpression(t){return this.hasSymbol_=!0,this.symbolSizeExpression_=t,this}getSymbolSizeExpression(){return this.symbolSizeExpression_}setSymbolRotationExpression(t){return this.symbolRotationExpression_=t,this}setSymbolOffsetExpression(t){return this.symbolOffsetExpression_=t,this}getSymbolOffsetExpression(){return this.symbolOffsetExpression_}setSymbolColorExpression(t){return this.hasSymbol_=!0,this.symbolColorExpression_=t,this}getSymbolColorExpression(){return this.symbolColorExpression_}setTextureCoordinateExpression(t){return this.texCoordExpression_=t,this}setFragmentDiscardExpression(t){return this.discardExpression_=t,this}getFragmentDiscardExpression(){return this.discardExpression_}setSymbolRotateWithView(t){return this.symbolRotateWithView_=t,this}setStrokeWidthExpression(t){return this.hasStroke_=!0,this.strokeWidthExpression_=t,this}setStrokeColorExpression(t){return this.hasStroke_=!0,this.strokeColorExpression_=t,this}getStrokeColorExpression(){return this.strokeColorExpression_}setStrokeOffsetExpression(t){return this.strokeOffsetExpression_=t,this}setStrokeCapExpression(t){return this.strokeCapExpression_=t,this}setStrokeJoinExpression(t){return this.strokeJoinExpression_=t,this}setStrokeMiterLimitExpression(t){return this.strokeMiterLimitExpression_=t,this}setStrokeDistanceFieldExpression(t){return this.strokeDistanceFieldExpression_=t,this}setFillColorExpression(t){return this.hasFill_=!0,this.fillColorExpression_=t,this}getFillColorExpression(){return this.fillColorExpression_}addVertexShaderFunction(t){this.vertexShaderFunctions_.includes(t)||this.vertexShaderFunctions_.push(t)}addFragmentShaderFunction(t){this.fragmentShaderFunctions_.includes(t)||this.fragmentShaderFunctions_.push(t)}getSymbolVertexShader(){return this.hasSymbol_?`${Dp}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nattribute vec2 a_position;\nattribute float a_index;\nattribute vec4 a_hitColor;\n${this.attributes_.map((function(t){return"attribute "+t+";"})).join("\n")}\nvarying vec2 v_texCoord;\nvarying vec2 v_quadCoord;\nvarying vec4 v_hitColor;\nvarying vec2 v_centerPx;\nvarying float v_angle;\nvarying vec2 v_quadSizePx;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.vertexShaderFunctions_.join("\n")}\nvec2 pxToScreen(vec2 coordPx) {\n vec2 scaled = coordPx / u_viewportSizePx / 0.5;\n return scaled;\n}\n\nvec2 screenToPx(vec2 coordScreen) {\n return (coordScreen * 0.5 + 0.5) * u_viewportSizePx;\n}\n\nvoid main(void) {\n v_quadSizePx = ${this.symbolSizeExpression_};\n vec2 halfSizePx = v_quadSizePx * 0.5;\n vec2 centerOffsetPx = ${this.symbolOffsetExpression_};\n vec2 offsetPx = centerOffsetPx;\n if (a_index == 0.0) {\n offsetPx -= halfSizePx;\n } else if (a_index == 1.0) {\n offsetPx += halfSizePx * vec2(1., -1.);\n } else if (a_index == 2.0) {\n offsetPx += halfSizePx;\n } else {\n offsetPx += halfSizePx * vec2(-1., 1.);\n }\n float angle = ${this.symbolRotationExpression_};\n ${this.symbolRotateWithView_?"angle += u_rotation;":""}\n float c = cos(-angle);\n float s = sin(-angle);\n offsetPx = vec2(c * offsetPx.x - s * offsetPx.y, s * offsetPx.x + c * offsetPx.y);\n vec4 center = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n gl_Position = center + vec4(pxToScreen(offsetPx), u_depth, 0.);\n vec4 texCoord = ${this.texCoordExpression_};\n float u = a_index == 0.0 || a_index == 3.0 ? texCoord.s : texCoord.p;\n float v = a_index == 2.0 || a_index == 3.0 ? texCoord.t : texCoord.q;\n v_texCoord = vec2(u, v);\n v_hitColor = a_hitColor;\n v_angle = angle;\n c = cos(-v_angle);\n s = sin(-v_angle);\n centerOffsetPx = vec2(c * centerOffsetPx.x - s * centerOffsetPx.y, s * centerOffsetPx.x + c * centerOffsetPx.y); \n v_centerPx = screenToPx(center.xy) + centerOffsetPx;\n${this.varyings_.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")}\n}`:null}getSymbolFragmentShader(){return this.hasSymbol_?`${Dp}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nvarying vec2 v_texCoord;\nvarying vec4 v_hitColor;\nvarying vec2 v_centerPx;\nvarying float v_angle;\nvarying vec2 v_quadSizePx;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.fragmentShaderFunctions_.join("\n")}\n\nvoid main(void) {\n if (${this.discardExpression_}) { discard; }\n vec2 coordsPx = gl_FragCoord.xy / u_pixelRatio - v_centerPx; // relative to center\n float c = cos(v_angle);\n float s = sin(v_angle);\n coordsPx = vec2(c * coordsPx.x - s * coordsPx.y, s * coordsPx.x + c * coordsPx.y);\n gl_FragColor = ${this.symbolColorExpression_};\n if (u_hitDetection > 0) {\n if (gl_FragColor.a < 0.05) { discard; };\n gl_FragColor = v_hitColor;\n }\n}`:null}getStrokeVertexShader(){return this.hasStroke_?`${Dp}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nattribute vec2 a_position;\nattribute float a_index;\nattribute vec2 a_segmentStart;\nattribute vec2 a_segmentEnd;\nattribute float a_parameters;\nattribute float a_distance;\nattribute vec2 a_joinAngles;\nattribute vec4 a_hitColor;\n${this.attributes_.map((function(t){return"attribute "+t+";"})).join("\n")}\nvarying vec2 v_segmentStart;\nvarying vec2 v_segmentEnd;\nvarying float v_angleStart;\nvarying float v_angleEnd;\nvarying float v_width;\nvarying vec4 v_hitColor;\nvarying float v_distanceOffsetPx;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.vertexShaderFunctions_.join("\n")}\nvec2 worldToPx(vec2 worldPos) {\n vec4 screenPos = u_projectionMatrix * vec4(worldPos, 0.0, 1.0);\n return (0.5 * screenPos.xy + 0.5) * u_viewportSizePx;\n}\n\nvec4 pxToScreen(vec2 pxPos) {\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\n return vec4(screenPos, u_depth, 1.0);\n}\n\nbool isCap(float joinAngle) {\n return joinAngle < -0.1;\n}\n\nvec2 getJoinOffsetDirection(vec2 normalPx, float joinAngle) {\n float halfAngle = joinAngle / 2.0;\n float c = cos(halfAngle);\n float s = sin(halfAngle);\n vec2 angleBisectorNormal = vec2(s * normalPx.x + c * normalPx.y, -c * normalPx.x + s * normalPx.y);\n float length = 1.0 / s;\n return angleBisectorNormal * length;\n}\n\nvec2 getOffsetPoint(vec2 point, vec2 normal, float joinAngle, float offsetPx) {\n // if on a cap or the join angle is too high, offset the line along the segment normal\n if (cos(joinAngle) > 0.998 || isCap(joinAngle)) {\n return point - normal * offsetPx;\n }\n // offset is applied along the inverted normal (positive offset goes "right" relative to line direction)\n return point - getJoinOffsetDirection(normal, joinAngle) * offsetPx;\n}\n\nvoid main(void) {\n v_angleStart = a_joinAngles.x;\n v_angleEnd = a_joinAngles.y;\n float vertexNumber = floor(abs(a_parameters) / 10000. + 0.5);\n // we're reading the fractional part while keeping the sign (so -4.12 gives -0.12, 3.45 gives 0.45)\n float angleTangentSum = fract(abs(a_parameters) / 10000.) * 10000. * sign(a_parameters);\n\n float lineWidth = ${this.strokeWidthExpression_};\n float lineOffsetPx = ${this.strokeOffsetExpression_};\n\n // compute segment start/end in px with offset\n vec2 segmentStartPx = worldToPx(a_segmentStart);\n vec2 segmentEndPx = worldToPx(a_segmentEnd);\n vec2 tangentPx = normalize(segmentEndPx - segmentStartPx);\n vec2 normalPx = vec2(-tangentPx.y, tangentPx.x);\n segmentStartPx = getOffsetPoint(segmentStartPx, normalPx, v_angleStart, lineOffsetPx),\n segmentEndPx = getOffsetPoint(segmentEndPx, normalPx, v_angleEnd, lineOffsetPx);\n \n // compute current vertex position\n float normalDir = vertexNumber < 0.5 || (vertexNumber > 1.5 && vertexNumber < 2.5) ? 1.0 : -1.0;\n float tangentDir = vertexNumber < 1.5 ? 1.0 : -1.0;\n float angle = vertexNumber < 1.5 ? v_angleStart : v_angleEnd;\n vec2 joinDirection;\n vec2 positionPx = vertexNumber < 1.5 ? segmentStartPx : segmentEndPx;\n // if angle is too high, do not make a proper join\n if (cos(angle) > 0.985 || isCap(angle)) {\n joinDirection = normalPx * normalDir - tangentPx * tangentDir;\n } else {\n joinDirection = getJoinOffsetDirection(normalPx * normalDir, angle);\n }\n positionPx = positionPx + joinDirection * lineWidth * 0.5;\n gl_Position = pxToScreen(positionPx);\n\n v_segmentStart = segmentStartPx;\n v_segmentEnd = segmentEndPx;\n v_width = lineWidth;\n v_hitColor = a_hitColor;\n v_distanceOffsetPx = a_distance / u_resolution - (lineOffsetPx * angleTangentSum);\n${this.varyings_.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")}\n}`:null}getStrokeFragmentShader(){return this.hasStroke_?`${Dp}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nvarying vec2 v_segmentStart;\nvarying vec2 v_segmentEnd;\nvarying float v_angleStart;\nvarying float v_angleEnd;\nvarying float v_width;\nvarying vec4 v_hitColor;\nvarying float v_distanceOffsetPx;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.fragmentShaderFunctions_.join("\n")}\n\nvec2 pxToWorld(vec2 pxPos) {\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\n return (u_screenToWorldMatrix * vec4(screenPos, 0.0, 1.0)).xy;\n}\n\nbool isCap(float joinAngle) {\n return joinAngle < -0.1;\n}\n\nfloat segmentDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n vec2 tangent = normalize(end - start);\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 startToPoint = point - start;\n return abs(dot(startToPoint, normal)) - width * 0.5;\n}\n\nfloat buttCapDistanceField(vec2 point, vec2 start, vec2 end) {\n vec2 startToPoint = point - start;\n vec2 tangent = normalize(end - start);\n return dot(startToPoint, -tangent);\n}\n\nfloat squareCapDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n return buttCapDistanceField(point, start, end) - width * 0.5;\n}\n\nfloat roundCapDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n float onSegment = max(0., 1000. * dot(point - start, end - start)); // this is very high when inside the segment\n return length(point - start) - width * 0.5 - onSegment;\n}\n\nfloat roundJoinDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n return roundCapDistanceField(point, start, end, width);\n}\n\nfloat bevelJoinField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) {\n vec2 startToPoint = point - start;\n vec2 tangent = normalize(end - start);\n float c = cos(joinAngle * 0.5);\n float s = sin(joinAngle * 0.5);\n float direction = -sign(sin(joinAngle));\n vec2 bisector = vec2(c * tangent.x - s * tangent.y, s * tangent.x + c * tangent.y);\n float radius = width * 0.5 * s;\n return dot(startToPoint, bisector * direction) - radius;\n}\n\nfloat miterJoinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) {\n if (cos(joinAngle) > 0.985) { // avoid risking a division by zero\n return bevelJoinField(point, start, end, width, joinAngle);\n }\n float miterLength = 1. / sin(joinAngle * 0.5);\n float miterLimit = ${this.strokeMiterLimitExpression_};\n if (miterLength > miterLimit) {\n return bevelJoinField(point, start, end, width, joinAngle);\n }\n return -1000.;\n}\n\nfloat capDistanceField(vec2 point, vec2 start, vec2 end, float width, float capType) {\n if (capType == ${bp("butt")}) {\n return buttCapDistanceField(point, start, end);\n } else if (capType == ${bp("square")}) {\n return squareCapDistanceField(point, start, end, width);\n }\n return roundCapDistanceField(point, start, end, width);\n}\n\nfloat joinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float joinType) {\n if (joinType == ${bp("bevel")}) {\n return bevelJoinField(point, start, end, width, joinAngle);\n } else if (joinType == ${bp("miter")}) {\n return miterJoinDistanceField(point, start, end, width, joinAngle);\n }\n return roundJoinDistanceField(point, start, end, width);\n}\n\nfloat computeSegmentPointDistance(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float capType, float joinType) {\n if (isCap(joinAngle)) {\n return capDistanceField(point, start, end, width, capType);\n }\n return joinDistanceField(point, start, end, width, joinAngle, joinType);\n}\n\nvoid main(void) {\n vec2 currentPoint = gl_FragCoord.xy / u_pixelRatio;\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n vec2 worldPos = pxToWorld(currentPoint);\n if (\n abs(u_renderExtent[0] - u_renderExtent[2]) > 0.0 && (\n worldPos[0] < u_renderExtent[0] ||\n worldPos[1] < u_renderExtent[1] ||\n worldPos[0] > u_renderExtent[2] ||\n worldPos[1] > u_renderExtent[3]\n )\n ) {\n discard;\n }\n #endif\n if (${this.discardExpression_}) { discard; }\n\n float segmentLength = length(v_segmentEnd - v_segmentStart);\n vec2 segmentTangent = (v_segmentEnd - v_segmentStart) / segmentLength;\n vec2 segmentNormal = vec2(-segmentTangent.y, segmentTangent.x);\n vec2 startToPoint = currentPoint - v_segmentStart;\n float currentLengthPx = max(0., min(dot(segmentTangent, startToPoint), segmentLength)) + v_distanceOffsetPx; \n float currentRadiusPx = abs(dot(segmentNormal, startToPoint));\n float currentRadiusRatio = dot(segmentNormal, startToPoint) * 2. / v_width;\n vec4 color = ${this.strokeColorExpression_} * u_globalAlpha;\n float capType = ${this.strokeCapExpression_};\n float joinType = ${this.strokeJoinExpression_};\n float segmentStartDistance = computeSegmentPointDistance(currentPoint, v_segmentStart, v_segmentEnd, v_width, v_angleStart, capType, joinType);\n float segmentEndDistance = computeSegmentPointDistance(currentPoint, v_segmentEnd, v_segmentStart, v_width, v_angleEnd, capType, joinType);\n float distance = max(\n segmentDistanceField(currentPoint, v_segmentStart, v_segmentEnd, v_width),\n max(segmentStartDistance, segmentEndDistance)\n );\n distance = max(distance, ${this.strokeDistanceFieldExpression_});\n gl_FragColor = color * smoothstep(0., -1., distance);\n if (u_hitDetection > 0) {\n if (gl_FragColor.a < 0.1) { discard; };\n gl_FragColor = v_hitColor;\n }\n}`:null}getFillVertexShader(){return this.hasFill_?`${Dp}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nattribute vec2 a_position;\nattribute vec4 a_hitColor;\n${this.attributes_.map((function(t){return"attribute "+t+";"})).join("\n")}\nvarying vec4 v_hitColor;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.vertexShaderFunctions_.join("\n")}\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, u_depth, 1.0);\n v_hitColor = a_hitColor;\n${this.varyings_.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")}\n}`:null}getFillFragmentShader(){return this.hasFill_?`${Dp}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nvarying vec4 v_hitColor;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.fragmentShaderFunctions_.join("\n")}\nvec2 pxToWorld(vec2 pxPos) {\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\n return (u_screenToWorldMatrix * vec4(screenPos, 0.0, 1.0)).xy;\n}\n\nvec2 worldToPx(vec2 worldPos) {\n vec4 screenPos = u_projectionMatrix * vec4(worldPos, 0.0, 1.0);\n return (0.5 * screenPos.xy + 0.5) * u_viewportSizePx;\n}\n\nvoid main(void) {\n vec2 pxPos = gl_FragCoord.xy / u_pixelRatio;\n vec2 pxOrigin = worldToPx(u_patternOrigin);\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n vec2 worldPos = pxToWorld(pxPos);\n if (\n abs(u_renderExtent[0] - u_renderExtent[2]) > 0.0 && (\n worldPos[0] < u_renderExtent[0] ||\n worldPos[1] < u_renderExtent[1] ||\n worldPos[0] > u_renderExtent[2] ||\n worldPos[1] > u_renderExtent[3]\n )\n ) {\n discard;\n }\n #endif\n if (${this.discardExpression_}) { discard; }\n gl_FragColor = ${this.fillColorExpression_} * u_globalAlpha;\n if (u_hitDetection > 0) {\n if (gl_FragColor.a < 0.1) { discard; };\n gl_FragColor = v_hitColor;\n }\n}`:null}}function jp(t,e){return 2===e?t:t.filter(((t,i)=>i%e<2))}var Bp=class{constructor(){this.globalCounter_=0,this.refToFeature_=new Map,this.uidToRef_=new Map,this.freeGlobalRef_=[],this.polygonBatch={entries:{},geometriesCount:0,verticesCount:0,ringsCount:0},this.pointBatch={entries:{},geometriesCount:0},this.lineStringBatch={entries:{},geometriesCount:0,verticesCount:0}}addFeatures(t,e){for(let i=0;i0?t[i-1]:null,l=a?a[a.length-1]:0,h=o[o.length-1];o=l>0?o.map((t=>t-l)):o,this.addCoordinates_("Polygon",e.slice(l,h),o,n,r,s)}break}case"MultiLineString":{const t=i;for(let i=0,o=t.length;i0?t[i-1]:0;this.addCoordinates_("LineString",e.slice(o,t[i]),null,n,r,s)}break}case"MultiPoint":for(let t=0,i=e.length;t1)return void this.addCoordinates_("MultiPolygon",e,i,n,r,s)}this.polygonBatch.entries[r]||(this.polygonBatch.entries[r]=this.addRefToEntry_(r,{feature:n,flatCoordss:[],verticesCount:0,ringsCount:0,ringsVerticesCounts:[]})),o=e.length/s;const a=i.length,l=i.map(((t,e,i)=>e>0?(t-i[e-1])/s:t/s));this.polygonBatch.verticesCount+=o,this.polygonBatch.ringsCount+=a,this.polygonBatch.geometriesCount++,this.polygonBatch.entries[r].flatCoordss.push(jp(e,s)),this.polygonBatch.entries[r].ringsVerticesCounts.push(l),this.polygonBatch.entries[r].verticesCount+=o,this.polygonBatch.entries[r].ringsCount+=a;for(let i=0,o=t.length;i0?t[i-1]:0;this.addCoordinates_("LinearRing",e.slice(o,t[i]),null,n,r,s)}break}case"Point":this.pointBatch.entries[r]||(this.pointBatch.entries[r]=this.addRefToEntry_(r,{feature:n,flatCoordss:[]})),this.pointBatch.geometriesCount++,this.pointBatch.entries[r].flatCoordss.push(e);break;case"LineString":case"LinearRing":this.lineStringBatch.entries[r]||(this.lineStringBatch.entries[r]=this.addRefToEntry_(r,{feature:n,flatCoordss:[],verticesCount:0})),o=e.length/s,this.lineStringBatch.verticesCount+=o,this.lineStringBatch.geometriesCount++,this.lineStringBatch.entries[r].flatCoordss.push(jp(e,s)),this.lineStringBatch.entries[r].verticesCount+=o}}addRefToEntry_(t,e){const i=this.uidToRef_.get(t),n=i||this.freeGlobalRef_.pop()||++this.globalCounter_;return e.ref=n,i||(this.refToFeature_.set(n,e.feature),this.uidToRef_.set(t,n)),e}returnRef_(t,e){if(!t)throw new Error("This feature has no ref: "+e);this.refToFeature_.delete(t),this.uidToRef_.delete(e),this.freeGlobalRef_.push(t)}changeFeature(t){this.removeFeature(t);const e=t.getGeometry();e&&this.addGeometry_(e,t)}removeFeature(t){let e;e=this.clearFeatureEntryInPointBatch_(t)||e,e=this.clearFeatureEntryInPolygonBatch_(t)||e,e=this.clearFeatureEntryInLineStringBatch_(t)||e,e&&this.returnRef_(e.ref,U(e.feature))}clear(){this.polygonBatch.entries={},this.polygonBatch.geometriesCount=0,this.polygonBatch.verticesCount=0,this.polygonBatch.ringsCount=0,this.lineStringBatch.entries={},this.lineStringBatch.geometriesCount=0,this.lineStringBatch.verticesCount=0,this.pointBatch.entries={},this.pointBatch.geometriesCount=0,this.globalCounter_=0,this.freeGlobalRef_=[],this.refToFeature_.clear(),this.uidToRef_.clear()}getFeatureFromRef(t){return this.refToFeature_.get(t)}};var Up=class extends Pg{constructor(t,e){super(t),this.batch_=new Bp,this.styleRenderers_=e,this.buffers=[],this.maskVertices=new Lg(Yd,Kd),this.setTile(t.tile)}generateMaskBuffer_(){const t=this.tile.getSourceTiles()[0].extent;this.maskVertices.fromArray([t[0],t[1],t[2],t[1],t[2],t[3],t[0],t[3]]),this.helper_.flushBufferData(this.maskVertices)}uploadTile(){this.generateMaskBuffer_(),this.batch_.clear();const t=this.tile.getSourceTiles(),e=t.reduce(((t,e)=>t.concat(e.getFeatures())),[]);this.batch_.addFeatures(e);const i=Vt([1,0,0,1,0,0],-t[0].extent[0],-t[0].extent[1]),n=this.styleRenderers_.map(((t,e)=>t.generateBuffers(this.batch_,i).then((t=>{this.buffers[e]=t}))));Promise.all(n).then((()=>{this.setReady()}))}};function zp(t,e,i){const n=Wf();return n.style=t.style,Lp(e,i,n,t)}function Xp(t){const e=Es(t);return[256*e[0]+e[1],256*e[2]+Math.round(255*e[3])]}function Vp(t){return t===Of?2:t===Nf?4:1}function Wp(t){const e=Vp(t);return e>1?`vec${e}`:"float"}function Zp(t){return(JSON.stringify(t).split("").reduce(((t,e)=>(t<<5)-t+e.charCodeAt(0)),0)>>>0).toString()}function $p(t,e,i,n){let r;if(`${n}radius`in t&&"icon-"!==n?r=zp(i,t[`${n}radius`],Mf):`${n}radius1`in t&&"shape-"===n&&(r=zp(i,t[`${n}radius1`],Mf)),void 0!==r&&(`${n}stroke-width`in t&&(r=`(${r} + ${zp(i,t[`${n}stroke-width`],Mf)} * 0.5)`),e.setSymbolSizeExpression(`vec2(${r} * 2. + 0.5)`)),`${n}scale`in t){const r=zp(i,t[`${n}scale`],Mf|Nf);e.setSymbolSizeExpression(`${e.getSymbolSizeExpression()} * ${r}`)}`${n}displacement`in t&&e.setSymbolOffsetExpression(zp(i,t[`${n}displacement`],Nf)),`${n}rotation`in t&&e.setSymbolRotationExpression(zp(i,t[`${n}rotation`],Mf)),`${n}rotate-with-view`in t&&e.setSymbolRotateWithView(!!t[`${n}rotate-with-view`])}function Yp(t,e,i,n,r){let s="vec4(0.)";if(null!==e&&(s=e),null!==i&&null!==n){s=`mix(${i}, ${s}, ${`smoothstep(-${n} + 0.63, -${n} - 0.58, ${t})`})`}let o=`${s} * ${`(1.0 - smoothstep(-0.63, 0.58, ${t}))`}`;return null!==r&&(o=`${o} * ${r}`),o}function qp(t,e,i,n,r){const s=new Image;let o;return s.crossOrigin=void 0===t[`${n}cross-origin`]?"anonymous":t[`${n}cross-origin`],s.src=t[`${n}src`],s.complete&&s.width&&s.height?o=wp([s.width,s.height]):(i[`u_texture${r}_size`]=()=>s.complete?[s.width,s.height]:[0,0],e.addUniform(`vec2 u_texture${r}_size`),o=`u_texture${r}_size`),i[`u_texture${r}`]=s,e.addUniform(`sampler2D u_texture${r}`),o}function Kp(t,e,i,n,r){let s=zp(i,t[`${e}offset`],Nf);if(`${e}offset-origin`in t)switch(t[`${e}offset-origin`]){case"top-right":s=`vec2(${n}.x, 0.) + ${r} * vec2(-1., 0.) + ${s} * vec2(-1., 1.)`;break;case"bottom-left":s=`vec2(0., ${n}.y) + ${r} * vec2(0., -1.) + ${s} * vec2(1., -1.)`;break;case"bottom-right":s=`${n} - ${r} - ${s}`}return s}function Hp(t){const e={inFragmentShader:!1,properties:{},variables:{},functions:{},style:t},i={inFragmentShader:!0,variables:e.variables,properties:{},functions:{},style:t},n=new Gp,r={};if("icon-src"in t?function(t,e,i,n,r){let s="vec4(1.0)";"icon-color"in t&&(s=zp(r,t["icon-color"],Of)),"icon-opacity"in t&&(s=`${s} * ${zp(r,t["icon-opacity"],Mf)}`);const o=Zp(t["icon-src"]),a=qp(t,e,i,"icon-",o);if(e.setSymbolColorExpression(`${s} * samplePremultiplied(u_texture${o}, v_texCoord)`).setSymbolSizeExpression(a),"icon-width"in t&&"icon-height"in t&&e.setSymbolSizeExpression(`vec2(${zp(n,t["icon-width"],Mf)}, ${zp(n,t["icon-height"],Mf)})`),"icon-offset"in t&&"icon-size"in t){const i=zp(n,t["icon-size"],Nf),r=e.getSymbolSizeExpression();e.setSymbolSizeExpression(i);const s=Kp(t,"icon-",n,"v_quadSizePx",i);e.setTextureCoordinateExpression(`(vec4((${s}).xyxy) + vec4(0., 0., ${i})) / (${r}).xyxy`)}if($p(t,e,n,"icon-"),"icon-anchor"in t){const i=zp(n,t["icon-anchor"],Nf);let r,s="1.0";"icon-scale"in t&&(s=zp(n,t["icon-scale"],Mf|Nf)),r="pixels"===t["icon-anchor-x-units"]&&"pixels"===t["icon-anchor-y-units"]?`${i} * ${s}`:"pixels"===t["icon-anchor-x-units"]?`${i} * vec2(vec2(${s}).x, v_quadSizePx.y)`:"pixels"===t["icon-anchor-y-units"]?`${i} * vec2(v_quadSizePx.x, vec2(${s}).x)`:`${i} * v_quadSizePx`;let o=`v_quadSizePx * vec2(0.5, -0.5) + ${r} * vec2(-1., 1.)`;if("icon-anchor-origin"in t)switch(t["icon-anchor-origin"]){case"top-right":o=`v_quadSizePx * -0.5 + ${r}`;break;case"bottom-left":o=`v_quadSizePx * 0.5 - ${r}`;break;case"bottom-right":o=`v_quadSizePx * vec2(-0.5, 0.5) + ${r} * vec2(1., -1.)`}e.setSymbolOffsetExpression(`${e.getSymbolOffsetExpression()} + ${o}`)}}(t,n,r,e,i):"shape-points"in t?function(t,e,i,n,r){r.functions.round="float round(float v) {\n return sign(v) * floor(abs(v) + 0.5);\n}",r.functions.starDistanceField="float starDistanceField(vec2 point, float numPoints, float radiusIn, float radiusOut, float angle) {\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\n float c = cos(startAngle);\n float s = sin(startAngle);\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y); \n float alpha = TWO_PI / numPoints; // the angle of one sector\n float beta = atan(pointRotated.y, pointRotated.x);\n float gamma = round(beta / alpha) * alpha; // angle in sector\n c = cos(-gamma);\n s = sin(-gamma);\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\n vec2 tipToPoint = inSector + vec2(-radiusOut, 0.);\n vec2 edgeNormal = vec2(radiusIn * sin(alpha * 0.5), -radiusIn * cos(alpha * 0.5) + radiusOut);\n return dot(normalize(edgeNormal), tipToPoint);\n}",r.functions.regularDistanceField="float regularDistanceField(vec2 point, float numPoints, float radius, float angle) {\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\n float c = cos(startAngle);\n float s = sin(startAngle);\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y); \n float alpha = TWO_PI / numPoints; // the angle of one sector\n float radiusIn = radius * cos(PI / numPoints);\n float beta = atan(pointRotated.y, pointRotated.x);\n float gamma = round((beta - alpha * 0.5) / alpha) * alpha + alpha * 0.5; // angle in sector from mid\n c = cos(-gamma);\n s = sin(-gamma);\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\n return inSector.x - radiusIn;\n}",$p(t,e,n,"shape-");let s=null;"shape-opacity"in t&&(s=zp(r,t["shape-opacity"],Mf));let o="coordsPx";"shape-scale"in t&&(o=`coordsPx / ${zp(r,t["shape-scale"],Mf|Nf)}`);let a=null;"shape-fill-color"in t&&(a=zp(r,t["shape-fill-color"],Of));let l=null;"shape-stroke-color"in t&&(l=zp(r,t["shape-stroke-color"],Of));let h=null;"shape-stroke-width"in t&&(h=zp(r,t["shape-stroke-width"],Mf));const c=zp(r,t["shape-points"],Mf);let u,d="0.";if("shape-angle"in t&&(d=zp(r,t["shape-angle"],Mf)),"shape-radius"in t){let e=zp(r,t["shape-radius"],Mf);null!==h&&(e=`${e} + ${h} * 0.5`),u=`regularDistanceField(${o}, ${c}, ${e}, ${d})`}else{let e=zp(r,t["shape-radius1"],Mf),i=zp(r,t["shape-radius2"],Mf);null!==h&&(e=`${e} + ${h} * 0.5`,i=`${i} + ${h} * 0.5`),u=`starDistanceField(${o}, ${c}, ${i}, ${e}, ${d})`}const g=Yp(u,a,l,h,s);e.setSymbolColorExpression(g)}(t,n,0,e,i):"circle-radius"in t&&function(t,e,i,n,r){r.functions.circleDistanceField="float circleDistanceField(vec2 point, float radius) {\n return length(point) - radius;\n}",$p(t,e,n,"circle-");let s=null;"circle-opacity"in t&&(s=zp(r,t["circle-opacity"],Mf));let o="coordsPx";"circle-scale"in t&&(o=`coordsPx / ${zp(r,t["circle-scale"],Mf|Nf)}`);let a=null;"circle-fill-color"in t&&(a=zp(r,t["circle-fill-color"],Of));let l=null;"circle-stroke-color"in t&&(l=zp(r,t["circle-stroke-color"],Of));let h=zp(r,t["circle-radius"],Mf),c=null;"circle-stroke-width"in t&&(c=zp(r,t["circle-stroke-width"],Mf),h=`(${h} + ${c} * 0.5)`);const u=Yp(`circleDistanceField(${o}, ${h})`,a,l,c,s);e.setSymbolColorExpression(u)}(t,n,0,e,i),function(t,e,i,n,r){if("stroke-color"in t&&e.setStrokeColorExpression(zp(r,t["stroke-color"],Of)),"stroke-pattern-src"in t){const n=Zp(t["stroke-pattern-src"]),s=qp(t,e,i,"stroke-pattern-",n);let o=s,a="vec2(0.)";"stroke-pattern-offset"in t&&"stroke-pattern-size"in t&&(o=zp(r,t["stroke-pattern-size"],Nf),a=Kp(t,"stroke-pattern-",r,s,o));let l="0.";"stroke-pattern-spacing"in t&&(l=zp(r,t["stroke-pattern-spacing"],Mf)),r.functions.sampleStrokePattern="vec4 sampleStrokePattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, float spacingPx, float currentLengthPx, float currentRadiusRatio) {\n float currentLengthScaled = currentLengthPx * sampleSize.y / v_width;\n float spacingScaled = spacingPx * sampleSize.y / v_width;\n float uCoordPx = mod(currentLengthScaled, (sampleSize.x + spacingScaled));\n float vCoordPx = (currentRadiusRatio * 0.5 + 0.5) * sampleSize.y;\n vec2 texCoord = (vec2(uCoordPx, vCoordPx) + textureOffset) / textureSize;\n return uCoordPx > sampleSize.x ? vec4(0.) : samplePremultiplied(texture, texCoord);\n }";const h=`u_texture${n}`;let c="1.";"stroke-color"in t&&(c=e.getStrokeColorExpression()),e.setStrokeColorExpression(`${c} * sampleStrokePattern(${h}, ${s}, ${a}, ${o}, ${l}, currentLengthPx, currentRadiusRatio)`)}if("stroke-width"in t&&e.setStrokeWidthExpression(zp(n,t["stroke-width"],Mf)),"stroke-offset"in t&&e.setStrokeOffsetExpression(zp(n,t["stroke-offset"],Mf)),"stroke-line-cap"in t&&e.setStrokeCapExpression(zp(n,t["stroke-line-cap"],Af)),"stroke-line-join"in t&&e.setStrokeJoinExpression(zp(n,t["stroke-line-join"],Af)),"stroke-miter-limit"in t&&e.setStrokeMiterLimitExpression(zp(n,t["stroke-miter-limit"],Mf)),"stroke-line-dash"in t){r.functions.getSingleDashDistance=`float getSingleDashDistance(float distance, float radius, float dashOffset, float dashLength, float dashLengthTotal, float capType) {\n float localDistance = mod(distance, dashLengthTotal);\n float distanceSegment = abs(localDistance - dashOffset - dashLength * 0.5) - dashLength * 0.5;\n distanceSegment = min(distanceSegment, dashLengthTotal - localDistance);\n if (capType == ${bp("square")}) {\n distanceSegment -= v_width * 0.5;\n } else if (capType == ${bp("round")}) {\n distanceSegment = min(distanceSegment, sqrt(distanceSegment * distanceSegment + radius * radius) - v_width * 0.5);\n }\n return distanceSegment;\n}`;let i=t["stroke-line-dash"].map((t=>zp(r,t,Mf)));i.length%2==1&&(i=[...i,...i]);let s="0.";"stroke-line-dash-offset"in t&&(s=zp(n,t["stroke-line-dash-offset"],Mf));const o=`dashDistanceField_${Zp(t["stroke-line-dash"])}`,a=i.map(((t,e)=>`float dashLength${e} = ${t};`)),l=i.map(((t,e)=>`dashLength${e}`)).join(" + ");let h="0.",c=`getSingleDashDistance(distance, radius, ${h}, dashLength0, totalDashLength, capType)`;for(let t=2;tCp(t.variables[s.name]):s.type===Of?()=>Xp([...Es(t.variables[s.name]||"#eee")]):s.type===Lf?()=>t.variables[s.name]?1:0:()=>t.variables[s.name],r[o]=a})),Object.keys(i.properties).forEach((function(t){const r=i.properties[t];e.properties[t]||(e.properties[t]=r);let s=Wp(r.type),o=`a_prop_${r.name}`;r.type===Of&&(s="vec4",o=`unpackColor(${o})`,n.addVertexShaderFunction("vec4 unpackColor(vec2 packedColor) {\n return fract(packedColor[1] / 256.0) * vec4(\n fract(floor(packedColor[0] / 256.0) / 256.0),\n fract(packedColor[0] / 256.0),\n fract(floor(packedColor[1] / 256.0) / 256.0),\n 1.0\n );\n}")),n.addVarying(`v_prop_${r.name}`,s,o)})),Object.keys(e.properties).forEach((function(t){const i=e.properties[t];n.addAttribute(`${Wp(i.type)} a_prop_${i.name}`)}));const s=Object.keys(e.properties).map((function(t){const i=e.properties[t];let n;return n=i.evaluator?i.evaluator:i.type===Af?t=>Cp(t.get(i.name)):i.type===Of?t=>Xp([...Es(t.get(i.name)||"#eee")]):i.type===Lf?t=>t.get(i.name)?1:0:t=>t.get(i.name),{name:i.name,size:Vp(i.type),callback:n}}));for(const t in e.functions)n.addVertexShaderFunction(e.functions[t]);for(const t in i.functions)n.addFragmentShaderFunction(i.functions[t]);return{builder:n,attributes:s.reduce(((t,e)=>({...t,[e.name]:{callback:e.callback,size:e.size}})),{}),uniforms:r}}class Jp{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=xl(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const t=this.getScale();return new Jp({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return j()}getImage(t){return j()}getHitDetectionImage(){return j()}getPixelRatio(t){return 1}getImageState(){return j()}getImageSize(){return j()}getOrigin(){return j()}getSize(){return j()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=xl(t)}listenImageChange(t){j()}load(){j()}unlistenImageChange(t){j()}}var Qp=Jp;class tm extends Qp{constructor(t){super({opacity:1,rotateWithView:void 0!==t.rotateWithView&&t.rotateWithView,rotation:void 0!==t.rotation?t.rotation:0,scale:void 0!==t.scale?t.scale:1,displacement:void 0!==t.displacement?t.displacement:[0,0],declutterMode:t.declutterMode}),this.canvases_,this.hitDetectionCanvas_=null,this.fill_=void 0!==t.fill?t.fill:null,this.origin_=[0,0],this.points_=t.points,this.radius_=void 0!==t.radius?t.radius:t.radius1,this.radius2_=t.radius2,this.angle_=void 0!==t.angle?t.angle:0,this.stroke_=void 0!==t.stroke?t.stroke:null,this.size_,this.renderOptions_,this.render()}clone(){const t=this.getScale(),e=new tm({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return e.setOpacity(this.getOpacity()),e}getAnchor(){const t=this.size_,e=this.getDisplacement(),i=this.getScaleArray();return[t[0]/2-e[0]/i[0],t[1]/2+e[1]/i[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(t){this.fill_=t,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(t){let e=this.canvases_[t];if(!e){const i=this.renderOptions_,n=mt(i.size*t,i.size*t);this.draw_(i,n,t),e=n.canvas,this.canvases_[t]=e}return e}getPixelRatio(t){return t}getImageSize(){return this.size_}getImageState(){return Yr}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius_}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t,this.render()}listenImageChange(t){}load(){}unlistenImageChange(t){}calculateLineJoinSize_(t,e,i){if(0===e||this.points_===1/0||"bevel"!==t&&"miter"!==t)return e;let n=this.radius_,r=void 0===this.radius2_?n:this.radius2_;if(n{this.image_=t,this.handleImageLoad_()})).catch(this.handleImageError_.bind(this))}}replaceColor_(t){if(!this.color_||this.canvas_[t]||this.imageState_!==Yr)return;const e=this.image_,i=document.createElement("canvas");i.width=Math.ceil(e.width*t),i.height=Math.ceil(e.height*t);const n=i.getContext("2d");n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle=ps(this.color_),n.fillRect(0,0,i.width/t,i.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=i}}function lm(t,e,i,n,r){let s=void 0===e?void 0:Is.get(e,i,r);return s||(s=new am(t,t instanceof HTMLImageElement?t.src||void 0:e,i,n,r),Is.set(e,i,r,s)),s}var hm=am;function cm(t,e,i,n){return void 0!==i&&void 0!==n?[i/t,n/e]:void 0!==i?i/t:void 0!==n?n/e:1}class um extends Qp{constructor(t){const e=void 0!==(t=t||{}).opacity?t.opacity:1,i=void 0!==t.rotation?t.rotation:0,n=void 0!==t.scale?t.scale:1,r=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:i,scale:n,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:r,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null;const s=void 0!==t.img?t.img:null;let o,a=t.src;if(It(!(void 0!==a&&s),"`image` and `src` cannot be provided at the same time"),void 0!==a&&0!==a.length||!s||(a=s.src||U(s)),It(void 0!==a&&a.length>0,"A defined and non-empty `src` or `image` must be provided"),It(!((void 0!==t.width||void 0!==t.height)&&void 0!==t.scale),"`width` or `height` cannot be provided together with `scale`"),void 0!==t.src?o=Zr:void 0!==s&&(o=s instanceof HTMLImageElement?s.complete?s.src?Yr:Zr:$r:Yr),this.color_=void 0!==t.color?Es(t.color):null,this.iconImage_=lm(s,a,this.crossOrigin_,o,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null,void 0!==t.width||void 0!==t.height){let e,i;if(t.size)[e,i]=t.size;else{const n=this.getImage(1);if(n.width&&n.height)e=n.width,i=n.height;else if(n instanceof HTMLImageElement){this.initialOptions_=t;const e=()=>{if(this.unlistenImageChange(e),!this.initialOptions_)return;const i=this.iconImage_.getSize();this.setScale(cm(i[0],i[1],t.width,t.height))};return void this.listenImageChange(e)}}void 0!==e&&this.setScale(cm(e,i,t.width,t.height))}}clone(){let t,e,i;return this.initialOptions_?(e=this.initialOptions_.width,i=this.initialOptions_.height):(t=this.getScale(),t=Array.isArray(t)?t.slice():t),new um({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:t,width:e,height:i,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]-e[0]/i[0],t[1]+e[1]/i[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=i[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){const t=this.getScaleArray();return this.size_?this.size_[0]*t[0]:this.iconImage_.getImageState()==Yr?this.iconImage_.getSize()[0]*t[0]:void 0}getHeight(){const t=this.getScaleArray();return this.size_?this.size_[1]*t[1]:this.iconImage_.getImageState()==Yr?this.iconImage_.getSize()[1]*t[1]:void 0}setScale(t){delete this.initialOptions_,super.setScale(t)}listenImageChange(t){this.iconImage_.addEventListener(v,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(v,t)}}var dm=um;class gm{constructor(t){t=t||{},this.color_=void 0!==t.color?t.color:null,this.lineCap_=t.lineCap,this.lineDash_=void 0!==t.lineDash?t.lineDash:null,this.lineDashOffset_=t.lineDashOffset,this.lineJoin_=t.lineJoin,this.miterLimit_=t.miterLimit,this.width_=t.width}clone(){const t=this.getColor();return new gm({color:Array.isArray(t)?t.slice():t||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(t){this.color_=t}setLineCap(t){this.lineCap_=t}setLineDash(t){this.lineDash_=t}setLineDashOffset(t){this.lineDashOffset_=t}setLineJoin(t){this.lineJoin_=t}setMiterLimit(t){this.miterLimit_=t}setWidth(t){this.width_=t}}var fm=gm;class pm{constructor(t){t=t||{},this.geometry_=null,this.geometryFunction_=vm,void 0!==t.geometry&&this.setGeometry(t.geometry),this.fill_=void 0!==t.fill?t.fill:null,this.image_=void 0!==t.image?t.image:null,this.renderer_=void 0!==t.renderer?t.renderer:null,this.hitDetectionRenderer_=void 0!==t.hitDetectionRenderer?t.hitDetectionRenderer:null,this.stroke_=void 0!==t.stroke?t.stroke:null,this.text_=void 0!==t.text?t.text:null,this.zIndex_=t.zIndex}clone(){let t=this.getGeometry();return t&&"object"==typeof t&&(t=t.clone()),new pm({geometry:t??void 0,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,renderer:this.getRenderer()??void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}getRenderer(){return this.renderer_}setRenderer(t){this.renderer_=t}setHitDetectionRenderer(t){this.hitDetectionRenderer_=t}getHitDetectionRenderer(){return this.hitDetectionRenderer_}getGeometry(){return this.geometry_}getGeometryFunction(){return this.geometryFunction_}getFill(){return this.fill_}setFill(t){this.fill_=t}getImage(){return this.image_}setImage(t){this.image_=t}getStroke(){return this.stroke_}setStroke(t){this.stroke_=t}getText(){return this.text_}setText(t){this.text_=t}getZIndex(){return this.zIndex_}setGeometry(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=vm,this.geometry_=t}setZIndex(t){this.zIndex_=t}}function mm(t){let e;if("function"==typeof t)e=t;else{let i;if(Array.isArray(t))i=t;else{It("function"==typeof t.getZIndex,"Expected an `Style` or an array of `Style`");i=[t]}e=function(){return i}}return e}let _m=null;function ym(t,e){if(!_m){const t=new sm({color:"rgba(255,255,255,0.4)"}),e=new fm({color:"#3399CC",width:1.25});_m=[new pm({image:new nm({fill:t,stroke:e,radius:5}),fill:t,stroke:e})]}return _m}function xm(){const t={},e=[255,255,255,1],i=[0,153,255,1];return t.Polygon=[new pm({fill:new sm({color:[255,255,255,.5]})})],t.MultiPolygon=t.Polygon,t.LineString=[new pm({stroke:new fm({color:e,width:5})}),new pm({stroke:new fm({color:i,width:3})})],t.MultiLineString=t.LineString,t.Circle=t.Polygon.concat(t.LineString),t.Point=[new pm({image:new nm({radius:6,fill:new sm({color:i}),stroke:new fm({color:e,width:1.5})}),zIndex:1/0})],t.MultiPoint=t.Point,t.GeometryCollection=t.Polygon.concat(t.LineString,t.Point),t}function vm(t){return t.getGeometry()}var wm=pm;class Sm{constructor(t){t=t||{},this.font_=t.font,this.rotation_=t.rotation,this.rotateWithView_=t.rotateWithView,this.scale_=t.scale,this.scaleArray_=xl(void 0!==t.scale?t.scale:1),this.text_=t.text,this.textAlign_=t.textAlign,this.justify_=t.justify,this.repeat_=t.repeat,this.textBaseline_=t.textBaseline,this.fill_=void 0!==t.fill?t.fill:new sm({color:"#333"}),this.maxAngle_=void 0!==t.maxAngle?t.maxAngle:Math.PI/4,this.placement_=void 0!==t.placement?t.placement:"point",this.overflow_=!!t.overflow,this.stroke_=void 0!==t.stroke?t.stroke:null,this.offsetX_=void 0!==t.offsetX?t.offsetX:0,this.offsetY_=void 0!==t.offsetY?t.offsetY:0,this.backgroundFill_=t.backgroundFill?t.backgroundFill:null,this.backgroundStroke_=t.backgroundStroke?t.backgroundStroke:null,this.padding_=void 0===t.padding?null:t.padding}clone(){const t=this.getScale();return new Sm({font:this.getFont(),placement:this.getPlacement(),repeat:this.getRepeat(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,text:this.getText(),textAlign:this.getTextAlign(),justify:this.getJustify(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()||void 0})}getOverflow(){return this.overflow_}getFont(){return this.font_}getMaxAngle(){return this.maxAngle_}getPlacement(){return this.placement_}getRepeat(){return this.repeat_}getOffsetX(){return this.offsetX_}getOffsetY(){return this.offsetY_}getFill(){return this.fill_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getStroke(){return this.stroke_}getText(){return this.text_}getTextAlign(){return this.textAlign_}getJustify(){return this.justify_}getTextBaseline(){return this.textBaseline_}getBackgroundFill(){return this.backgroundFill_}getBackgroundStroke(){return this.backgroundStroke_}getPadding(){return this.padding_}setOverflow(t){this.overflow_=t}setFont(t){this.font_=t}setMaxAngle(t){this.maxAngle_=t}setOffsetX(t){this.offsetX_=t}setOffsetY(t){this.offsetY_=t}setPlacement(t){this.placement_=t}setRepeat(t){this.repeat_=t}setRotateWithView(t){this.rotateWithView_=t}setFill(t){this.fill_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=xl(void 0!==t?t:1)}setStroke(t){this.stroke_=t}setText(t){this.text_=t}setTextAlign(t){this.textAlign_=t}setJustify(t){this.justify_=t}setTextBaseline(t){this.textBaseline_=t}setBackgroundFill(t){this.backgroundFill_=t}setBackgroundStroke(t){this.backgroundStroke_=t}setPadding(t){this.padding_=t}}var Em=Sm;var Tm=class{constructor(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0}insertItem(t){const e={prev:void 0,next:void 0,data:t},i=this.head_;if(i){const t=i.next;e.prev=i,e.next=t,i.next=e,t&&(t.prev=e),i===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++}removeItem(){const t=this.head_;if(t){const e=t.next,i=t.prev;e&&(e.prev=i),i&&(i.next=e),this.head_=e||i,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=i?this.head_.prev:this.head_),this.length_--}}firstItem(){if(this.head_=this.first_,this.head_)return this.head_.data}lastItem(){if(this.head_=this.last_,this.head_)return this.head_.data}nextItem(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data}getNextItem(){if(this.head_&&this.head_.next)return this.head_.next.data}prevItem(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data}getPrevItem(){if(this.head_&&this.head_.prev)return this.head_.prev.data}getCurrItem(){if(this.head_)return this.head_.data}setFirstItem(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)}concat(t){if(t.head_){if(this.head_){const e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}}getLength(){return this.length_}};function Cm(){return{variables:{},properties:{},resolution:NaN,featureId:null}}function bm(t,e,i){const n=Zf(t,i);if(!Uf(e,n.type)){const t=jf(e),i=jf(n.type);throw new Error(`Expected expression to be of type ${t}, got ${i}`)}return Rm(n)}function Rm(t,e){if(t instanceof Xf){if(t.type===Of&&"string"==typeof t.value){const e=Ss(t.value);return function(){return e}}return function(){return t.value}}const i=t.operator;switch(i){case $f.Number:case $f.String:return function(t,e){const i=t.operator,n=t.args.length,r=new Array(n);for(let e=0;e{for(let e=0;et.properties[n];case $f.Var:return t=>t.variables[n];default:throw new Error(`Unsupported accessor operator ${t.operator}`)}}(t);case $f.Id:return t=>t.featureId;case $f.Concat:{const e=t.args.map((t=>Rm(t)));return t=>"".concat(...e.map((e=>e(t).toString())))}case $f.Resolution:return t=>t.resolution;case $f.Any:case $f.All:case $f.Not:return function(t,e){const i=t.operator,n=t.args.length,r=new Array(n);for(let e=0;e{for(let e=0;e{for(let e=0;e!r[0](t);default:throw new Error(`Unsupported logical operator ${i}`)}}(t);case $f.Equal:case $f.NotEqual:case $f.LessThan:case $f.LessThanOrEqualTo:case $f.GreaterThan:case $f.GreaterThanOrEqualTo:return function(t,e){const i=t.operator,n=Rm(t.args[0]),r=Rm(t.args[1]);switch(i){case $f.Equal:return t=>n(t)===r(t);case $f.NotEqual:return t=>n(t)!==r(t);case $f.LessThan:return t=>n(t)n(t)<=r(t);case $f.GreaterThan:return t=>n(t)>r(t);case $f.GreaterThanOrEqualTo:return t=>n(t)>=r(t);default:throw new Error(`Unsupported comparison operator ${i}`)}}(t);case $f.Multiply:case $f.Divide:case $f.Add:case $f.Subtract:case $f.Clamp:case $f.Mod:case $f.Pow:case $f.Abs:case $f.Floor:case $f.Ceil:case $f.Round:case $f.Sin:case $f.Cos:case $f.Atan:case $f.Sqrt:return function(t,e){const i=t.operator,n=t.args.length,r=new Array(n);for(let e=0;e{let e=1;for(let i=0;ir[0](t)/r[1](t);case $f.Add:return t=>{let e=0;for(let i=0;ir[0](t)-r[1](t);case $f.Clamp:return t=>{const e=r[0](t),i=r[1](t);if(en?n:e};case $f.Mod:return t=>r[0](t)%r[1](t);case $f.Pow:return t=>Math.pow(r[0](t),r[1](t));case $f.Abs:return t=>Math.abs(r[0](t));case $f.Floor:return t=>Math.floor(r[0](t));case $f.Ceil:return t=>Math.ceil(r[0](t));case $f.Round:return t=>Math.round(r[0](t));case $f.Sin:return t=>Math.sin(r[0](t));case $f.Cos:return t=>Math.cos(r[0](t));case $f.Atan:return 2===n?t=>Math.atan2(r[0](t),r[1](t)):t=>Math.atan(r[0](t));case $f.Sqrt:return t=>Math.sqrt(r[0](t));default:throw new Error(`Unsupported numeric operator ${i}`)}}(t);case $f.Match:return function(t,e){const i=t.args.length,n=new Array(i);for(let e=0;e{const e=n[0](t);for(let r=1;r{const e=n[0](t),r=n[1](t);let s,o;for(let a=2;a=r)return 2===a?l:h?Fm(e,r,s,o,i,l):Pm(e,r,s,o,i,l);s=i,o=l}return o}}(t);default:throw new Error(`Unsupported operator ${i}`)}}function Pm(t,e,i,n,r,s){const o=r-i;if(0===o)return n;const a=e-i;return n+(1===t?a/o:(Math.pow(t,a)-1)/(Math.pow(t,o)-1))*(s-n)}function Fm(t,e,i,n,r,s){if(0===r-i)return n;const o=vs(n),a=vs(s);let l=a[2]-o[2];l>180?l-=360:l<-180&&(l+=360);return Ts(ws([Pm(t,e,i,o[0],r,a[0]),Pm(t,e,i,o[1],r,a[1]),o[2]+Pm(t,e,i,0,r,l),Pm(t,e,i,n[3],r,s[3])]))}function Im(t){return!0}function Lm(t){const e=Wf(),i=Am(t,e),n={variables:{},properties:{},resolution:NaN,featureId:null};return function(t,r){if(n.properties=t.getPropertiesInternal(),n.resolution=r,e.featureId){const e=t.getId();n.featureId=void 0!==e?e:null}return i(n)}}function Mm(t){const e=Wf(),i=t.length,n=new Array(i);for(let r=0;r4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return i}const Jm="renderOrder";var Qm=class extends yo{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=void 0!==t.declutter&&t.declutter,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(Jm)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t){t.declutterTree||(t.declutterTree=new rc(9)),this.getRenderer().renderDeclutter(t)}setRenderOrder(t){this.set(Jm,t)}setStyle(t){this.style_=function(t){if(void 0===t)return ym;if(!t)return null;if("function"==typeof t)return t;if(t instanceof wm)return t;if(!Array.isArray(t))return Mm([t]);if(0===t.length)return[];const e=t.length,i=t[0];if(i instanceof wm){const i=new Array(e);for(let n=0;n{const e=t.data;if(e.type===e_){const i=e.projectionTransform;this.verticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.verticesBuffer_),this.indicesBuffer_.fromArrayBuffer(e.indexBuffer),this.helper.flushBufferData(this.indicesBuffer_),this.renderTransform_=i,Zt(this.invertRenderTransform_,this.renderTransform_),this.renderInstructions_=new Float32Array(t.data.renderInstructions),e.id===this.lastSentId&&(this.ready=!0),this.getLayer().changed()}})),this.featureCache_={},this.featureCount_=0;const s=this.getLayer().getSource();this.sourceListenKeys_=[A(s,Uc,this.handleSourceFeatureAdded_,this),A(s,zc,this.handleSourceFeatureChanged_,this),A(s,Vc,this.handleSourceFeatureDelete_,this),A(s,Xc,this.handleSourceFeatureClear_,this)],s.forEachFeature((t=>{this.featureCache_[U(t)]={feature:t,properties:t.getProperties(),geometry:t.getGeometry()},this.featureCount_++}))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.hitDetectionEnabled_&&(this.hitRenderTarget_=new $g(this.helper))}handleSourceFeatureAdded_(t){const e=t.feature;this.featureCache_[U(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()},this.featureCount_++}handleSourceFeatureChanged_(t){const e=t.feature;this.featureCache_[U(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()}}handleSourceFeatureDelete_(t){const e=t.feature;delete this.featureCache_[U(e)],this.featureCount_--}handleSourceFeatureClear_(){this.featureCache_={},this.featureCount_=0}renderFrame(t){const e=this.helper.getGL();this.preRender(e,t);const[i,n,r]=r_(t,this.getLayer());this.renderWorlds(t,!1,i,n,r),this.helper.finalizeDraw(t,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent),this.hitDetectionEnabled_&&(this.renderWorlds(t,!0,i,n,r),this.hitRenderTarget_.clearCachedData()),this.postRender(e,t);return this.helper.getCanvas()}prepareFrameInternal(t){const e=this.getLayer(),i=e.getSource(),n=t.viewState,r=!t.viewHints[$s]&&!t.viewHints[Ys],s=!ce(this.previousExtent_,t.extent),o=this.sourceRevision_e+(t[i].size||1)),0)}function l_(t,e,i,n){const r=(2+a_(i))*t.geometriesCount;e&&e.length===r||(e=new Float32Array(r));const s=[];let o=0;for(const r in t.entries){const a=t.entries[r];for(let t=0,r=a.flatCoordss.length;t({name:`a_prop_${t}`,size:e.size||1,type:Gg.FLOAT})));this.polygonAttributesDesc_=[{name:f_,size:2,type:Gg.FLOAT},...s],this.lineStringAttributesDesc_=[{name:m_,size:2,type:Gg.FLOAT},{name:__,size:2,type:Gg.FLOAT},{name:x_,size:2,type:Gg.FLOAT},{name:v_,size:1,type:Gg.FLOAT},{name:y_,size:1,type:Gg.FLOAT},...s],this.pointAttributesDesc_=[{name:f_,size:2,type:Gg.FLOAT},{name:p_,size:1,type:Gg.FLOAT},...s],n.uniforms&&this.helper_.addUniforms(n.uniforms)}async generateBuffers(t,e){const i=this.generateRenderInstructions_(t,e),[n,r,s]=await Promise.all([this.generateBuffersForType_(i.polygonInstructions,"Polygon",e),this.generateBuffersForType_(i.lineStringInstructions,"LineString",e),this.generateBuffersForType_(i.pointInstructions,"Point",e)]);return{polygonBuffers:n,lineStringBuffers:r,pointBuffers:s,invertVerticesTransform:Zt([1,0,0,1,0,0],e)}}generateRenderInstructions_(t,e){return{polygonInstructions:this.hasFill_?c_(t.polygonBatch,new Float32Array(0),this.customAttributes_,e):null,lineStringInstructions:this.hasStroke_?h_(t.lineStringBatch,new Float32Array(0),this.customAttributes_,e):null,pointInstructions:this.hasSymbol_?l_(t.pointBatch,new Float32Array(0),this.customAttributes_,e):null}}generateBuffersForType_(t,e,i){if(null===t)return null;const n=g_++;let r;switch(e){case"Polygon":r=t_;break;case"LineString":r=i_;break;case"Point":r=e_}const s={id:n,type:r,renderInstructions:t.buffer,renderInstructionsTransform:i,customAttributesSize:a_(this.customAttributes_)};return d_.postMessage(s,[t.buffer]),t=null,new Promise((t=>{const e=i=>{const r=i.data;if(r.id!==n)return;if(d_.removeEventListener("message",e),!this.helper_.getGL())return;const s=new Lg(Yd,Hd).fromArrayBuffer(r.vertexBuffer),o=new Lg(qd,Hd).fromArrayBuffer(r.indexBuffer);this.helper_.flushBufferData(s),this.helper_.flushBufferData(o),t([o,s])};d_.addEventListener("message",e)}))}render(t,e,i){this.hasFill_&&this.renderInternal_(t.polygonBuffers[0],t.polygonBuffers[1],this.fillProgram_,this.polygonAttributesDesc_,e,i),this.hasStroke_&&this.renderInternal_(t.lineStringBuffers[0],t.lineStringBuffers[1],this.strokeProgram_,this.lineStringAttributesDesc_,e,i),this.hasSymbol_&&this.renderInternal_(t.pointBuffers[0],t.pointBuffers[1],this.symbolProgram_,this.pointAttributesDesc_,e,i)}renderInternal_(t,e,i,n,r,s){const o=t.getSize();0!==o&&(this.helper_.useProgram(i,r),this.helper_.bindBuffer(e),this.helper_.bindBuffer(t),this.helper_.enableAttributes(n),s(),this.helper_.drawElements(0,o))}};const S_={...kg,RENDER_EXTENT:"u_renderExtent",PATTERN_ORIGIN:"u_patternOrigin",GLOBAL_ALPHA:"u_globalAlpha"};var E_=class extends op{constructor(t,e){super(t,{uniforms:{[S_.RENDER_EXTENT]:[0,0,0,0],[S_.PATTERN_ORIGIN]:[0,0],[S_.GLOBAL_ALPHA]:1},postProcesses:e.postProcesses}),this.hitDetectionEnabled_=!e.disableHitDetection,this.hitRenderTarget_,this.sourceRevision_=-1,this.previousExtent_=[1/0,1/0,-1/0,-1/0],this.currentTransform_=[1,0,0,1,0,0],this.tmpCoords_=[0,0],this.tmpTransform_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.currentFrameStateTransform_=[1,0,0,1,0,0],this.styles_=[],this.styleRenderers_=[],this.buffers_=[],this.applyOptions_(e),this.batch_=new Bp,this.initialFeaturesAdded_=!1,this.sourceListenKeys_=null}addInitialFeatures_(t){const e=this.getLayer().getSource(),i=pn();let n;i&&(n=hn(i,t.viewState.projection)),this.batch_.addFeatures(e.getFeatures(),n),this.sourceListenKeys_=[A(e,Uc,this.handleSourceFeatureAdded_.bind(this,n),this),A(e,zc,this.handleSourceFeatureChanged_,this),A(e,Vc,this.handleSourceFeatureDelete_,this),A(e,Xc,this.handleSourceFeatureClear_,this)]}applyOptions_(t){this.styles_=Array.isArray(t.style)?t.style:[t.style]}createRenderers_(){this.buffers_=[],this.styleRenderers_=this.styles_.map((t=>new w_(t,this.helper,this.hitDetectionEnabled_)))}reset(t){this.applyOptions_(t),this.helper&&this.createRenderers_(),super.reset(t)}afterHelperCreated(){this.createRenderers_(),this.hitDetectionEnabled_&&(this.hitRenderTarget_=new $g(this.helper))}handleSourceFeatureAdded_(t,e){const i=e.feature;this.batch_.addFeature(i,t)}handleSourceFeatureChanged_(t){const e=t.feature;this.batch_.changeFeature(e)}handleSourceFeatureDelete_(t){const e=t.feature;this.batch_.removeFeature(e)}handleSourceFeatureClear_(){this.batch_.clear()}applyUniforms_(t){jt(this.tmpTransform_,this.currentFrameStateTransform_),kt(this.tmpTransform_,t),this.helper.setUniformMatrixValue(S_.PROJECTION_MATRIX,Dg(this.tmpMat4_,this.tmpTransform_)),Zt(this.tmpTransform_,this.tmpTransform_),this.helper.setUniformMatrixValue(S_.SCREEN_TO_WORLD_MATRIX,Dg(this.tmpMat4_,this.tmpTransform_)),this.tmpCoords_[0]=0,this.tmpCoords_[1]=0,Zt(this.tmpTransform_,t),Bt(this.tmpTransform_,this.tmpCoords_),this.helper.setUniformFloatVec2(S_.PATTERN_ORIGIN,this.tmpCoords_)}renderFrame(t){const e=this.helper.getGL();this.preRender(e,t);const[i,n,r]=r_(t,this.getLayer());this.helper.prepareDraw(t),this.renderWorlds(t,!1,i,n,r),this.helper.finalizeDraw(t);const s=this.helper.getCanvas(),o=t.layerStatesArray[t.layerIndex].opacity;return o!==parseFloat(s.style.opacity)&&(s.style.opacity=String(o)),this.hitDetectionEnabled_&&(this.renderWorlds(t,!0,i,n,r),this.hitRenderTarget_.clearCachedData()),this.postRender(e,t),s}prepareFrameInternal(t){this.initialFeaturesAdded_||(this.addInitialFeatures_(t),this.initialFeaturesAdded_=!0);const e=this.getLayer(),i=e.getSource(),n=t.viewState,r=!t.viewHints[$s]&&!t.viewHints[Ys],s=!ce(this.previousExtent_,t.extent),o=this.sourceRevision_t.generateBuffers(this.batch_,h).then((t=>{this.buffers_[e]=t}))));Promise.all(c).then((()=>{this.ready=!0,this.getLayer().changed()})),this.previousExtent_=t.extent.slice()}return!0}renderWorlds(t,e,i,n,r){let s=i;e&&(this.hitRenderTarget_.setSize([Math.floor(t.size[0]/2),Math.floor(t.size[1]/2)]),this.helper.prepareDrawToRenderTarget(t,this.hitRenderTarget_,!0)),this.currentFrameStateTransform_=this.helper.makeProjectionTransform(t,this.currentFrameStateTransform_);do{for(let i=0,n=this.styleRenderers_.length;i{this.applyUniforms_(r.invertVerticesTransform),this.helper.applyHitDetectionUniform(e)}))}Vt(this.currentFrameStateTransform_,r,0)}while(++s ${T_.TILE_ZOOM_LEVEL} + 0.5`;t.setFragmentDiscardExpression("false"!==e?`(${e}) || (${i})`:i),t.addUniform(`sampler2D ${T_.TILE_MASK_TEXTURE}`),t.addUniform(`float ${T_.TILE_ZOOM_LEVEL}`)}this.styleRenderers_=this.styles_.map((e=>{let i;if("builder"in e)t(e.builder),i=e;else{const n=Hp(e);t(n.builder),i={builder:n.builder,attributes:n.attributes,uniforms:n.uniforms}}return new w_(i,this.helper,this.hitDetectionEnabled_)}))}initTileMask_(){this.tileMaskTarget_=new $g(this.helper);const t=(new Gp).setFillColorExpression(`vec4(${T_.TILE_ZOOM_LEVEL} / 50., 0., 0., 1.)`).addUniform(`float ${T_.TILE_ZOOM_LEVEL}`);this.tileMaskProgram_=this.helper.getProgram(t.getFillFragmentShader(),t.getFillVertexShader()),this.helper.flushBufferData(this.tileMaskIndices_)}afterHelperCreated(){this.createRenderers_(),this.initTileMask_()}createTileRepresentation(t){const e=new Up(t,this.styleRenderers_),i=()=>{e.ready&&(this.getLayer().changed(),e.removeEventListener(v,i))};return e.addEventListener(v,i),e}beforeTilesRender(t,e){super.beforeTilesRender(t,!0),this.helper.makeProjectionTransform(t,this.currentFrameStateTransform_),this.helper.bindTexture(this.tileMaskTarget_.getTexture(),0,T_.TILE_MASK_TEXTURE)}beforeTilesMaskRender(t){this.helper.makeProjectionTransform(t,this.currentFrameStateTransform_);const e=t.pixelRatio,i=t.size;return this.tileMaskTarget_.setSize([i[0]*e,i[1]*e]),this.helper.prepareDrawToRenderTarget(t,this.tileMaskTarget_,!0,!0),this.helper.useProgram(this.tileMaskProgram_,t),jt(this.tmpTransform_,this.currentFrameStateTransform_),this.helper.setUniformMatrixValue(T_.PROJECTION_MATRIX,Dg(this.tmpMat4_,this.tmpTransform_)),Zt(this.tmpTransform_,this.currentFrameStateTransform_),this.helper.setUniformMatrixValue(T_.SCREEN_TO_WORLD_MATRIX,Dg(this.tmpMat4_,this.tmpTransform_)),!0}renderTileMask(t,e,i,n){if(!t.ready)return;this.helper.setUniformFloatValue(T_.DEPTH,n),this.helper.setUniformFloatValue(T_.TILE_ZOOM_LEVEL,e),this.helper.setUniformFloatVec4(T_.RENDER_EXTENT,i),this.helper.setUniformFloatValue(T_.GLOBAL_ALPHA,1),this.helper.bindBuffer(t.maskVertices),this.helper.bindBuffer(this.tileMaskIndices_),this.helper.enableAttributes(this.tileMaskAttributes_);const r=this.tileMaskIndices_.getSize();this.helper.drawElements(0,r)}applyUniforms_(t,e,i,n,r){jt(this.tmpTransform_,this.currentFrameStateTransform_),kt(this.tmpTransform_,i),this.helper.setUniformMatrixValue(T_.PROJECTION_MATRIX,Dg(this.tmpMat4_,this.tmpTransform_)),Zt(this.tmpTransform_,this.currentFrameStateTransform_),this.helper.setUniformMatrixValue(T_.SCREEN_TO_WORLD_MATRIX,Dg(this.tmpMat4_,this.tmpTransform_)),this.helper.setUniformFloatValue(T_.GLOBAL_ALPHA,t),this.helper.setUniformFloatValue(T_.DEPTH,r),this.helper.setUniformFloatValue(T_.TILE_ZOOM_LEVEL,n),this.helper.setUniformFloatVec4(T_.RENDER_EXTENT,e)}renderTile(t,e,i,n,r,s,o,a,l,h,c){const u=Re(a,n,a),d=t.tile.getTileCoord()[0];for(let e=0,n=this.styleRenderers_.length;e{this.applyUniforms_(c,u,r.invertVerticesTransform,d,l)}))}}renderDeclutter(t){}disposeInternal(){super.disposeInternal()}};const R_=0,P_=1,F_=2,I_=3,L_=4,M_=5,A_=6,O_=7,N_=8,D_=9,k_=10,G_=11,j_=12,B_=[N_],U_=[j_],z_=[P_],X_=[I_];var V_=class extends eh{constructor(t,e,i,n){super(),this.tolerance=t,this.maxExtent=e,this.pixelRatio=n,this.maxLineWidth=0,this.resolution=i,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_=null,this.bufferedMaxExtent_=null,this.instructions=[],this.coordinates=[],this.tmpCoordinate_=[],this.hitDetectionInstructions=[],this.state={}}applyPixelRatio(t){const e=this.pixelRatio;return 1==e?t:t.map((function(t){return t*e}))}appendFlatPointCoordinates(t,e){const i=this.getBufferedMaxExtent(),n=this.tmpCoordinate_,r=this.coordinates;let s=r.length;for(let o=0,a=t.length;oo&&(this.instructions.push([L_,o,l,t,i,Jn]),this.hitDetectionInstructions.push([L_,o,l,t,n||i,Jn]));break;case"Point":a=t.getFlatCoordinates(),this.coordinates.push(a[0],a[1]),l=this.coordinates.length,this.instructions.push([L_,o,l,t,i]),this.hitDetectionInstructions.push([L_,o,l,t,n||i])}this.endGeometry(e)}beginGeometry(t,e){this.beginGeometryInstruction1_=[R_,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[R_,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const i=t.length;let n,r,s=-1;for(e=0;ethis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0}createFill(t){const e=t.fillStyle,i=[k_,e];return"string"!=typeof e&&i.push(!0),i}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[G_,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const i=t.fillStyle;"string"==typeof i&&t.currentFillStyle==i||(void 0!==i&&this.instructions.push(e.call(this,t)),t.currentFillStyle=i)}updateStrokeStyle(t,e){const i=t.strokeStyle,n=t.lineCap,r=t.lineDash,s=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,l=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=n||r!=t.currentLineDash&&!c(t.currentLineDash,r)||t.currentLineDashOffset!=s||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=l)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=n,t.currentLineDash=r,t.currentLineDashOffset=s,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=l)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[O_,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=Qt(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;Jt(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}};var W_=class extends V_{constructor(t,e,i,n){super(t,e,i,n),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([A_,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([A_,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([A_,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([A_,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}finish(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,super.finish()}setImageStyle(t,e){const i=t.getAnchor(),n=t.getSize(),r=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=i[0],this.anchorY_=i[1],this.hitDetectionImage_=t.getHitDetectionImage(),this.image_=t.getImage(this.pixelRatio),this.height_=n[1],this.opacity_=t.getOpacity(),this.originX_=r[0],this.originY_=r[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=n[0],this.declutterMode_=t.getDeclutterMode(),this.declutterImageWithText_=e}};var Z_=class extends V_{constructor(t,e,i,n){super(t,e,i,n)}drawFlatCoordinates_(t,e,i,n){const r=this.coordinates.length,s=this.appendFlatLineCoordinates(t,e,i,n,!1,!1),o=[D_,r,s];return this.instructions.push(o),this.hitDetectionInstructions.push(o),i}drawLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([G_,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Oo,0],z_);const s=t.getFlatCoordinates(),o=t.getStride();this.drawFlatCoordinates_(s,0,s.length,o),this.hitDetectionInstructions.push(U_),this.endGeometry(e)}drawMultiLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([G_,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Oo,0],z_);const s=t.getEnds(),o=t.getFlatCoordinates(),a=t.getStride();let l=0;for(let t=0,e=s.length;t=t){const e=(t-a+u)/u,d=yi(i,h,e),g=yi(n,c,e);l.push(d,g),s.push(l),l=[d,g],a==t&&(o+=r),a=0}else if(a0&&s.push(l),s}function q_(t,e,i,n,r){let s,o,a,l,h,c,u,d,g,f,p=i,m=i,_=0,y=0,x=i;for(o=i;ot&&(y>_&&(_=y,p=x,m=o),y=0,x=o-r)),a=l,u=g,d=f),h=i,c=n}return y+=l,y>_?[x,o]:[p,m]}const K_={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1};var H_=class extends V_{constructor(t,e,i,n){super(t,e,i,n),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[Mo]={fillStyle:Mo},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterImageWithText_=void 0}finish(){const t=super.finish();return t.textStates=this.textStates,t.fillStates=this.fillStates,t.strokeStates=this.strokeStates,t}drawText(t,e){const i=this.textFillState_,n=this.textStrokeState_,r=this.textState_;if(""===this.text_||!r||!i&&!n)return;const s=this.coordinates;let o=s.length;const a=t.getType();let l=null,h=t.getStride();if("line"!==r.placement||"LineString"!=a&&"MultiLineString"!=a&&"Polygon"!=a&&"MultiPolygon"!=a){let i=r.overflow?null:[];switch(a){case"Point":case"MultiPoint":l=t.getFlatCoordinates();break;case"LineString":l=t.getFlatMidpoint();break;case"Circle":l=t.getCenter();break;case"MultiLineString":l=t.getFlatMidpoints(),h=2;break;case"Polygon":l=t.getFlatInteriorPoint(),r.overflow||i.push(l[2]/this.resolution),h=3;break;case"MultiPolygon":const e=t.getFlatInteriorPoints();l=[];for(let t=0,n=e.length;t{const n=s[2*(t+i)]===l[i*h]&&s[2*(t+i)+1]===l[i*h+1];return n||--t,n}))}this.saveTextStates_(),(r.backgroundFill||r.backgroundStroke)&&(this.setFillStrokeStyle(r.backgroundFill,r.backgroundStroke),r.backgroundFill&&this.updateFillStyle(this.state,this.createFill),r.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e);let c=r.padding;if(c!=Bo&&(r.scale[0]<0||r.scale[1]<0)){let t=r.padding[0],e=r.padding[1],i=r.padding[2],n=r.padding[3];r.scale[0]<0&&(e=-e,n=-n),r.scale[1]<0&&(t=-t,i=-i),c=[t,e,i,n]}const u=this.pixelRatio;this.instructions.push([A_,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,void 0,this.declutterImageWithText_,c==Bo?Bo:c.map((function(t){return t*u})),!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]);const d=1/u,g=this.state.fillStyle;r.backgroundFill&&(this.state.fillStyle=Mo,this.hitDetectionInstructions.push(this.createFill(this.state))),this.hitDetectionInstructions.push([A_,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[d,d],NaN,void 0,this.declutterImageWithText_,c,!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?Mo:this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]),r.backgroundFill&&(this.state.fillStyle=g,this.hitDetectionInstructions.push(this.createFill(this.state))),this.endGeometry(e)}else{if(!Le(this.getBufferedMaxExtent(),t.getExtent()))return;let i;if(l=t.getFlatCoordinates(),"LineString"==a)i=[l.length];else if("MultiLineString"==a)i=t.getEnds();else if("Polygon"==a)i=t.getEnds().slice(0,1);else if("MultiPolygon"==a){const e=t.getEndss();i=[];for(let t=0,n=e.length;tt[2]}else R=v>C;const P=Math.PI,F=[],I=S+n===e;let L;if(m=0,_=E,d=t[e=S],g=t[e+1],I){y(),L=Math.atan2(g-p,d-f),R&&(L+=L>0?-P:P);const t=(C+v)/2,e=(b+w)/2;return F[0]=[t,e,(T-s)/2,L,r],F}for(let t=0,u=(r=r.replace(/\n/g," ")).length;t0?-P:P),void 0!==L){let t=v-L;if(t+=t>P?-2*P:t<-P?2*P:0,Math.abs(t)>o)return null}L=v;const w=t;let S=0;for(;t0&&t.push("\n",""),t.push(e,""),t}var cy=class{constructor(t,e,i,n){this.overlaps=i,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=n.instructions,this.coordinates=n.coordinates,this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=n.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=n.fillStates||{},this.strokeStates=n.strokeStates||{},this.textStates=n.textStates||{},this.widths_={},this.labels_={}}createLabel(t,e,i,n){const r=t+e+i+n;if(this.labels_[r])return this.labels_[r];const s=n?this.strokeStates[n]:null,o=i?this.fillStates[i]:null,a=this.textStates[e],l=this.pixelRatio,h=[a.scale[0]*l,a.scale[1]*l],c=Array.isArray(t),u=a.justify?K_[a.justify]:ly(Array.isArray(t)?t[0]:t,a.textAlign||Go),d=n&&s.lineWidth?s.lineWidth:0,g=c?t:t.split("\n").reduce(hy,[]),{width:f,height:p,widths:m,heights:_,lineWidths:y}=Ko(a,g),x=f+d,v=[],w=(x+2)*h[0],S=(p+d)*h[1],E={width:w<0?Math.floor(w):Math.ceil(w),height:S<0?Math.floor(S):Math.ceil(S),contextInstructions:v};1==h[0]&&1==h[1]||v.push("scale",h),n&&(v.push("strokeStyle",s.strokeStyle),v.push("lineWidth",d),v.push("lineCap",s.lineCap),v.push("lineJoin",s.lineJoin),v.push("miterLimit",s.miterLimit),v.push("setLineDash",[s.lineDash]),v.push("lineDashOffset",s.lineDashOffset)),i&&v.push("fillStyle",o.fillStyle),v.push("textBaseline","middle"),v.push("textAlign","center");const T=.5-u;let C=u*x+T*d;const b=[],R=[];let P,F=0,I=0,L=0,M=0;for(let t=0,e=g.length;tt?t-l:r,x=s+h>e?e-h:s,v=g[3]+y*u[0]+g[1],w=g[0]+x*u[1]+g[2],S=m-g[3],E=_-g[0];let T;return(f||0!==c)&&(iy[0]=S,sy[0]=S,iy[1]=E,ny[1]=E,ny[0]=S+v,ry[0]=ny[0],ry[1]=E+w,sy[1]=ry[1]),0!==c?(T=Wt([1,0,0,1,0,0],i,n,1,1,c,-i,-n),Bt(T,iy),Bt(T,ny),Bt(T,ry),Bt(T,sy),oe(Math.min(iy[0],ny[0],ry[0],sy[0]),Math.min(iy[1],ny[1],ry[1],sy[1]),Math.max(iy[0],ny[0],ry[0],sy[0]),Math.max(iy[1],ny[1],ry[1],sy[1]),ey)):oe(Math.min(S,S+v),Math.min(E,E+w),Math.max(S,S+v),Math.max(E,E+w),ey),d&&(m=Math.round(m),_=Math.round(_)),{drawImageX:m,drawImageY:_,drawImageW:y,drawImageH:x,originX:l,originY:h,declutterBox:{minX:ey[0],minY:ey[1],maxX:ey[2],maxY:ey[3],value:p},canvasTransform:T,scale:u}}replayImageOrLabel_(t,e,i,n,r,s,o){const a=!(!s&&!o),l=n.declutterBox,h=t.canvas,c=o?o[2]*n.scale[0]/2:0;return l.minX-c<=h.width/e&&l.maxX+c>=0&&l.minY-c<=h.height/e&&l.maxY+c>=0&&(a&&this.replayTextBackground_(t,iy,ny,ry,sy,s,o),Ho(t,n.canvasTransform,r,i,n.originX,n.originY,n.drawImageW,n.drawImageH,n.drawImageX,n.drawImageY,n.scale)),!0}fill_(t){if(this.alignFill_){const e=Bt(this.renderedTransform_,[0,0]),i=512*this.pixelRatio;t.save(),t.translate(e[0]%i,e[1]%i),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()}setStrokeStyle_(t,e){t.strokeStyle=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.lineDashOffset=e[7],t.setLineDash(e[6])}drawLabelWithPointPlacement_(t,e,i,n){const r=this.textStates[e],s=this.createLabel(t,e,n,i),o=this.strokeStates[i],a=this.pixelRatio,l=ly(Array.isArray(t)?t[0]:t,r.textAlign||Go),h=K_[r.textBaseline||jo],c=o&&o.lineWidth?o.lineWidth:0;return{label:s,anchorX:l*(s.width/a-2*r.scale[0])+2*(.5-l)*c,anchorY:h*s.height/a+2*(.5-h)*c}}execute_(t,e,i,n,r,s,o,a){let l;this.pixelCoordinates_&&c(i,this.renderedTransform_)?l=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),l=Tn(this.coordinates,0,this.coordinates.length,2,i,this.pixelCoordinates_),jt(this.renderedTransform_,i));let h=0;const u=n.length;let d,g,f,p,m,_,y,x,v,w,S,E,T=0,C=0,b=0,R=null,P=null;const F=this.coordinateCache_,I=this.viewRotation_,L=Math.round(1e12*Math.atan2(-i[1],i[0]))/1e12,M={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:I},A=this.instructions!=n||this.overlaps?0:200;let O,N,D,k;for(;hA&&(this.fill_(t),C=0),b>A&&(t.stroke(),b=0),C||b||(t.beginPath(),p=NaN,m=NaN),++h;break;case F_:T=i[1];const n=l[T],c=l[T+1],u=l[T+2]-n,G=l[T+3]-c,j=Math.sqrt(u*u+G*G);t.moveTo(n+j,c),t.arc(n,c,j,0,2*Math.PI,!0),++h;break;case I_:t.closePath(),++h;break;case L_:T=i[1],d=i[2];const B=i[3],U=i[4],z=6==i.length?i[5]:void 0;M.geometry=B,M.feature=O,h in F||(F[h]=[]);const X=F[h];z?z(l,T,d,2,X):(X[0]=l[T],X[1]=l[T+1],X.length=2),U(X,M),++h;break;case A_:T=i[1],d=i[2],x=i[3],g=i[4],f=i[5];let V=i[6];const W=i[7],Z=i[8],$=i[9],Y=i[10];let q=i[11];const K=i[12];let H=i[13];const J=i[14],Q=i[15];if(!x&&i.length>=20){v=i[19],w=i[20],S=i[21],E=i[22];const t=this.drawLabelWithPointPlacement_(v,w,S,E);x=t.label,i[3]=x;const e=i[23];g=(t.anchorX-e)*this.pixelRatio,i[4]=g;const n=i[24];f=(t.anchorY-n)*this.pixelRatio,i[5]=f,V=x.height,i[6]=V,H=x.width,i[13]=H}let tt,et,it,nt;i.length>25&&(tt=i[25]),i.length>17?(et=i[16],it=i[17],nt=i[18]):(et=Bo,it=!1,nt=!1),Y&&L?q+=I:Y||L||(q-=I);let rt=0;for(;Ti)break;let a=n[o];a||(a=[],n[o]=a),a.push(4*((t+r)*e+(t+s))+3),r>0&&a.push(4*((t-r)*e+(t+s))+3),s>0&&(a.push(4*((t+r)*e+(t-s))+3),r>0&&a.push(4*((t-r)*e+(t-s))+3))}const r=[];for(let t=0,e=n.length;t0){if(!o||"Image"!==g&&"Text"!==g||o.includes(t)){const i=(d[s]-3)/4,o=n-i%a,l=n-(i/a|0),h=r(t,e,o*o+l*l);if(h)return h}c.clearRect(0,0,a,a);break}}const p=Object.keys(this.executorsByZIndex_).map(Number);let m,_,y,x,v;for(p.sort(s),m=p.length-1;m>=0;--m){const t=p[m].toString();for(y=this.executorsByZIndex_[t],_=uy.length-1;_>=0;--_)if(g=uy[_],x=y[g],void 0!==x&&(v=x.executeHitDetection(c,l,i,f,u),v))return v}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const i=e[0],n=e[1],r=e[2],s=e[3],o=[i,n,i,s,r,s,r,n];return Tn(o,0,8,2,t,o),o}isEmpty(){return y(this.executorsByZIndex_)}execute(t,e,i,n,r,o,a){const l=Object.keys(this.executorsByZIndex_).map(Number);let h,c,u,d,g,f;for(l.sort(s),this.maxExtent_&&(t.save(),this.clip(t,i)),o=o||uy,a&&l.reverse(),h=0,c=l.length;h{if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=[this.context.canvas.width,this.context.canvas.height];Bt(this.pixelTransform,t);const e=this.renderedCenter_,i=this.renderedResolution_,n=this.renderedRotation_,r=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=t[0]*py,h=t[1]*py;a.push(this.getRenderTransform(e,i,n,py,l,h,0).slice());const c=o.getSource(),u=r.getExtent();if(c.getWrapX()&&r.canWrapX()&&!ie(u,s)){let t=s[0];const r=Ie(u);let o,c=0;for(;tu[2];)++c,o=r*c,a.push(this.getRenderTransform(e,i,n,py,l,h,o).slice()),t-=r}this.hitDetectionImageData_=my(t,a,this.renderedFeatures_,o.getStyleFunction(),s,i,n)}e(_y(t,this.renderedFeatures_,this.hitDetectionImageData_))}))}forEachFeatureAtCoordinate(t,e,i,n,r){if(!this.replayGroup_)return;const s=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),l={},h=function(t,e,i){const s=U(t),o=l[s];if(o){if(!0!==o&&ic=n.forEachFeatureAtCoordinate(t,s,o,i,h,n===this.declutterExecutorGroup&&e.declutterTree?e.declutterTree.all().map((t=>t.value)):null))),c}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),i=e.getSource();if(!i)return!1;const n=t.viewHints[$s],r=t.viewHints[Ys],s=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!s&&n||!o&&r)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,l=t.viewState,h=l.projection,u=l.resolution,d=t.pixelRatio,g=e.getRevision(),f=e.getRenderBuffer();let p=e.getRenderOrder();void 0===p&&(p=sh);const m=l.center.slice(),_=Jt(a,f*u),y=_.slice(),x=[_.slice()],v=h.getExtent();if(i.getWrapX()&&h.canWrapX()&&!ie(v,t.extent)){const t=Ie(v),e=Math.max(Ie(_)/2,t);_[0]=v[0]-e,_[2]=v[2]+e,ki(m,h);const i=ke(x[0],h);i[0]v[0]&&i[2]>v[2]&&x.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==u&&this.renderedRevision_==g&&this.renderedRenderOrder_==p&&ie(this.wrappedRenderedExtent_,_))return c(this.renderedExtent_,y)||(this.hitDetectionImageData_=null,this.renderedExtent_=y),this.renderedCenter_=m,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const w=new Q_(ah(u,d),_,u,d);let S;this.getLayer().getDeclutter()&&(S=new Q_(ah(u,d),_,u,d));const E=pn();let T;if(E){for(let t=0,e=x.length;t{let i;const n=t.getStyleFunction()||e.getStyleFunction();if(n&&(i=n(t,u)),i){const e=this.renderFeature(t,C,i,w,T,S);b=b&&!e}},P=yn(_,h),F=i.getFeaturesInExtent(P);p&&F.sort(p);for(let t=0,e=F.length;t{if(g.getState()!==Yr)return;this.image_=d?null:g;const t=g.getPixelRatio(),n=yh(g.getResolution())*e/t;this.renderedResolution=n,this.coordinateToVectorPixelTransform_=Wt(this.coordinateToVectorPixelTransform_,a/2,l/2,1/n,-1/n,0,-i.center[0],-i.center[1])})),g.load()}return this.image_&&(this.renderedPixelToCoordinateTransform_=t.pixelToCoordinateTransform.slice()),!!this.image_}preRender(){}postRender(){}renderDeclutter(){}forEachFeatureAtCoordinate(t,e,i,n,r){return this.vectorRenderer_?this.vectorRenderer_.forEachFeatureAtCoordinate(t,e,i,n,r):super.forEachFeatureAtCoordinate(t,e,i,n,r)}};const vy={image:["Polygon","Circle","LineString","Image","Text"],hybrid:["Polygon","LineString"],vector:[]},wy={hybrid:["Image","Text","Default"],vector:["Polygon","Circle","LineString","Image","Text","Default"]};var Sy=class extends Sd{constructor(t){super(t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.renderedLayerRevision_,this.renderedPixelToCoordinateTransform_=null,this.renderedRotation_,this.tmpTransform_=[1,0,0,1,0,0]}prepareTile(t,e,i){let n;const r=t.getState();return r!==H&&r!==J||(this.updateExecutorGroup_(t,e,i),this.tileImageNeedsRender_(t)&&(n=!0)),n}getTile(t,e,i,n){const r=n.pixelRatio,s=n.viewState,o=s.resolution,a=s.projection,l=this.getLayer(),h=l.getSource().getTile(t,e,i,r,a),c=n.viewHints,u=!(c[$s]||c[Ys]);!u&&h.wantedResolution||(h.wantedResolution=o);return this.prepareTile(h,r,a)&&(u||Date.now()-n.time<8)&&"vector"!==l.getRenderMode()&&this.renderTileImage_(h,n),super.getTile(t,e,i,n)}isDrawableTile(t){const e=this.getLayer();return super.isDrawableTile(t)&&("vector"===e.getRenderMode()?U(e)in t.executorGroups:t.hasContext(e))}getTileImage(t){return t.getImage(this.getLayer())}prepareFrame(t){const e=this.getLayer().getRevision();return this.renderedLayerRevision_!==e&&(this.renderedLayerRevision_=e,this.renderedTiles.length=0),super.prepareFrame(t)}updateExecutorGroup_(t,e,i){const n=this.getLayer(),r=n.getRevision(),s=n.getRenderOrder()||null,o=t.wantedResolution,a=t.getReplayState(n);if(!a.dirty&&a.renderedResolution===o&&a.renderedRevision==r&&a.renderedRenderOrder==s)return;const l=n.getSource(),h=n.getDeclutter(),c=l.getTileGrid(),u=l.getTileGridForProjection(i).getTileCoordExtent(t.wrappedTileCoord),d=l.getSourceTiles(e,i,t),g=U(n);delete t.hitDetectionImageData[g],t.executorGroups[g]=[],h&&(t.declutterExecutorGroups[g]=[]),a.dirty=!1;for(let i=0,r=d.length;i{const r=n===p?e.declutterTree.all().map((t=>t.value)):null;for(let e=0,a=n.length;e{const n=this.getLayer(),r=U(n),s=n.getSource(),o=this.renderedProjection,a=o.getExtent(),l=this.renderedResolution,h=s.getTileGridForProjection(o),c=Bt(this.renderedPixelToCoordinateTransform_,t.slice()),u=h.getTileCoordForCoordAndResolution(c,l);let d;for(let t=0,e=this.renderedTiles.length;t0)return void e([]);const g=Pe(h.getTileCoordExtent(d.wrappedTileCoord)),f=[(c[0]-g[0])/l,(g[1]-c[1])/l],p=d.getSourceTiles().reduce((function(t,e){return t.concat(e.getFeatures())}),[]);let m=d.hitDetectionImageData[r];if(!m){const t=xl(h.getTileSize(h.getZForResolution(l,s.zDirection))),e=this.renderedRotation_;m=my(t,[this.getRenderTransform(h.getTileCoordCenter(d.wrappedTileCoord),l,0,py,t[0]*py,t[1]*py,0)],p,n.getStyleFunction(),h.getTileCoordExtent(d.wrappedTileCoord),d.getReplayState(n).renderedResolution,e),d.hitDetectionImageData[r]=m}e(_y(f,p,m))}))}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&void 0!==this.renderedLayerRevision_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}renderDeclutter(t){const e=this.context,i=e.globalAlpha;e.globalAlpha=this.getLayer().getOpacity();const n=t.viewHints,r=!(n[$s]||n[Ys]),s=this.renderedTiles;for(let e=0,i=s.length;e=0;--e)n[e].execute(this.context,1,this.getTileRenderTransform(i,t),t.viewState.rotation,r,void 0,t.declutterTree)}e.globalAlpha=i}getTileRenderTransform(t,e){const i=e.pixelRatio,n=e.viewState,r=n.center,s=n.resolution,o=n.rotation,a=e.size,l=Math.round(a[0]*i),h=Math.round(a[1]*i),c=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),u=t.tileCoord,d=c.getTileCoordExtent(t.wrappedTileCoord),g=c.getTileCoordExtent(u,this.tmpExtent)[0]-d[0];return kt(zt(this.inversePixelTransform.slice(),1/i,1/i),this.getRenderTransform(r,s,o,i,l,h,g))}postRender(t,e){const i=e.viewHints,n=!(i[$s]||i[Ys]);this.renderedPixelToCoordinateTransform_=e.pixelToCoordinateTransform.slice(),this.renderedRotation_=e.viewState.rotation;const r=this.getLayer(),s=r.getRenderMode(),o=t.globalAlpha;t.globalAlpha=r.getOpacity();const a=wy[s],l=e.viewState,h=l.rotation,c=r.getSource(),u=c.getTileGridForProjection(l.projection).getZForResolution(l.resolution,c.zDirection),d=this.renderedTiles,g=[],f=[];let p=!0;for(let i=d.length-1;i>=0;--i){const s=d[i];p=p&&!s.getReplayState(r).dirty;const o=s.executorGroups[U(r)].filter((t=>t.hasExecutors(a)));if(0===o.length)continue;const l=this.getTileRenderTransform(s,e),c=s.tileCoord[0];let m=!1;const _=o[0].getClipCoords(l);if(_){for(let e=0,i=g.length;e0&&c.length>0;)f=c.pop(),r=l.pop(),o=h.pop(),_=f.toString(),_ in u||(n.push(o[0],o[1]),u[_]=!0),p=c.pop(),s=l.pop(),a=h.pop(),m=(f+p)/2,d=t(m),g=e(d),di(g[0],g[1],o[0],o[1],a[0],a[1]){const e=t.get("graticule_label");return this.lonLabelStyleBase_.getText().setText(e),this.lonLabelStyleBase_},this.latLabelStyleBase_=new wm({text:void 0!==t.latLabelStyle?t.latLabelStyle.clone():new Em({font:"12px Calibri,sans-serif",textAlign:"right",fill:new sm({color:"rgba(0,0,0,1)"}),stroke:new fm({color:"rgba(255,255,255,1)",width:3})})}),this.latLabelStyle_=t=>{const e=t.get("graticule_label");return this.latLabelStyleBase_.getText().setText(e),this.latLabelStyleBase_},this.meridiansLabels_=[],this.parallelsLabels_=[],this.addEventListener(Xs,this.drawLabels_.bind(this))),this.intervals_=void 0!==t.intervals?t.intervals:Ly,this.setSource(new qc({loader:this.loaderFunction.bind(this),strategy:this.strategyFunction.bind(this),features:new Y,overlaps:!1,useSpatialIndex:!1,wrapX:t.wrapX})),this.featurePool_=[],this.lineStyle_=new wm({stroke:this.strokeStyle_}),this.loadedExtent_=null,this.renderedExtent_=null,this.renderedResolution_=null,this.setRenderOrder(null)}strategyFunction(t,e){let i=t.slice();return this.projection_&&this.getSource().getWrapX()&&ke(i,this.projection_),this.loadedExtent_&&(ue(this.loadedExtent_,i,e)?i=this.loadedExtent_.slice():this.getSource().removeLoadedExtent(this.loadedExtent_)),[i]}loaderFunction(t,e,i){this.loadedExtent_=t;const n=this.getSource(),r=Re(this.getExtent()||[-1/0,-1/0,1/0,1/0],t);if(this.renderedExtent_&&ce(this.renderedExtent_,r)&&this.renderedResolution_===e)return;if(this.renderedExtent_=r,this.renderedResolution_=e,Me(r))return;const s=Se(r),o=e*e/4;(!this.projection_||!ln(this.projection_,i))&&this.updateProjectionInfo_(i),this.createGraticule_(r,s,e,o);let a,l=this.meridians_.length+this.parallels_.length;for(this.meridiansLabels_&&(l+=this.meridians_.length),this.parallelsLabels_&&(l+=this.parallels_.length);l>this.featurePool_.length;)a=new At,this.featurePool_.push(a);const h=n.getFeaturesCollection();h.clear();let c,u,d=0;for(c=0,u=this.meridians_.length;cMath.PI/2}const d=ch(t);for(let t=a;t<=l;++t){let i,n,c,g,f=this.meridians_.length+this.parallels_.length;if(this.meridiansLabels_)for(n=0,c=this.meridiansLabels_.length;n=a?(t[0]=o[0],t[2]=o[2]):s=!0);const l=[ui(e[0],this.minX_,this.maxX_),ui(e[1],this.minY_,this.maxY_)],h=this.toLonLatTransform_(l);isNaN(h[1])&&(h[1]=Math.abs(this.maxLat_)>=Math.abs(this.minLat_)?this.maxLat_:this.minLat_);let c=ui(h[0],this.minLon_,this.maxLon_),u=ui(h[1],this.minLat_,this.maxLat_);const d=this.maxLines_;let g,f,p,m,_=t;s||(_=[ui(t[0],this.minX_,this.maxX_),ui(t[1],this.minY_,this.maxY_),ui(t[2],this.minX_,this.maxX_),ui(t[3],this.minY_,this.maxY_)]);const y=De(_,this.toLonLatTransform_,void 0,8);let x=y[3],v=y[2],w=y[1],S=y[0];if(s||(ee(_,this.bottomLeft_)&&(S=this.minLon_,w=this.minLat_),ee(_,this.bottomRight_)&&(v=this.maxLon_,w=this.minLat_),ee(_,this.topLeft_)&&(S=this.minLon_,x=this.maxLat_),ee(_,this.topRight_)&&(v=this.maxLon_,x=this.maxLat_),x=ui(x,u,this.maxLat_),v=ui(v,c,this.maxLon_),w=ui(w,this.minLat_,u),S=ui(S,this.minLon_,c)),c=Math.floor(c/r)*r,m=ui(c,this.minLon_,this.maxLon_),f=this.addMeridian_(m,w,x,n,t,0),g=0,s)for(;(m-=r)>=S&&g++n[s]&&(r=s,s=1);const o=Math.max(e[1],n[r]),a=Math.min(e[3],n[s]),l=ui(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,a),h=[n[r-1]+(n[s-1]-n[r-1])*(l-n[r])/(n[s]-n[r]),l],c=this.meridiansLabels_[i].geom;return c.setCoordinates(h),c}getMeridians(){return this.meridians_}getParallel_(t,e,i,n,r){const s=Fy(t,e,i,this.projection_,n);let o=this.parallels_[r];return o?(o.setFlatCoordinates("XY",s),o.changed()):o=new Fc(s,"XY"),o}getParallelPoint_(t,e,i){const n=t.getFlatCoordinates();let r=0,s=n.length-2;n[r]>n[s]&&(r=s,s=0);const o=Math.max(e[0],n[r]),a=Math.min(e[2],n[s]),l=ui(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,a),h=[l,n[r+1]+(n[s+1]-n[r+1])*(l-n[r])/(n[s]-n[r])],c=this.parallelsLabels_[i].geom;return c.setCoordinates(h),c}getParallels(){return this.parallels_}updateProjectionInfo_(t){const e=tn("EPSG:4326"),i=t.getWorldExtent();this.maxLat_=i[3],this.maxLon_=i[2],this.minLat_=i[1],this.minLon_=i[0];const n=cn(t,e);if(this.minLon_=Math.abs(this.minLat_)?this.maxLat_:this.minLat_),this.projection_=t}};const Ay="blur",Oy="gradient",Ny="radius",Dy=["#00f","#0ff","#0f0","#ff0","#f00"];var ky=class extends Qm{constructor(t){t=t||{};const e=Object.assign({},t);delete e.gradient,delete e.radius,delete e.blur,delete e.weight,super(e),this.gradient_=null,this.addChangeListener(Oy,this.handleGradientChanged_),this.setGradient(t.gradient?t.gradient:Dy),this.setBlur(void 0!==t.blur?t.blur:15),this.setRadius(void 0!==t.radius?t.radius:8);const i=t.weight?t.weight:"weight";this.weightFunction_="string"==typeof i?function(t){return t.get(i)}:i,this.setRenderOrder(null)}getBlur(){return this.get(Ay)}getGradient(){return this.get(Oy)}getRadius(){return this.get(Ny)}handleGradientChanged_(){this.gradient_=function(t){const e=1,i=256,n=mt(e,i),r=n.createLinearGradient(0,0,e,i),s=1/(t.length-1);for(let e=0,i=t.length;e{const e=this.weightFunction_(t);return void 0!==e?ui(e,0,1):1}}],uniforms:{u_size:()=>2*(this.get(Ny)+this.get(Ay)),u_blurSlope:()=>this.get(Ny)/Math.max(1,this.get(Ay))},hitDetectionEnabled:!0,vertexShader:t.getSymbolVertexShader(),fragmentShader:t.getSymbolFragmentShader(),postProcesses:[{fragmentShader:"\n precision mediump float;\n\n uniform sampler2D u_image;\n uniform sampler2D u_gradientTexture;\n uniform float u_opacity;\n\n varying vec2 v_texCoord;\n\n void main() {\n vec4 color = texture2D(u_image, v_texCoord);\n gl_FragColor.a = color.a * u_opacity;\n gl_FragColor.rgb = texture2D(u_gradientTexture, vec2(0.5, color.a)).rgb;\n gl_FragColor.rgb *= gl_FragColor.a;\n }",uniforms:{u_gradientTexture:()=>this.gradient_,u_opacity:()=>this.getOpacity()}}]})}renderDeclutter(){}};var Gy=class extends Qm{constructor(t){t=t||{};const e=Object.assign({},t);delete e.imageRatio,super(e),this.imageRatio_=void 0!==t.imageRatio?t.imageRatio:1}getImageRatio(){return this.imageRatio_}createRenderer(){return new xy(this)}};var jy=class extends Qm{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un;const i=t.renderMode||"hybrid";It("hybrid"==i||"vector"==i,"`renderMode` must be `'hybrid'` or `'vector'`"),this.renderMode_=i,this.setPreload(t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError),this.getBackground,this.setBackground}createRenderer(){return new Sy(this)}getFeatures(t){return super.getFeatures(t)}getRenderMode(){return this.renderMode_}getPreload(){return this.get(xd)}getUseInterimTilesOnError(){return this.get(vd)}setPreload(t){this.set(xd,t)}setUseInterimTilesOnError(t){this.set(vd,t)}};var By=class extends yo{constructor(t){super(Object.assign({},t)),this.parseResult_=Hp(t.style),this.styleVariables_=t.style.variables||{},this.hitDetectionDisabled_=!!t.disableHitDetection}createRenderer(){const t=Object.keys(this.parseResult_.attributes).map((t=>({name:t,...this.parseResult_.attributes[t]})));return new s_(this,{vertexShader:this.parseResult_.builder.getSymbolVertexShader(),fragmentShader:this.parseResult_.builder.getSymbolFragmentShader(),hitDetectionEnabled:!this.hitDetectionDisabled_,uniforms:this.parseResult_.uniforms,attributes:t})}updateStyleVariables(t){Object.assign(this.styleVariables_,t),this.changed()}};function Uy(t,e){const i=`\n attribute vec2 ${_p.TEXTURE_COORD};\n uniform mat4 ${mp.TILE_TRANSFORM};\n uniform float ${mp.TEXTURE_PIXEL_WIDTH};\n uniform float ${mp.TEXTURE_PIXEL_HEIGHT};\n uniform float ${mp.TEXTURE_RESOLUTION};\n uniform float ${mp.TEXTURE_ORIGIN_X};\n uniform float ${mp.TEXTURE_ORIGIN_Y};\n uniform float ${mp.DEPTH};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${_p.TEXTURE_COORD};\n v_mapCoord = vec2(\n ${mp.TEXTURE_ORIGIN_X} + ${mp.TEXTURE_RESOLUTION} * ${mp.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\n ${mp.TEXTURE_ORIGIN_Y} - ${mp.TEXTURE_RESOLUTION} * ${mp.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\n );\n gl_Position = ${mp.TILE_TRANSFORM} * vec4(${_p.TEXTURE_COORD}, ${mp.DEPTH}, 1.0);\n }\n `,n={inFragmentShader:!1,variables:{},properties:{},functions:{},bandCount:0,style:{},inFragmentShader:!0,bandCount:e,style:t},r=[];if(void 0!==t.color){const e=zp(n,t.color,Of);r.push(`color = ${e};`)}if(void 0!==t.contrast){const e=zp(n,t.contrast,Mf);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb - (${e} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.exposure){const e=zp(n,t.exposure,Mf);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.saturation){const e=zp(n,t.saturation,Mf);r.push(`\n float saturation = ${e} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `)}if(void 0!==t.gamma){const e=zp(n,t.gamma,Mf);r.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${e}));`)}if(void 0!==t.brightness){const e=zp(n,t.brightness,Mf);r.push(`color.rgb = clamp(color.rgb + ${e}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}const s={},o=Object.keys(n.variables).length;if(o>1&&!t.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let e=0;e ${mp.RENDER_EXTENT}[2] ||\n v_mapCoord[1] > ${mp.RENDER_EXTENT}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${mp.TILE_TEXTURE_ARRAY}[0], v_textureCoord);\n\n ${r.join("\n")}\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${mp.TRANSITION_ALPHA};\n }`,uniforms:s,paletteTextures:n.paletteTextures}}class zy extends wd{constructor(t){const e=(t=t?Object.assign({},t):{}).style||{};delete t.style;const i=t.cacheSize;delete t.cacheSize,super(t),this.sources_=t.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=e,this.cacheSize_=i,this.styleVariables_=this.style_.variables||{},this.addChangeListener(js,this.handleSourceUpdate_)}getSources(t,e){const i=this.getSource();return this.sources_?"function"==typeof this.sources_?this.sources_(t,e):this.sources_:i?[i]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){const t=this.getRenderSource();return t?t.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache(),this.getSource()&&this.setStyle(this.style_)}getSourceBandCount_(){const t=Number.MAX_SAFE_INTEGER,e=this.getSources([-t,-t,t,t],t);return e&&e.length&&"bandCount"in e[0]?e[0].bandCount:4}createRenderer(){const t=Uy(this.style_,this.getSourceBandCount_());return new xp(this,{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,cacheSize:this.cacheSize_,paletteTextures:t.paletteTextures})}renderSources(t,e){const i=this.getRenderer();let n;for(let r=0,s=e.length;r{"ready"==e.getState()&&(e.removeEventListener("change",t),this.changed())};e.addEventListener("change",t)}r=r&&"ready"==i}const s=this.renderSources(t,n);if(this.getRenderer().renderComplete&&r)return this.renderedResolution_=i.resolution,s;if(this.renderedResolution_>.5*i.resolution){const e=this.getSources(t.extent,this.renderedResolution_).filter((t=>!n.includes(t)));if(e.length>0)return this.renderSources(t,e)}return s}setStyle(t){this.styleVariables_=t.variables||{},this.style_=t;const e=Uy(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,paletteTextures:e.paletteTextures}),this.changed()}updateStyleVariables(t){Object.assign(this.styleVariables_,t),this.changed()}}zy.prototype.dispose;var Xy=zy;var Vy=class extends Ma{constructor(t){const e=t||{};super(e),e.stopDown&&(this.stopDown=e.stopDown),this.scaleDeltaByPixel_=e.delta?e.delta:.01,this.duration_=void 0!==e.duration?e.duration:250,this.handlingDownUpSequence_=!1,this.handlingDoubleDownSequence_=!1,this.doubleTapTimeoutId_=void 0,this.trackedPointers_={},this.targetPointers=[]}handleEvent(t){if(!t.originalEvent)return!0;let e=!1;if(this.updateTrackedPointers_(t),this.handlingDownUpSequence_){if(t.type==sa.POINTERDRAG)this.handleDragEvent(t),t.originalEvent.preventDefault();else if(t.type==sa.POINTERUP){const e=this.handleUpEvent(t);this.handlingDownUpSequence_=e}}else if(t.type==sa.POINTERDOWN)if(this.handlingDoubleDownSequence_){this.handlingDoubleDownSequence_=!1;const i=this.handleDownEvent(t);this.handlingDownUpSequence_=i,e=this.stopDown(i)}else e=this.stopDown(!1),this.waitForDblTap_();return!e}handleDragEvent(t){let e=1;const i=this.targetPointers[0],n=this.down_.originalEvent,r=i.clientY-n.clientY;void 0!==this.lastDistance_&&(e=1-(this.lastDistance_-r)*this.scaleDeltaByPixel_),this.lastDistance_=r,1!=e&&(this.lastScaleDelta_=e);const s=t.map,o=s.getView();s.render(),o.adjustResolutionInternal(e)}handleDownEvent(t){if(1==this.targetPointers.length){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.down_=t,this.handlingDownUpSequence_||e.getView().beginInteraction(),!0}return!1}handleUpEvent(t){if(0==this.targetPointers.length){const e=t.map.getView(),i=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,i),this.handlingDownUpSequence_=!1,this.handlingDoubleDownSequence_=!1,!1}return!0}stopDown(t){return t}updateTrackedPointers_(t){if(function(t){const e=t.type;return e===sa.POINTERDOWN||e===sa.POINTERDRAG||e===sa.POINTERUP}(t)){const e=t.originalEvent,i=e.pointerId.toString();t.type==sa.POINTERUP?delete this.trackedPointers_[i]:(t.type==sa.POINTERDOWN||i in this.trackedPointers_)&&(this.trackedPointers_[i]=e),this.targetPointers=Object.values(this.trackedPointers_)}}waitForDblTap_(){void 0!==this.doubleTapTimeoutId_?(clearTimeout(this.doubleTapTimeoutId_),this.doubleTapTimeoutId_=void 0):(this.handlingDoubleDownSequence_=!0,this.doubleTapTimeoutId_=setTimeout(this.endInteraction_.bind(this),250))}endInteraction_(){this.handlingDoubleDownSequence_=!1,this.doubleTapTimeoutId_=void 0}};const Wy="addfeatures";class Zy extends e{constructor(t,e,i,n){super(t),this.features=i,this.file=e,this.projection=n}}var $y=class extends Ma{constructor(t){t=t||{},super({handleEvent:d}),this.on,this.once,this.un,this.readAsBuffer_=!1,this.formats_=[];const e=t.formatConstructors?t.formatConstructors:[];for(let t=0,i=e.length;t0){this.source_&&(this.source_.clear(),this.source_.addFeatures(l)),this.dispatchEvent(new Zy(Wy,t,l,s));break}}}registerListeners_(){const t=this.getMap();if(t){const e=this.target?this.target:t.getViewport();this.dropListenKeys_=[A(e,R,this.handleDrop,this),A(e,C,this.handleStop,this),A(e,b,this.handleStop,this),A(e,R,this.handleStop,this)]}}setActive(t){!this.getActive()&&t&&this.registerListeners_(),this.getActive()&&!t&&this.unregisterListeners_(),super.setActive(t)}setMap(t){this.unregisterListeners_(),super.setMap(t),this.getActive()&&this.registerListeners_()}tryReadFeatures_(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}}unregisterListeners_(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(N),this.dropListenKeys_=null)}handleDrop(t){const e=t.dataTransfer.files;for(let t=0,i=e.length;t1?1:-1;return e.endInteraction(this.duration_,i),this.lastScaleDelta_=0,!1}handleDownEvent(t){return!!qa(t)&&(!!this.condition_(t)&&(t.map.getView().beginInteraction(),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))}};const qy="drawstart",Ky="drawend",Hy="drawabort";class Jy extends e{constructor(t,e){super(t),this.feature=e}}function Qy(t,e){return gi(t[0],t[1],e[0],e[1])}function tx(t,e){const i=t.length;return e<0?t[e+i]:e>=i?t[e-i]:t[e]}function ex(t,e,i){let n,r;eo){return Qy(ax(t,n),ax(t,r))}let a=0;if(n=i?n-=i:n<0&&(n+=i);let s=n+1;s>=i&&(s-=i);const o=t[n],a=o[0],l=o[1],h=t[s];return[a+(h[0]-a)*r,l+(h[1]-l)*r]}function lx(){const t=xm();return function(e,i){return t[e.getGeometry().getType()]}}var hx=class extends Na{constructor(t){const e=t;e.stopDown||(e.stopDown=g),super(e),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=t.source?t.source:null,this.features_=t.features?t.features:null,this.snapTolerance_=t.snapTolerance?t.snapTolerance:12,this.type_=t.type,this.mode_=function(t){switch(t){case"Point":case"MultiPoint":return"Point";case"LineString":case"MultiLineString":return"LineString";case"Polygon":case"MultiPolygon":return"Polygon";case"Circle":return"Circle";default:throw new Error("Invalid type: "+t)}}(this.type_),this.stopClick_=!!t.stopClick,this.minPoints_=t.minPoints?t.minPoints:"Polygon"===this.mode_?3:2,this.maxPoints_="Circle"===this.mode_?2:t.maxPoints?t.maxPoints:1/0,this.finishCondition_=t.finishCondition?t.finishCondition:d,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY";let i=t.geometryFunction;if(!i){const t=this.mode_;if("Circle"===t)i=function(t,e,i){const n=e||new vc([NaN,NaN]),r=_n(t[0],i),s=Ai(r,_n(t[t.length-1],i));n.setCenterAndRadius(r,Math.sqrt(s),this.geometryLayout_);const o=pn();return o&&n.transform(i,o),n};else{let e;"Point"===t?e=ar:"LineString"===t?e=Fc:"Polygon"===t&&(e=Pr),i=function(i,n,r){return n?"Polygon"===t?i[0].length?n.setCoordinates([i[0].concat([i[0][0]])],this.geometryLayout_):n.setCoordinates([],this.geometryLayout_):n.setCoordinates(i,this.geometryLayout_):n=new e(i,this.geometryLayout_),n}}}this.geometryFunction_=i,this.dragVertexDelay_=void 0!==t.dragVertexDelay?t.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=t.clickTolerance?t.clickTolerance*t.clickTolerance:36,this.overlay_=new by({source:new qc({useSpatialIndex:!1,wrapX:!!t.wrapX&&t.wrapX}),style:t.style?t.style:lx(),updateWhileInteracting:!0}),this.geometryName_=t.geometryName,this.condition_=t.condition?t.condition:Wa,this.freehandCondition_,t.freehand?this.freehandCondition_=Ua:this.freehandCondition_=t.freehandCondition?t.freehandCondition:$a,this.traceCondition_,this.setTrace(t.trace||!1),this.traceState_={active:!1},this.traceSource_=t.traceSource||t.source||null,this.addChangeListener(Fa,this.updateState_)}setTrace(t){let e;e=t?!0===t?Ua:t:Xa,this.traceCondition_=e}setMap(t){super.setMap(t),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(t){t.originalEvent.type===S&&t.originalEvent.preventDefault(),this.freehand_="Point"!==this.mode_&&this.freehandCondition_(t);let e=t.type===sa.POINTERMOVE,i=!0;if(!this.freehand_&&this.lastDragTime_&&t.type===sa.POINTERDRAG){Date.now()-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=t.pixel,this.shouldHandle_=!this.freehand_,e=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)}return this.freehand_&&t.type===sa.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(t.coordinate),i=!1):this.freehand_&&t.type===sa.POINTERDOWN?i=!1:e&&this.getPointerCount()<2?(i=t.type===sa.POINTERMOVE,i&&this.freehand_?(this.handlePointerMove_(t),this.shouldHandle_&&t.originalEvent.preventDefault()):("mouse"===t.originalEvent.pointerType||t.type===sa.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(t)):t.type===sa.DBLCLICK&&(i=!1),super.handleEvent(t)&&i}handleDownEvent(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t.coordinate),!0):this.condition_(t)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout((()=>{this.handlePointerMove_(new ra(sa.POINTERMOVE,t.map,t.originalEvent,!1,t.frameState))}),this.dragVertexDelay_),this.downPx_=t.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(t){if(!this.traceSource_||!this.traceCondition_(t))return;if(this.traceState_.active)return void this.deactivateTrace_();const e=this.getMap(),i=Ht([e.getCoordinateFromPixel([t.pixel[0]-this.snapTolerance_,t.pixel[1]+this.snapTolerance_]),e.getCoordinateFromPixel([t.pixel[0]+this.snapTolerance_,t.pixel[1]-this.snapTolerance_])]),n=this.traceSource_.getFeaturesInExtent(i);if(0===n.length)return;const r=function(t,e){const i=[];for(let n=0;nt.endIndex||!i&&et.endIndex)&&this.removeTracedCoordinates_(e,t.endIndex):(this.removeTracedCoordinates_(t.startIndex,t.endIndex),this.addTracedCoordinates_(t,t.startIndex,e))}removeTracedCoordinates_(t,e){if(t===e)return;let i=0;if(t0&&this.removeLastPoints_(i)}addTracedCoordinates_(t,e,i){if(e===i)return;const n=[];if(e=s;--e)n.push(tx(t.coordinates,e))}n.length&&this.appendCoordinates(n)}updateTrace_(t){const e=this.traceState_;if(!e.active)return;if(-1===e.targetIndex&&Oi(e.startPx,t.pixel)i.startIndex?hi.startIndex&&(h-=n.length)),l=h,a=t)}const h=e.targets[a];let c=h.ring;if(e.targetIndex===a&&c){const t=ax(h.coordinates,l);Oi(i.getPixelFromCoordinate(t),e.startPx)>n&&(c=!1)}if(c){const t=h.coordinates,e=t.length,i=h.startIndex,n=l;if(ithis.squaredClickTolerance_:s<=this.squaredClickTolerance_,!this.shouldHandle_)return}this.finishCoordinate_?(this.updateTrace_(t),this.modifyDrawing_(t.coordinate)):this.createOrUpdateSketchPoint_(t.coordinate.slice())}atFinish_(t,e){let i=!1;if(this.sketchFeature_){let n=!1,r=[this.finishCoordinate_];const s=this.mode_;if("Point"===s)i=!0;else if("Circle"===s)i=2===this.sketchCoords_.length;else if("LineString"===s)n=!e&&this.sketchCoords_.length>this.minPoints_;else if("Polygon"===s){const t=this.sketchCoords_;n=t[0].length>this.minPoints_,r=[t[0][0],t[0][t[0].length-2]],r=e?[t[0][0]]:[t[0][0],t[0][t[0].length-2]]}if(n){const e=this.getMap();for(let n=0,s=r.length;n=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),this.geometryFunction_(r,e,i)):"Polygon"===s&&(r=this.sketchCoords_[0],r.length>=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),n&&(this.finishCoordinate_=r[0]),this.geometryFunction_(this.sketchCoords_,e,i)),this.createOrUpdateSketchPoint_(t.slice()),this.updateSketchFeatures_(),n&&this.finishDrawing()}removeLastPoints_(t){if(!this.sketchFeature_)return;const e=this.sketchFeature_.getGeometry(),i=this.getMap().getView().getProjection(),n=this.mode_;for(let r=0;r=2){this.finishCoordinate_=t[t.length-2].slice();const e=this.finishCoordinate_.slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}this.geometryFunction_(t,e,i),"Polygon"===e.getType()&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(e)}else if("Polygon"===n){t=this.sketchCoords_[0],t.splice(-2,1);const n=this.sketchLine_.getGeometry();if(t.length>=2){const e=t[t.length-2].slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}n.setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e,i)}if(1===t.length){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){const t=this.abortDrawing_();if(!t)return;let e=this.sketchCoords_;const i=t.getGeometry(),n=this.getMap().getView().getProjection();"LineString"===this.mode_?(e.pop(),this.geometryFunction_(e,i,n)):"Polygon"===this.mode_&&(e[0].pop(),this.geometryFunction_(e,i,n),e=i.getCoordinates()),"MultiPoint"===this.type_?t.setGeometry(new Ac([e])):"MultiLineString"===this.type_?t.setGeometry(new Lc([e])):"MultiPolygon"===this.type_&&t.setGeometry(new Dc([e])),this.dispatchEvent(new Jy(Ky,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}abortDrawing_(){this.finishCoordinate_=null;const t=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),t}abortDrawing(){const t=this.abortDrawing_();t&&this.dispatchEvent(new Jy(Hy,t))}appendCoordinates(t){const e=this.mode_,i=!this.sketchFeature_;let n;if(i&&this.startDrawing_(t[0]),"LineString"===e||"Circle"===e)n=this.sketchCoords_;else{if("Polygon"!==e)return;n=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[]}i&&n.shift(),n.pop();for(let e=0;er?o[1]:o[0]),a}}return null}handlePointerMove_(t){const e=t.pixel,i=t.map;let n=this.snapToVertex_(e,i);n||(n=i.getCoordinateFromPixelInternal(e)),this.createOrUpdatePointerFeature_(n)}createOrUpdateExtentFeature_(t){let e=this.extentFeature_;return e?t?e.setGeometry(Ir(t)):e.setGeometry(void 0):(e=new At(t?Ir(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e}createOrUpdatePointerFeature_(t){let e=this.vertexFeature_;if(e){e.getGeometry().setCoordinates(t)}else e=new At(new ar(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e);return e}handleEvent(t){return!t.originalEvent||!this.condition_(t)||(t.type!=sa.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(t),super.handleEvent(t),!1)}handleDownEvent(t){const e=t.pixel,i=t.map,n=this.getExtentInternal();let r=this.snapToVertex_(e,i);const s=function(t){let e=null,i=null;return t[0]==n[0]?e=n[2]:t[0]==n[2]&&(e=n[0]),t[1]==n[1]?i=n[3]:t[1]==n[3]&&(i=n[1]),null!==e&&null!==i?[e,i]:null};if(r&&n){const t=r[0]==n[0]||r[0]==n[2]?r[0]:null,e=r[1]==n[1]||r[1]==n[3]?r[1]:null;null!==t&&null!==e?this.pointerHandler_=fx(s(r)):null!==t?this.pointerHandler_=px(s([t,n[1]]),s([t,n[3]])):null!==e&&(this.pointerHandler_=px(s([n[0],e]),s([n[2],e])))}else r=i.getCoordinateFromPixelInternal(e),this.setExtent([r[0],r[1],r[0],r[1]]),this.pointerHandler_=fx(r);return!0}handleDragEvent(t){if(this.pointerHandler_){const e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}}handleUpEvent(t){this.pointerHandler_=null;const e=this.getExtentInternal();return e&&0!==xe(e)||this.setExtent(null),!1}setMap(t){this.extentOverlay_.setMap(t),this.vertexOverlay_.setMap(t),super.setMap(t)}getExtent(){return yn(this.getExtentInternal(),this.getMap().getView().getProjection())}getExtentInternal(){return this.extent_}setExtent(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new ux(this.extent_))}};function _x(t){return parseFloat(t)}function yx(t){return function(t){return xi(t,5)}(t).toString()}function xx(t,e){return!isNaN(t)&&t!==_x(yx(e))}var vx=class extends Ma{constructor(t){let e;super(),e=!0===(t=Object.assign({animate:!0,params:["x","y","z","r","l"],replace:!1,prefix:""},t||{})).animate?{duration:250}:t.animate?t.animate:null,this.animationOptions_=e,this.params_=t.params.reduce(((t,e)=>(t[e]=!0,t)),{}),this.replace_=t.replace,this.prefix_=t.prefix,this.listenerKeys_=[],this.initial_=!0,this.updateState_=this.updateState_.bind(this),this.trackedCallbacks_={},this.trackedValues_={}}getParamName_(t){return this.prefix_?this.prefix_+t:t}get_(t,e){return t.get(this.getParamName_(e))}set_(t,e,i){e in this.params_&&t.set(this.getParamName_(e),i)}delete_(t,e){e in this.params_&&t.delete(this.getParamName_(e))}setMap(t){const e=this.getMap();super.setMap(t),t!==e&&(e&&this.unregisterListeners_(e),t&&(this.initial_=!0,this.updateState_(),this.registerListeners_(t)))}registerListeners_(t){this.listenerKeys_.push(A(t,ga,this.updateUrl_,this),A(t.getLayerGroup(),v,this.updateUrl_,this),A(t,"change:layergroup",this.handleChangeLayerGroup_,this)),this.replace_||addEventListener("popstate",this.updateState_)}unregisterListeners_(t){for(let t=0,e=this.listenerKeys_.length;t=0;--t){const n=i[t];for(let t=this.dragSegments_.length-1;t>=0;--t)this.dragSegments_[t][0]===n&&this.dragSegments_.splice(t,1);e.remove(n)}}setActive(t){this.vertexFeature_&&!t&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),super.setActive(t)}setMap(t){this.overlay_.setMap(t),super.setMap(t)}getOverlay(){return this.overlay_}handleSourceAdd_(t){t.feature&&this.features_.push(t.feature)}handleSourceRemove_(t){t.feature&&this.features_.remove(t.feature)}handleFeatureAdd_(t){this.addFeature_(t.element)}handleFeatureChange_(t){if(!this.changingFeature_){const e=t.target;this.removeFeature_(e),this.addFeature_(e)}}handleFeatureRemove_(t){this.removeFeature_(t.element)}writePointGeometry_(t,e){const i=e.getCoordinates(),n={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),n)}writeMultiPointGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n=0;--t)this.insertVertex_(r[t],s)}return!!this.vertexFeature_}handleUpEvent(t){for(let e=this.dragSegments_.length-1;e>=0;--e){const i=this.dragSegments_[e][0],n=i.geometry;if("Circle"===n.getType()){const e=n.getCenter(),r=i.featureSegments[0],s=i.featureSegments[1];r.segment[0]=e,r.segment[1]=e,s.segment[0]=e,s.segment[1]=e,this.rBush_.update(le(e),r);let o=n;const a=pn();if(a){const e=t.map.getView().getProjection();o=o.clone().transform(a,e),o=Lr(o).transform(e,a)}this.rBush_.update(o.getExtent(),s)}else this.rBush_.update(Ht(i.segment),i)}return this.featuresBeingModified_&&(this.dispatchEvent(new Cx(Tx,this.featuresBeingModified_,t)),this.featuresBeingModified_=null),!1}handlePointerMove_(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map,t.coordinate)}handlePointerAtPixel_(t,e,i){const n=i||e.getCoordinateFromPixel(t),r=e.getView().getProjection(),s=function(t,e){return Rx(n,t,r)-Rx(n,e,r)};let o,a;if(this.hitDetection_){const i="object"==typeof this.hitDetection_?t=>t===this.hitDetection_:void 0;e.forEachFeatureAtPixel(t,((t,e,i)=>{i&&"Point"===i.getType()&&(i=new ar(mn(i.getCoordinates(),r)));const n=i||t.getGeometry();if(t instanceof At&&this.features_.getArray().includes(t)){a=n;const e=t.getGeometry().getFlatCoordinates().slice(0,2);o=[{feature:t,geometry:a,segment:[e,e]}]}return!0}),{layerFilter:i})}if(!o){const t=yn(Jt(xn(le(n,wx),r),e.getView().getResolution()*this.pixelTolerance_,wx),r);o=this.rBush_.getInExtent(t)}if(o&&o.length>0){const i=o.sort(s)[0],l=i.segment;let h=Px(n,i,r);const c=e.getPixelFromCoordinate(h);let u=Oi(t,c);if(a||u<=this.pixelTolerance_){const t={};if(t[U(l)]=!0,this.snapToPointer_||(this.delta_[0]=h[0]-n[0],this.delta_[1]=h[1]-n[1]),"Circle"===i.geometry.getType()&&1===i.index)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);else{const n=e.getPixelFromCoordinate(l[0]),r=e.getPixelFromCoordinate(l[1]),s=Ai(c,n),a=Ai(c,r);u=Math.sqrt(Math.min(s,a)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=s>a?l[1]:l[0]),this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);const d={};d[U(i.geometry)]=!0;for(let e=1,i=o.length;e=0;--o)r=t[o],u=r[0],d=U(u.feature),u.depth&&(d+="-"+u.depth.join("-")),d in e||(e[d]={}),0===r[1]?(e[d].right=u,e[d].index=u.index):1==r[1]&&(e[d].left=u,e[d].index=u.index+1);for(d in e){switch(c=e[d].right,l=e[d].left,a=e[d].index,h=a-1,u=void 0!==l?l:c,h<0&&(h=0),s=u.geometry,n=s.getCoordinates(),i=n,g=!1,s.getType()){case"MultiLineString":n[u.depth[0]].length>2&&(n[u.depth[0]].splice(a,1),g=!0);break;case"LineString":n.length>2&&(n.splice(a,1),g=!0);break;case"MultiPolygon":i=i[u.depth[1]];case"Polygon":i=i[u.depth[0]],i.length>4&&(a==i.length-1&&(a=0),i.splice(a,1),g=!0,0===a&&(i.pop(),i.push(i[0]),h=i.length-1))}if(g){this.setGeometryCoordinates_(s,n);const e=[];if(void 0!==l&&(this.rBush_.remove(l),e.push(l.segment[0])),void 0!==c&&(this.rBush_.remove(c),e.push(c.segment[1])),void 0!==l&&void 0!==c){const t={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:e};this.rBush_.insert(Ht(t.segment),t)}this.updateSegmentIndices_(s,a,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.length=0}}return g}setGeometryCoordinates_(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1}updateSegmentIndices_(t,e,i,n){this.rBush_.forEachInExtent(t.getExtent(),(function(r){r.geometry===t&&(void 0===i||void 0===r.depth||c(r.depth,i))&&r.index>e&&(r.index+=n)}))}};const Lx="select";class Mx extends e{constructor(t,e,i,n){super(t),this.selected=e,this.deselected=i,this.mapBrowserEvent=n}}const Ax={};class Ox extends Ma{constructor(t){let e;if(super(),this.on,this.once,this.un,t=t||{},this.boundAddFeature_=this.addFeature_.bind(this),this.boundRemoveFeature_=this.removeFeature_.bind(this),this.condition_=t.condition?t.condition:Va,this.addCondition_=t.addCondition?t.addCondition:Xa,this.removeCondition_=t.removeCondition?t.removeCondition:Xa,this.toggleCondition_=t.toggleCondition?t.toggleCondition:$a,this.multi_=!!t.multi&&t.multi,this.filter_=t.filter?t.filter:d,this.hitTolerance_=t.hitTolerance?t.hitTolerance:0,this.style_=void 0!==t.style?t.style:function(){const t=xm();return h(t.Polygon,t.LineString),h(t.GeometryCollection,t.LineString),function(e){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),this.features_=t.features||new Y,t.layers)if("function"==typeof t.layers)e=t.layers;else{const i=t.layers;e=function(t){return i.includes(t)}}else e=d;this.layerFilter_=e,this.featureLayerAssociation_={}}addFeatureLayerAssociation_(t,e){this.featureLayerAssociation_[U(t)]=e}getFeatures(){return this.features_}getHitTolerance(){return this.hitTolerance_}getLayer(t){return this.featureLayerAssociation_[U(t)]}setHitTolerance(t){this.hitTolerance_=t}setMap(t){this.getMap()&&this.style_&&this.features_.forEach(this.restorePreviousStyle_.bind(this)),super.setMap(t),t?(this.features_.addEventListener(V,this.boundAddFeature_),this.features_.addEventListener(W,this.boundRemoveFeature_),this.style_&&this.features_.forEach(this.applySelectedStyle_.bind(this))):(this.features_.removeEventListener(V,this.boundAddFeature_),this.features_.removeEventListener(W,this.boundRemoveFeature_))}addFeature_(t){const e=t.element;if(this.style_&&this.applySelectedStyle_(e),!this.getLayer(e)){const t=this.getMap().getAllLayers().find((function(t){if(t instanceof by&&t.getSource()&&t.getSource().hasFeature(e))return t}));t&&this.addFeatureLayerAssociation_(e,t)}}removeFeature_(t){this.style_&&this.restorePreviousStyle_(t.element)}getStyle(){return this.style_}applySelectedStyle_(t){const e=U(t);e in Ax||(Ax[e]=t.getStyle()),t.setStyle(this.style_)}restorePreviousStyle_(t){const e=this.getMap().getInteractions().getArray();for(let i=e.length-1;i>=0;--i){const n=e[i];if(n!==this&&n instanceof Ox&&n.getStyle()&&-1!==n.getFeatures().getArray().lastIndexOf(t))return void t.setStyle(n.getStyle())}const i=U(t);t.setStyle(Ax[i]),delete Ax[i]}removeFeatureLayerAssociation_(t){delete this.featureLayerAssociation_[U(t)]}handleEvent(t){if(!this.condition_(t))return!0;const e=this.addCondition_(t),i=this.removeCondition_(t),n=this.toggleCondition_(t),r=!e&&!i&&!n,s=t.map,o=this.getFeatures(),a=[],l=[];if(r){_(this.featureLayerAssociation_),s.forEachFeatureAtPixel(t.pixel,((t,e)=>{if(t instanceof At&&this.filter_(t,e))return this.addFeatureLayerAssociation_(t,e),l.push(t),!this.multi_}),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=o.getLength()-1;t>=0;--t){const e=o.item(t),i=l.indexOf(e);i>-1?l.splice(i,1):(o.remove(e),a.push(e))}0!==l.length&&o.extend(l)}else{s.forEachFeatureAtPixel(t.pixel,((t,r)=>{if(t instanceof At&&this.filter_(t,r))return!e&&!n||o.getArray().includes(t)?(i||n)&&o.getArray().includes(t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(this.addFeatureLayerAssociation_(t,r),l.push(t)),!this.multi_}),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=a.length-1;t>=0;--t)o.remove(a[t]);o.extend(l)}return(l.length>0||a.length>0)&&this.dispatchEvent(new Mx(Lx,l,a,t)),!0}}var Nx=Ox;const Dx="snap";class kx extends e{constructor(t,e){super(t),this.vertex=e.vertex,this.vertexPixel=e.vertexPixel,this.feature=e.feature,this.segment=e.segment}}function Gx(t){return t.feature?t.feature:t.element?t.element:null}const jx=[];var Bx=class extends Na{constructor(t){const e=t=t||{};e.handleDownEvent||(e.handleDownEvent=d),e.stopDown||(e.stopDown=g),super(e),this.on,this.once,this.un,this.source_=t.source?t.source:null,this.vertex_=void 0===t.vertex||t.vertex,this.edge_=void 0===t.edge||t.edge,this.features_=t.features?t.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.rBush_=new yc,this.GEOMETRY_SEGMENTERS_={Point:this.segmentPointGeometry_.bind(this),LineString:this.segmentLineStringGeometry_.bind(this),LinearRing:this.segmentLineStringGeometry_.bind(this),Polygon:this.segmentPolygonGeometry_.bind(this),MultiPoint:this.segmentMultiPointGeometry_.bind(this),MultiLineString:this.segmentMultiLineStringGeometry_.bind(this),MultiPolygon:this.segmentMultiPolygonGeometry_.bind(this),GeometryCollection:this.segmentGeometryCollectionGeometry_.bind(this),Circle:this.segmentCircleGeometry_.bind(this)}}addFeature(t,e){e=void 0===e||e;const i=U(t),n=t.getGeometry();if(n){const e=this.GEOMETRY_SEGMENTERS_[n.getType()];if(e){this.indexedFeaturesExtents_[i]=n.getExtent([1/0,1/0,-1/0,-1/0]);const r=[];if(e(r,n),1===r.length)this.rBush_.insert(Ht(r[0]),{feature:t,segment:r[0]});else if(r.length>1){const e=r.map((t=>Ht(t))),i=r.map((e=>({feature:t,segment:e})));this.rBush_.load(e,i)}}}e&&(this.featureChangeListenerKeys_[i]=A(t,v,this.handleFeatureChange_,this))}getFeatures_(){let t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t}handleEvent(t){const e=this.snapTo(t.pixel,t.coordinate,t.map);return e&&(t.coordinate=e.vertex.slice(0,2),t.pixel=e.vertexPixel,this.dispatchEvent(new kx(Dx,{vertex:t.coordinate,vertexPixel:t.pixel,feature:e.feature,segment:e.segment}))),super.handleEvent(t)}handleFeatureAdd_(t){const e=Gx(t);e&&this.addFeature(e)}handleFeatureRemove_(t){const e=Gx(t);e&&this.removeFeature(e)}handleFeatureChange_(t){const e=t.target;if(this.handlingDownUpSequence){const t=U(e);t in this.pendingFeatures_||(this.pendingFeatures_[t]=e)}else this.updateFeature_(e)}handleUpEvent(t){const e=Object.values(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1}removeFeature(t,e){const i=void 0===e||e,n=U(t),r=this.indexedFeaturesExtents_[n];if(r){const e=this.rBush_,i=[];e.forEachInExtent(r,(function(e){t===e.feature&&i.push(e)}));for(let t=i.length-1;t>=0;--t)e.remove(i[t])}i&&(N(this.featureChangeListenerKeys_[n]),delete this.featureChangeListenerKeys_[n])}setMap(t){const e=this.getMap(),i=this.featuresListenerKeys_,n=this.getFeatures_();e&&(i.forEach(N),i.length=0,this.rBush_.clear(),Object.values(this.featureChangeListenerKeys_).forEach(N),this.featureChangeListenerKeys_={}),super.setMap(t),t&&(this.features_?i.push(A(this.features_,V,this.handleFeatureAdd_,this),A(this.features_,W,this.handleFeatureRemove_,this)):this.source_&&i.push(A(this.source_,Uc,this.handleFeatureAdd_,this),A(this.source_,Vc,this.handleFeatureRemove_,this)),n.forEach((t=>this.addFeature(t))))}snapTo(t,e,i){const n=i.getView().getProjection(),r=_n(e,n),s=yn(Jt(Ht([r]),i.getView().getResolution()*this.pixelTolerance_),n),o=this.rBush_.getInExtent(s),a=o.length;if(0===a)return null;let l,h,c=1/0,u=null;const d=this.pixelTolerance_*this.pixelTolerance_,g=()=>{if(l){const e=i.getPixelFromCoordinate(l);if(Ai(t,e)<=d)return{vertex:l,vertexPixel:[Math.round(e[0]),Math.round(e[1])],feature:h,segment:u}}return null};if(this.vertex_){for(let t=0;t{const i=_n(t,n),s=Ai(r,i);s{t.push([e])}))}segmentMultiPolygonGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length;e{if(t instanceof At&&this.filter_(t,e)&&(!this.features_||this.features_.getArray().includes(t)))return t}),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_})}getHitTolerance(){return this.hitTolerance_}setHitTolerance(t){this.hitTolerance_=t}setMap(t){const e=this.getMap();super.setMap(t),this.updateState_(e)}handleActiveChanged_(){this.updateState_(null)}updateState_(t){let e=this.getMap();const i=this.getActive();if((!e||!i)&&(e=e||t,e)){e.getViewport().classList.remove("ol-grab","ol-grabbing")}}};function Zx(t,e,i,n,r,s){void 0!==r?s=void 0!==s?s:0:(r=[],s=0);let o=e;for(;oHx({...t,geometry:e}))).flat();const n="MultiPolygon"===i.type?"Polygon":i.type;if("GeometryCollection"===n||"Circle"===n)throw new Error("Unsupported geometry type: "+n);const r=i.layout.length;return Yx(new Bc(n,"Polygon"===n?function(t,e,i){return Array.isArray(e[0])?(Er(t,0,e,i)||Cr(t=t.slice(),0,e,i),t):(Sr(t,0,e,i)||Tr(t=t.slice(),0,e,i),t)}(i.flatCoordinates,i.ends,r):i.flatCoordinates,i.ends?.flat(),r,t.properties||{},t.id).enableSimplifyTransformed(),!1,e)}function Jx(t,e){if(!t)return null;if(Array.isArray(t)){const i=t.map((t=>Jx(t,e)));return new Ec(i)}return Yx(new(0,Kx[t.type])(t.flatCoordinates,t.layout,t.ends),!1,e)}function Qx(t){if("string"==typeof t){const e=JSON.parse(t);return e||null}return null!==t?t:null}var tv=class extends $x{constructor(){super()}getType(){return"json"}readFeature(t,e){return this.readFeatureFromObject(Qx(t),this.getReadOptions(t,e))}readFeatures(t,e){return this.readFeaturesFromObject(Qx(t),this.getReadOptions(t,e))}readFeatureFromObject(t,e){return j()}readFeaturesFromObject(t,e){return j()}readGeometry(t,e){return this.readGeometryFromObject(Qx(t),this.getReadOptions(t,e))}readGeometryFromObject(t,e){return j()}readProjection(t){return this.readProjectionFromObject(Qx(t))}readProjectionFromObject(t){return j()}writeFeature(t,e){return JSON.stringify(this.writeFeatureObject(t,e))}writeFeatureObject(t,e){return j()}writeFeatures(t,e){return JSON.stringify(this.writeFeaturesObject(t,e))}writeFeaturesObject(t,e){return j()}writeGeometry(t,e){return JSON.stringify(this.writeGeometryObject(t,e))}writeGeometryObject(t,e){return j()}};const ev={Point:function(t){let e;e=void 0!==t.m&&void 0!==t.z?new ar([t.x,t.y,t.z,t.m],"XYZM"):void 0!==t.z?new ar([t.x,t.y,t.z],"XYZ"):void 0!==t.m?new ar([t.x,t.y,t.m],"XYM"):new ar([t.x,t.y]);return e},LineString:function(t){const e=rv(t);return new Fc(t.paths[0],e)},Polygon:function(t){const e=rv(t);return new Pr(t.rings,e)},MultiPoint:function(t){const e=rv(t);return new Ac(t.points,e)},MultiLineString:function(t){const e=rv(t);return new Lc(t.paths,e)},MultiPolygon:function(t){const e=rv(t);return new Dc(t.rings,e)}},iv={Point:function(t,e){const i=t.getCoordinates();let n;const r=t.getLayout();if("XYZ"===r)n={x:i[0],y:i[1],z:i[2]};else if("XYM"===r)n={x:i[0],y:i[1],m:i[2]};else if("XYZM"===r)n={x:i[0],y:i[1],z:i[2],m:i[3]};else{if("XY"!==r)throw new Error("Invalid geometry layout");n={x:i[0],y:i[1]}}return n},LineString:function(t,e){const i=sv(t);return{hasZ:i.hasZ,hasM:i.hasM,paths:[t.getCoordinates()]}},Polygon:function(t,e){const i=sv(t);return{hasZ:i.hasZ,hasM:i.hasM,rings:t.getCoordinates(!1)}},MultiPoint:function(t,e){const i=sv(t);return{hasZ:i.hasZ,hasM:i.hasM,points:t.getCoordinates()}},MultiLineString:function(t,e){const i=sv(t);return{hasZ:i.hasZ,hasM:i.hasM,paths:t.getCoordinates()}},MultiPolygon:function(t,e){const i=sv(t),n=t.getCoordinates(!1),r=[];for(let t=0;t=0;e--)r.push(n[t][e]);return{hasZ:i.hasZ,hasM:i.hasM,rings:r}}};function nv(t,e){if(!t)return null;let i;if("number"==typeof t.x&&"number"==typeof t.y)i="Point";else if(t.points)i="MultiPoint";else if(t.paths){i=1===t.paths.length?"LineString":"MultiLineString"}else if(t.rings){const e=t,n=rv(e),r=function(t,e){const i=[],n=[],r=[];let s,o;for(s=0,o=t.length;s=0;s--){const i=n[s][0];if(ie(new sr(i).getExtent(),new sr(t).getExtent())){n[s].push(t),e=!0;break}}e||n.push([t.reverse()])}return n}(e.rings,n);1===r.length?(i="Polygon",t=Object.assign({},t,{rings:r[0]})):(i="MultiPolygon",t=Object.assign({},t,{rings:r}))}return Yx((0,ev[i])(t),!1,e)}function rv(t){let e="XY";return!0===t.hasZ&&!0===t.hasM?e="XYZM":!0===t.hasZ?e="XYZ":!0===t.hasM&&(e="XYM"),e}function sv(t){const e=t.getLayout();return{hasZ:"XYZ"===e||"XYZM"===e,hasM:"XYM"===e||"XYZM"===e}}function ov(t,e){return(0,iv[t.getType()])(Yx(t,!0,e),e)}var av=class extends tv{constructor(t){t=t||{},super(),this.geometryName_=t.geometryName}readFeatureFromObject(t,e,i){const n=t,r=nv(n.geometry,e),s=new At;if(this.geometryName_&&s.setGeometryName(this.geometryName_),s.setGeometry(r),n.attributes){s.setProperties(n.attributes,!0);const t=n.attributes[i];void 0!==t&&s.setId(t)}return s}readFeaturesFromObject(t,e){if(e=e||{},t.features){const i=[],n=t.features;for(let r=0,s=n.length;r0?i[0]:null}readFeatureFromNode(t,e){return null}readFeatures(t,e){if(!t)return[];if("string"==typeof t){const i=lg(t);return this.readFeaturesFromDocument(i,e)}return og(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}readFeaturesFromDocument(t,e){const i=[];for(let n=t.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&h(i,this.readFeaturesFromNode(n,e));return i}readFeaturesFromNode(t,e){return j()}readGeometry(t,e){if(!t)return null;if("string"==typeof t){const i=lg(t);return this.readGeometryFromDocument(i,e)}return og(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}readGeometryFromDocument(t,e){return null}readGeometryFromNode(t,e){return null}readProjection(t){if(!t)return null;if("string"==typeof t){const e=lg(t);return this.readProjectionFromDocument(e)}return og(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}readProjectionFromDocument(t){return this.dataProjection}readProjectionFromNode(t){return this.dataProjection}writeFeature(t,e){const i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeatureNode(t,e){return null}writeFeatures(t,e){const i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeaturesNode(t,e){return null}writeGeometry(t,e){const i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeGeometryNode(t,e){return null}};const hv="http://www.opengis.net/gml",cv=/^\s*$/;class uv extends lv{constructor(t){super(),t=t||{},this.featureType=t.featureType,this.featureNS=t.featureNS,this.srsName=t.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:cg(this.readFeaturesInternal),featureMembers:ug(this.readFeaturesInternal)},this.supportedMediaTypes=["application/gml+xml"]}readFeaturesInternal(t,e){const i=t.localName;let n=null;if("FeatureCollection"==i)n=wg([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i||"member"==i){const r=e[0];let s=r.featureType,o=r.featureNS;const a="p",l="p0";if(!s&&t.childNodes){s=[],o={};for(let e=0,i=t.childNodes.length;e0&&!(t instanceof Fn)){t={_content_:t};for(let e=0;e0){e[e.length-1].push(...i)}},outerBoundaryIs:function(t,e){const i=wg(void 0,zS,t,e);if(i){e[e.length-1][0]=i}}});function FS(t,e){const i=wg({},SS,t,e),n=wg([null],PS,t,e);if(n&&n[0]){const t=n[0],e=[t.length];for(let i=1,r=n.length;i0;let o;const a=r.href;let l,h,c;a?o=a:s&&(o=Vw);let u="bottom-left";const d=i.hotSpot;let g;d?(l=[d.x,d.y],h=d.xunits,c=d.yunits,u=d.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(o)&&(o.includes("pushpin")?(l=Bw,h=Uw,c=zw):o.includes("arrow-reverse")?(l=[54,42],h=Uw,c=zw):o.includes("paddle")&&(l=[32,1],h=Uw,c=zw));const f=r.x,p=r.y;let m;void 0!==f&&void 0!==p&&(g=[f,p]);const _=r.w,y=r.h;let x;void 0!==_&&void 0!==y&&(m=[_,y]);const v=i.heading;void 0!==v&&(x=mi(v));const w=i.scale,S=i.color;if(s){o==Vw&&(m=Xw);const t=new dm({anchor:l,anchorOrigin:u,anchorXUnits:h,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:g,offsetOrigin:"bottom-left",rotation:x,scale:w,size:m,src:this.iconUrlFunction_(o),color:S}),e=t.getScaleArray()[0],i=t.getSize();if(null===i){const i=t.getImageState();if(i===Zr||i===$r){const n=function(){const i=t.getImageState();if(i!==Zr&&i!==$r){const i=t.getSize();if(i&&2==i.length){const n=tS(i);t.setScale(e*n)}t.unlistenImageChange(n)}};t.listenImageChange(n),i===Zr&&t.load()}}else if(2==i.length){const n=tS(i);t.setScale(e*n)}n.imageStyle=t}else n.imageStyle=Zw},LabelStyle:function(t,e){const i=wg({},uS,t,e);if(!i)return;const n=e[e.length-1],r=new Em({fill:new sm({color:"color"in i?i.color:jw}),scale:i.scale});n.textStyle=r},LineStyle:function(t,e){const i=wg({},dS,t,e);if(!i)return;const n=e[e.length-1],r=new fm({color:"color"in i?i.color:jw,width:"width"in i?i.width:1});n.strokeStyle=r},PolyStyle:function(t,e){const i=wg({},gS,t,e);if(!i)return;const n=e[e.length-1],r=new sm({color:"color"in i?i.color:jw});n.fillStyle=r;const s=i.fill;void 0!==s&&(n.fill=s);const o=i.outline;void 0!==o&&(n.outline=o)}});function LS(t,e){const i=wg({},IS,t,e,this);if(!i)return null;let n="fillStyle"in i?i.fillStyle:Ww;const r=i.fill;let s;void 0===r||r||(n=null),"imageStyle"in i?i.imageStyle!=Zw&&(s=i.imageStyle):s=$w;const o="textStyle"in i?i.textStyle:Kw,a="strokeStyle"in i?i.strokeStyle:qw,l=i.outline;return void 0===l||l?[new wm({fill:n,image:s,stroke:a,text:o,zIndex:void 0})]:[new wm({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Ec(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"!==e&&"MultiPolygon"!==e})))}if("Polygon"!==i&&"MultiPolygon"!==i)return e},fill:n,image:s,stroke:a,text:o,zIndex:void 0}),new wm({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Ec(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"===e||"MultiPolygon"===e})))}if("Polygon"===i||"MultiPolygon"===i)return e},fill:n,stroke:null,zIndex:void 0})]}function MS(t,e){const i=e.length,n=new Array(e.length),r=new Array(e.length),s=new Array(e.length);let o,a,l;o=!1,a=!1,l=!1;for(let t=0;t0){const t=yg(r,o);Eg(n,gE,pE,[{names:o,values:t}],i)}const u=i[0];let d=e.getGeometry();d&&(d=Yx(d,!0,u)),Eg(n,gE,rE,[d],i)}const _E=xg(Iw,["extrude","tessellate","altitudeMode","coordinates"]),yE=xg(Iw,{extrude:fg(wv),tessellate:fg(wv),altitudeMode:fg(bv),coordinates:fg((function(t,e,i){const n=i[i.length-1],r=n.layout,s=n.stride;let o;if("XY"==r||"XYM"==r)o=2;else{if("XYZ"!=r&&"XYZM"!=r)throw new Error("Invalid geometry layout");o=3}const a=e.length;let l="";if(a>0){l+=e[0];for(let t=1;t0;else{const e=t.getType();a="Point"===e||"MultiPoint"===e}}a&&(l=s.get("name"),a=a&&!!l,a&&/&[^&]+;/.test(l)&&(Jw||(Jw=document.createElement("textarea")),Jw.innerHTML=l,l=Jw.value));let c=i;if(t?c=t:e&&(c=iS(e,i,n)),a){const t=function(t,e){const i=[0,0];let n="start";const r=t.getImage();if(r){const t=r.getSize();if(t&&2==t.length){const e=r.getScaleArray(),s=r.getAnchor();i[0]=e[0]*(t[0]-s[0]),i[1]=e[1]*(t[1]/2-s[1]),n="left"}}let s=t.getText();s?(s=s.clone(),s.setFont(s.getFont()||Kw.getFont()),s.setScale(s.getScale()||Kw.getScale()),s.setFill(s.getFill()||Kw.getFill()),s.setStroke(s.getStroke()||Yw)):s=Kw.clone();s.setText(e),s.setOffsetX(i[0]),s.setOffsetY(i[1]),s.setTextAlign(n);const o=new wm({image:r,text:s});return o}(c[0],l);if(h.length>0){t.setGeometry(new Ec(h));return[t,new wm({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null})].concat(c.slice(1))}return t}return c}}(i.Style,i.styleUrl,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);n.setStyle(t)}return delete i.Style,n.setProperties(i,!0),n}readSharedStyle_(t,e){const i=t.getAttribute("id");if(null!==i){const n=LS.call(this,t,e);if(n){let e,r=t.baseURI;if(r&&"about:blank"!=r||(r=window.location.href),r){e=new URL("#"+i,r).href}else e="#"+i;this.sharedStyles_[e]=n}}}readSharedStyleMap_(t,e){const i=t.getAttribute("id");if(null===i)return;const n=hS.call(this,t,e);if(!n)return;let r,s=t.baseURI;if(s&&"about:blank"!=s||(s=window.location.href),s){r=new URL("#"+i,s).href}else r="#"+i;this.sharedStyles_[r]=n}readFeatureFromNode(t,e){if(!Iw.includes(t.namespaceURI))return null;const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i||null}readFeaturesFromNode(t,e){if(!Iw.includes(t.namespaceURI))return[];let i;const n=t.localName;if("Document"==n||"Folder"==n)return i=this.readDocumentOrFolder_(t,[this.getReadOptions(t,e)]),i||[];if("Placemark"==n){const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i?[i]:[]}if("kml"==n){i=[];for(let n=t.firstElementChild;n;n=n.nextElementSibling){const t=this.readFeaturesFromNode(n,e);t&&h(i,t)}return i}return[]}readName(t){if(t){if("string"==typeof t){const e=lg(t);return this.readNameFromDocument(e)}return og(t)?this.readNameFromDocument(t):this.readNameFromNode(t)}}readNameFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE){const t=this.readNameFromNode(e);if(t)return t}}readNameFromNode(t){for(let e=t.firstElementChild;e;e=e.nextElementSibling)if(Iw.includes(e.namespaceURI)&&"name"==e.localName)return vv(e);for(let e=t.firstElementChild;e;e=e.nextElementSibling){const t=e.localName;if(Iw.includes(e.namespaceURI)&&("Document"==t||"Folder"==t||"Placemark"==t||"kml"==t)){const t=this.readNameFromNode(e);if(t)return t}}}readNetworkLinks(t){const e=[];if("string"==typeof t){const i=lg(t);h(e,this.readNetworkLinksFromDocument(i))}else og(t)?h(e,this.readNetworkLinksFromDocument(t)):h(e,this.readNetworkLinksFromNode(t));return e}readNetworkLinksFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&h(e,this.readNetworkLinksFromNode(i));return e}readNetworkLinksFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(Iw.includes(i.namespaceURI)&&"NetworkLink"==i.localName){const t=wg({},Aw,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!Iw.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||h(e,this.readNetworkLinksFromNode(i))}return e}readRegion(t){const e=[];if("string"==typeof t){const i=lg(t);h(e,this.readRegionFromDocument(i))}else og(t)?h(e,this.readRegionFromDocument(t)):h(e,this.readRegionFromNode(t));return e}readRegionFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&h(e,this.readRegionFromNode(i));return e}readRegionFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(Iw.includes(i.namespaceURI)&&"Region"==i.localName){const t=wg({},Dw,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!Iw.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||h(e,this.readRegionFromNode(i))}return e}readCamera(t){const e=[];if("string"==typeof t){const i=lg(t);h(e,this.readCameraFromDocument(i))}else og(t)?h(e,this.readCameraFromDocument(t)):h(e,this.readCameraFromNode(t));return e}readCameraFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType===Node.ELEMENT_NODE&&h(e,this.readCameraFromNode(i));return e}readCameraFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(Iw.includes(i.namespaceURI)&&"Camera"===i.localName){const t=wg({},Nw,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!Iw.includes(i.namespaceURI)||"Document"!==t&&"Folder"!==t&&"Placemark"!==t&&"kml"!==t||h(e,this.readCameraFromNode(i))}return e}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=ng(Iw[4],"kml"),n="http://www.w3.org/2000/xmlns/";i.setAttributeNS(n,"xmlns:gx",Fw[0]),i.setAttributeNS(n,"xmlns:xsi",ig),i.setAttributeNS(ig,"xsi:schemaLocation","http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");const r={node:i},s={};t.length>1?s.Document=t:1==t.length&&(s.Placemark=t[0]);const o=kw[i.namespaceURI],a=yg(s,o);return Eg(r,Gw,_g,a,[e],o,this),i}},IE={
+/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */
+read:function(t,e,i,n,r){var s,o,a=8*r-n-1,l=(1<>1,c=-7,u=i?r-1:0,d=i?-1:1,g=t[e+u];for(u+=d,s=g&(1<<-c)-1,g>>=-c,c+=a;c>0;s=256*s+t[e+u],u+=d,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=n;c>0;o=256*o+t[e+u],u+=d,c-=8);if(0===s)s=1-h;else{if(s===l)return o?NaN:1/0*(g?-1:1);o+=Math.pow(2,n),s-=h}return(g?-1:1)*o*Math.pow(2,s-n)},write:function(t,e,i,n,r,s){var o,a,l,h=8*s-r-1,c=(1<>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:s-1,f=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(o++,l/=2),o+u>=c?(a=0,o=c):o+u>=1?(a=(e*l-1)*Math.pow(2,r),o+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,r),o=0));r>=8;t[i+g]=255&a,g+=f,a/=256,r-=8);for(o=o<0;t[i+g]=255&o,g+=f,o/=256,h-=8);t[i+g-f]|=128*p}},LE=AE,ME=IE;function AE(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}AE.Varint=0,AE.Fixed64=1,AE.Bytes=2,AE.Fixed32=5;var OE=4294967296,NE=1/OE,DE="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function kE(t){return t.type===AE.Bytes?t.readVarint()+t.pos:t.pos+1}function GE(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function jE(t,e,i){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(n);for(var r=i.pos-1;r>=t;r--)i.buf[r+n]=i.buf[r]}function BE(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function HE(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}AE.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,s=this.pos;this.type=7&n,t(r,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=qE(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=HE(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=qE(this.buf,this.pos)+qE(this.buf,this.pos+4)*OE;return this.pos+=8,t},readSFixed64:function(){var t=qE(this.buf,this.pos)+HE(this.buf,this.pos+4)*OE;return this.pos+=8,t},readFloat:function(){var t=ME.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ME.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,n=this.buf;return e=127&(i=n[this.pos++]),i<128?e:(e|=(127&(i=n[this.pos++]))<<7,i<128?e:(e|=(127&(i=n[this.pos++]))<<14,i<128?e:(e|=(127&(i=n[this.pos++]))<<21,i<128?e:function(t,e,i){var n,r,s=i.buf;if(r=s[i.pos++],n=(112&r)>>4,r<128)return GE(t,n,e);if(r=s[i.pos++],n|=(127&r)<<3,r<128)return GE(t,n,e);if(r=s[i.pos++],n|=(127&r)<<10,r<128)return GE(t,n,e);if(r=s[i.pos++],n|=(127&r)<<17,r<128)return GE(t,n,e);if(r=s[i.pos++],n|=(127&r)<<24,r<128)return GE(t,n,e);if(r=s[i.pos++],n|=(1&r)<<31,r<128)return GE(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&DE?function(t,e,i){return DE.decode(t.subarray(e,i))}(this.buf,e,t):function(t,e,i){var n="",r=e;for(;r239?4:l>223?3:l>191?2:1;if(r+c>i)break;1===c?l<128&&(h=l):2===c?128==(192&(s=t[r+1]))&&(h=(31&l)<<6|63&s)<=127&&(h=null):3===c?(s=t[r+1],o=t[r+2],128==(192&s)&&128==(192&o)&&((h=(15&l)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===c&&(s=t[r+1],o=t[r+2],a=t[r+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&l)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,c=1):h>65535&&(h-=65536,n+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),n+=String.fromCharCode(h),r+=c}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==AE.Bytes)return t.push(this.readVarint(e));var i=kE(this);for(t=t||[];this.pos127;);else if(e===AE.Bytes)this.pos=this.readVarint()+this.pos;else if(e===AE.Fixed32)this.pos+=4;else{if(e!==AE.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,n;t>=0?(i=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,n=n+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var n,r,s=0;s55295&&n<57344){if(!r){n>56319||s+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):r=n;continue}if(n<56320){t[i++]=239,t[i++]=191,t[i++]=189,r=n;continue}n=r-55296<<10|n-56320|65536,r=null}else r&&(t[i++]=239,t[i++]=191,t[i++]=189,r=null);n<128?t[i++]=n:(n<2048?t[i++]=n>>6|192:(n<65536?t[i++]=n>>12|224:(t[i++]=n>>18|240,t[i++]=n>>12&63|128),t[i++]=n>>6&63|128),t[i++]=63&n|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&jE(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),ME.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),ME.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&jE(i,n,this),this.pos=i-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,i){this.writeTag(t,AE.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,BE,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,UE,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,VE,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,zE,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,XE,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,WE,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,ZE,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,$E,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,YE,e)},writeBytesField:function(t,e){this.writeTag(t,AE.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,AE.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,AE.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,AE.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,AE.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,AE.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,AE.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,AE.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,AE.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,AE.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var JE=cs(LE);function QE(t,e,i){if(3===t){const t={keys:[],values:[],features:[]},n=i.readVarint()+i.pos;i.readFields(tT,t,n),t.length=t.features.length,t.length&&(e[t.name]=t)}}function tT(t,e,i){if(15===t)e.version=i.readVarint();else if(1===t)e.name=i.readString();else if(5===t)e.extent=i.readVarint();else if(2===t)e.features.push(i.pos);else if(3===t)e.keys.push(i.readString());else if(4===t){let n=null;const r=i.readVarint()+i.pos;for(;i.pos>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(n)}}function eT(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t){const t=i.readVarint()+i.pos;for(;i.pos>3}if(o--,1===s||2===s)a+=t.readSVarint(),l+=t.readSVarint(),1===s&&h>c&&(n.push(h),c=h),i.push(a,l),h+=2;else{if(7!==s)throw new Error("Invalid command found in the PBF");h>c&&(i.push(i[c],i[c+1]),h+=2)}}h>c&&(n.push(h),c=h)}createFeature_(t,e,i){const n=e.type;if(0===n)return null;let r;const s=e.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=e.id,s[this.layerName_]=e.layer.name;const a=[],l=[];this.readRawGeometry_(t,e,a,l);const h=function(t,e){let i;1===t?i=1===e?"Point":"MultiPoint":2===t?i=1===e?"LineString":"MultiLineString":3===t&&(i="Polygon");return i}(n,l.length);if(this.featureClass_===Bc)r=new this.featureClass_(h,a,l,2,s,o),r.transform(i.dataProjection);else{let t;if("Polygon"==h){const e=br(a,l);t=e.length>1?new Dc(a,"XY",e):new Pr(a,"XY",l)}else t="Point"===h?new ar(a,"XY"):"LineString"===h?new Fc(a,"XY"):"MultiPoint"===h?new Ac(a,"XY"):"MultiLineString"===h?new Lc(a,"XY",l):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);const e=Yx(t,!1,i);r.setGeometry(e),void 0!==o&&r.setId(o),r.setProperties(s,!0)}return r}getType(){return"arraybuffer"}readFeatures(t,e){const i=this.layers_,n=tn((e=this.adaptOptions(e)).dataProjection);n.setWorldExtent(e.extent),e.dataProjection=n;const r=new JE(t),s=r.readFields(QE,{}),o=[];for(const t in s){if(i&&!i.includes(t))continue;const a=s[t],l=a?[0,0,a.extent,a.extent]:null;n.setExtent(l);for(let t=0,i=a.length;t>1):i>>1}return e}function NT(t){let e="";for(let i=0,n=t.length;i=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e),i}var GT=class extends Ew{constructor(t){super(),t=t||{},this.dataProjection=tn("EPSG:4326"),this.factor_=t.factor?t.factor:1e5,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY"}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e);return new At(i)}readFeaturesFromText(t,e){return[this.readFeatureFromText(t,e)]}readGeometryFromText(t,e){const i=Ln(this.geometryLayout_),n=IT(t,i,this.factor_);Zx(n,0,n.length,i,n);const r=Jn(n,0,n.length,i);return Yx(new Fc(r,this.geometryLayout_),!1,this.adaptOptions(e))}writeFeatureText(t,e){const i=t.getGeometry();if(i)return this.writeGeometryText(i,e);throw new Error("Expected `feature` to have a geometry")}writeFeaturesText(t,e){return this.writeFeatureText(t[0],e)}writeGeometryText(t,e){const i=(t=Yx(t,!0,this.adaptOptions(e))).getFlatCoordinates(),n=t.getStride();return Zx(i,0,i.length,n,i),FT(i,n,this.factor_)}};const jT={Point:function(t,e,i){const n=t.coordinates;e&&i&&VT(n,e,i);return new ar(n)},LineString:function(t,e){const i=BT(t.arcs,e);return new Fc(i)},Polygon:function(t,e){const i=[];for(let n=0,r=t.arcs.length;n0&&i.pop(),n>=0){const t=e[n];for(let e=0,n=t.length;e=0;--e)i.push(t[e].slice(0))}return i}function UT(t,e,i,n,r,s,o){const a=t.geometries,l=[];for(let t=0,h=a.length;t=2,"At least 2 conditions are required")}};var YT=class extends $T{constructor(t){super("And",Array.prototype.slice.call(arguments))}};var qT=class extends ZT{constructor(t,e,i){if(super("BBOX"),this.geometryName=t,this.extent=e,4!==e.length)throw new Error("Expected an extent with four values ([minX, minY, maxX, maxY])");this.srsName=i}};var KT=class extends ZT{constructor(t,e,i,n){super(t),this.geometryName=e||"the_geom",this.geometry=i,this.srsName=n}};var HT=class extends KT{constructor(t,e,i){super("Contains",t,e,i)}};var JT=class extends KT{constructor(t,e,i,n,r){super("DWithin",t,e,r),this.distance=i,this.unit=n}};var QT=class extends KT{constructor(t,e,i){super("Disjoint",t,e,i)}};var tC=class extends ZT{constructor(t,e){super(t),this.propertyName=e}};var eC=class extends tC{constructor(t,e,i){super("During",t),this.begin=e,this.end=i}};var iC=class extends tC{constructor(t,e,i,n){super(t,e),this.expression=i,this.matchCase=n}};var nC=class extends iC{constructor(t,e,i){super("PropertyIsEqualTo",t,e,i)}};var rC=class extends iC{constructor(t,e){super("PropertyIsGreaterThan",t,e)}};var sC=class extends iC{constructor(t,e){super("PropertyIsGreaterThanOrEqualTo",t,e)}};var oC=class extends KT{constructor(t,e,i){super("Intersects",t,e,i)}};var aC=class extends tC{constructor(t,e,i){super("PropertyIsBetween",t),this.lowerBoundary=e,this.upperBoundary=i}};var lC=class extends tC{constructor(t,e,i,n,r,s){super("PropertyIsLike",t),this.pattern=e,this.wildCard=void 0!==i?i:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==r?r:"!",this.matchCase=s}};var hC=class extends tC{constructor(t){super("PropertyIsNull",t)}};var cC=class extends iC{constructor(t,e){super("PropertyIsLessThan",t,e)}};var uC=class extends iC{constructor(t,e){super("PropertyIsLessThanOrEqualTo",t,e)}};var dC=class extends ZT{constructor(t){super("Not"),this.condition=t}};var gC=class extends iC{constructor(t,e,i){super("PropertyIsNotEqualTo",t,e,i)}};var fC=class extends $T{constructor(t){super("Or",Array.prototype.slice.call(arguments))}};var pC=class extends ZT{constructor(t){super("ResourceId"),this.rid=t}};var mC=class extends KT{constructor(t,e,i){super("Within",t,e,i)}};function _C(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(YT,e))}function yC(t,e,i){return new qT(t,e,i)}const xC={"http://www.opengis.net/gml":{boundedBy:gg(dv.prototype.readExtentElement,"bounds")},"http://www.opengis.net/wfs/2.0":{member:cg(dv.prototype.readFeaturesInternal)}},vC={"http://www.opengis.net/wfs":{totalInserted:gg(yv),totalUpdated:gg(yv),totalDeleted:gg(yv)},"http://www.opengis.net/wfs/2.0":{totalInserted:gg(yv),totalUpdated:gg(yv),totalDeleted:gg(yv)}},wC={"http://www.opengis.net/wfs":{TransactionSummary:gg(MC,"transactionSummary"),InsertResults:gg(DC,"insertIds")},"http://www.opengis.net/wfs/2.0":{TransactionSummary:gg(MC,"transactionSummary"),InsertResults:gg(DC,"insertIds")}},SC={"http://www.opengis.net/wfs":{PropertyName:fg(bv)},"http://www.opengis.net/wfs/2.0":{PropertyName:fg(bv)}},EC={"http://www.opengis.net/wfs":{Insert:fg(kC),Update:fg(UC),Delete:fg(BC),Property:fg(zC),Native:fg(XC)},"http://www.opengis.net/wfs/2.0":{Insert:fg(kC),Update:fg(UC),Delete:fg(BC),Property:fg(zC),Native:fg(XC)}},TC="feature",CC="http://www.w3.org/2000/xmlns/",bC={"2.0.0":"http://www.opengis.net/ogc/1.1","1.1.0":"http://www.opengis.net/ogc","1.0.0":"http://www.opengis.net/ogc"},RC={"2.0.0":"http://www.opengis.net/wfs/2.0","1.1.0":"http://www.opengis.net/wfs","1.0.0":"http://www.opengis.net/wfs"},PC={"2.0.0":"http://www.opengis.net/fes/2.0","1.1.0":"http://www.opengis.net/fes","1.0.0":"http://www.opengis.net/fes"},FC={"2.0.0":"http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd","1.1.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd","1.0.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd"},IC={"2.0.0":Gv,"1.1.0":Ov,"1.0.0":Iv};function LC(t,e,i,n){Eg(n,EC,mg(t),e,i)}function MC(t,e){return wg({},vC,t,e)}const AC={"http://www.opengis.net/ogc":{FeatureId:cg((function(t,e){return t.getAttribute("fid")}))},"http://www.opengis.net/ogc/1.1":{FeatureId:cg((function(t,e){return t.getAttribute("fid")}))}};function OC(t,e){vg(AC,t,e)}const NC={"http://www.opengis.net/wfs":{Feature:OC},"http://www.opengis.net/wfs/2.0":{Feature:OC}};function DC(t,e){return wg([],NC,t,e)}function kC(t,e,i){const n=i[i.length-1],r=n.featureType,s=n.featureNS,o=n.gmlVersion,a=ng(s,r);t.appendChild(a),2===o?Iv.prototype.writeFeatureElement(a,e,i):3===o?Ov.prototype.writeFeatureElement(a,e,i):Gv.prototype.writeFeatureElement(a,e,i)}function GC(t,e,i){const n=i[i.length-1].version,r=bC[n],s=ng(r,"Filter"),o=ng(r,"FeatureId");s.appendChild(o),o.setAttribute("fid",e),t.appendChild(s)}function jC(t,e){const i=(t=t||TC)+":";return e.startsWith(i)?e:i+e}function BC(t,e,i){const n=i[i.length-1];It(void 0!==e.getId(),"Features must have an id set");const r=n.featureType,s=n.featurePrefix,o=n.featureNS,a=jC(s,r);t.setAttribute("typeName",a),t.setAttributeNS(CC,"xmlns:"+s,o);const l=e.getId();void 0!==l&&GC(t,l,i)}function UC(t,e,i){const n=i[i.length-1];It(void 0!==e.getId(),"Features must have an id set");const r=n.version,s=n.featureType,o=n.featurePrefix,a=n.featureNS,l=jC(o,s),h=e.getGeometryName();t.setAttribute("typeName",l),t.setAttributeNS(CC,"xmlns:"+o,a);const c=e.getId();if(void 0!==c){const s=e.getKeys(),o=[];for(let t=0,i=s.length;t{const r=this.combineBboxAndFilter(n.geometryName,n.bbox,t.srsName,t.filter);Object.assign(i,{geometryName:n.geometryName,filter:r}),ab(e,[n.name],[i])}));return e}combineBboxAndFilter(t,e,i,n){const r=yC(t,e,i);return n?_C(n,r):r}writeTransaction(t,e,i,n){const r=[],s=n.version?n.version:this.version_,o=ng(RC[s],"Transaction");let a;o.setAttribute("service","WFS"),o.setAttribute("version",s),n&&(a=n.gmlOptions?n.gmlOptions:{},n.handle&&o.setAttribute("handle",n.handle)),o.setAttributeNS(ig,"xsi:schemaLocation",FC[s]);const l=function(t,e,i,n){const r=n.featurePrefix?n.featurePrefix:TC;let s;"1.0.0"===i?s=2:"1.1.0"===i?s=3:"2.0.0"===i&&(s=3.2);const o=Object.assign({node:t},{version:i,featureNS:n.featureNS,featureType:n.featureType,featurePrefix:r,gmlVersion:s,hasZ:n.hasZ,srsName:n.srsName},e);return o}(o,a,s,n);return t&&LC("Insert",t,r,l),e&&LC("Update",e,r,l),i&&LC("Delete",i,r,l),n.nativeElements&&LC("Native",n.nativeElements,r,l),o}readProjectionFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readProjectionFromNode(e);return null}readProjectionFromNode(t){if(t.firstElementChild&&t.firstElementChild.firstElementChild)for(let e=(t=t.firstElementChild.firstElementChild).firstElementChild;e;e=e.nextElementSibling)if(0!==e.childNodes.length&&(1!==e.childNodes.length||3!==e.firstChild.nodeType)){const t=[{}];return this.gmlFormat_.readGeometryElement(e,t),tn(t.pop().srsName)}return null}};const cb=1,ub=2,db=3,gb=4,fb=5,pb=6,mb=7,_b=15,yb=16,xb=17;class vb{constructor(t){this.view_=t,this.pos_=0,this.initialized_=!1,this.isLittleEndian_=!1,this.hasZ_=!1,this.hasM_=!1,this.srid_=null,this.layout_="XY"}readUint8(){return this.view_.getUint8(this.pos_++)}readUint32(t){return this.view_.getUint32((this.pos_+=4)-4,void 0!==t?t:this.isLittleEndian_)}readDouble(t){return this.view_.getFloat64((this.pos_+=8)-8,void 0!==t?t:this.isLittleEndian_)}readPoint(){const t=[];return t.push(this.readDouble()),t.push(this.readDouble()),this.hasZ_&&t.push(this.readDouble()),this.hasM_&&t.push(this.readDouble()),t}readLineString(){const t=this.readUint32(),e=[];for(let i=0;i0,i=this.readUint32(e),n=Math.floor((268435455&i)/1e3),r=Boolean(2147483648&i)||1===n||3===n,s=Boolean(1073741824&i)||2===n||3===n,o=Boolean(536870912&i),a=(268435455&i)%1e3,l=["XY",r?"Z":"",s?"M":""].join(""),h=o?this.readUint32(e):null;if(void 0!==t&&t!==a)throw new Error("Unexpected WKB geometry type "+a);if(this.initialized_){if(this.isLittleEndian_!==e)throw new Error("Inconsistent endian");if(this.layout_!==l)throw new Error("Inconsistent geometry layout");if(h&&this.srid_!==h)throw new Error("Inconsistent coordinate system (SRID)")}else this.isLittleEndian_=e,this.hasZ_=r,this.hasM_=s,this.layout_=l,this.srid_=h,this.initialized_=!0;return a}readWkbPayload(t){switch(t){case cb:return this.readPoint();case ub:return this.readLineString();case db:case xb:return this.readPolygon();case gb:return this.readMultiPoint();case fb:return this.readMultiLineString();case pb:case _b:case yb:return this.readMultiPolygon();case mb:return this.readGeometryCollection();default:throw new Error("Unsupported WKB geometry type "+t+" is found")}}readWkbBlock(t){return this.readWkbPayload(this.readWkbHeader(t))}readWkbCollection(t,e){const i=this.readUint32(),n=[];for(let r=0;r({[e]:t[i]}))));for(const t of this.layout_)this.writeDouble(t in i?i[t]:this.nodata_[t])}writeLineString(t,e){this.writeUint32(t.length);for(let i=0;it+e[0]),0),e=new ArrayBuffer(t),i=new DataView(e);let n=0;return this.writeQueue_.forEach((t=>{switch(t[0]){case 1:i.setUint8(n,t[1]);break;case 4:i.setUint32(n,t[1],this.isLittleEndian_);break;case 8:i.setFloat64(n,t[1],this.isLittleEndian_)}n+=t[0]})),e}}function Sb(t){return"string"==typeof t?function(t){const e=new Uint8Array(t.length/2);for(let i=0;inew At({geometry:t})))}readGeometry(t,e){const i=Sb(t);if(!i)return null;const n=new vb(i).readGeometry();return this.viewCache_=i,e=this.getReadOptions(t,e),this.viewCache_=null,Yx(n,!1,e)}readProjection(t){const e=this.viewCache_||Sb(t);if(!e)return;const i=new vb(e);return i.readWkbHeader(),i.getSrid()&&tn("EPSG:"+i.getSrid())||void 0}writeFeature(t,e){return this.writeGeometry(t.getGeometry(),e)}writeFeatures(t,e){return this.writeGeometry(new Ec(t.map((t=>t.getGeometry()))),e)}writeGeometry(t,e){e=this.adaptOptions(e);const i=new wb({layout:this.layout_,littleEndian:this.littleEndian_,ewkb:this.ewkb_,nodata:{Z:this.nodataZ_,M:this.nodataM_}});let n=Number.isInteger(this.srid_)?Number(this.srid_):null;if(!1!==this.srid_&&!Number.isInteger(this.srid_)){const t=e.dataProjection&&tn(e.dataProjection);if(t){const e=t.getCode();e.startsWith("EPSG:")&&(n=Number(e.substring(5)))}}i.writeGeometry(Yx(t,!0,e),n);const r=i.getBuffer();return this.hex_?function(t){const e=new Uint8Array(t);return Array.from(e.values()).map((t=>(t<16?"0":"")+Number(t).toString(16).toUpperCase())).join("")}(r):r}};const Tb={POINT:ar,LINESTRING:Fc,POLYGON:Pr,MULTIPOINT:Ac,MULTILINESTRING:Lc,MULTIPOLYGON:Dc},Cb="EMPTY",bb="Z",Rb="M",Pb=0,Fb=1,Ib=2,Lb=3,Mb=4,Ab=5,Ob=6,Nb={Point:"POINT",LineString:"LINESTRING",Polygon:"POLYGON",MultiPoint:"MULTIPOINT",MultiLineString:"MULTILINESTRING",MultiPolygon:"MULTIPOLYGON",GeometryCollection:"GEOMETRYCOLLECTION",Circle:"CIRCLE"};class Db{constructor(t){this.wkt=t,this.index_=-1}isAlpha_(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}isNumeric_(t,e){return e=void 0!==e&&e,t>="0"&&t<="9"||"."==t&&!e}isWhiteSpace_(t){return" "==t||"\t"==t||"\r"==t||"\n"==t}nextChar_(){return this.wkt.charAt(++this.index_)}nextToken(){const t=this.nextChar_(),e=this.index_;let i,n=t;if("("==t)i=Ib;else if(","==t)i=Ab;else if(")"==t)i=Lb;else if(this.isNumeric_(t)||"-"==t)i=Mb,n=this.readNumber_();else if(this.isAlpha_(t))i=Fb,n=this.readText_();else{if(this.isWhiteSpace_(t))return this.nextToken();if(""!==t)throw new Error("Unexpected character: "+t);i=Ob}return{position:e,value:n,type:i}}readNumber_(){let t;const e=this.index_;let i=!1,n=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(n=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!n&&("e"==t||"E"==t)||n&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))}readText_(){let t;const e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()}}class kb{constructor(t){this.lexer_=t,this.token_={position:0,type:Pb},this.layout_="XY"}consume_(){this.token_=this.lexer_.nextToken()}isTokenType(t){return this.token_.type==t}match(t){const e=this.isTokenType(t);return e&&this.consume_(),e}parse(){return this.consume_(),this.parseGeometry_()}parseGeometryLayout_(){let t="XY";const e=this.token_;if(this.isTokenType(Fb)){const i=e.value;i===bb?t="XYZ":i===Rb?t="XYM":"ZM"===i&&(t="XYZM"),"XY"!==t&&this.consume_()}return t}parseGeometryCollectionText_(){if(this.match(Ib)){const t=[];do{t.push(this.parseGeometry_())}while(this.match(Ab));if(this.match(Lb))return t}throw new Error(this.formatErrorMessage_())}parsePointText_(){if(this.match(Ib)){const t=this.parsePoint_();if(this.match(Lb))return t}throw new Error(this.formatErrorMessage_())}parseLineStringText_(){if(this.match(Ib)){const t=this.parsePointList_();if(this.match(Lb))return t}throw new Error(this.formatErrorMessage_())}parsePolygonText_(){if(this.match(Ib)){const t=this.parseLineStringTextList_();if(this.match(Lb))return t}throw new Error(this.formatErrorMessage_())}parseMultiPointText_(){if(this.match(Ib)){let t;if(t=this.token_.type==Ib?this.parsePointTextList_():this.parsePointList_(),this.match(Lb))return t}throw new Error(this.formatErrorMessage_())}parseMultiLineStringText_(){if(this.match(Ib)){const t=this.parseLineStringTextList_();if(this.match(Lb))return t}throw new Error(this.formatErrorMessage_())}parseMultiPolygonText_(){if(this.match(Ib)){const t=this.parsePolygonTextList_();if(this.match(Lb))return t}throw new Error(this.formatErrorMessage_())}parsePoint_(){const t=[],e=this.layout_.length;for(let i=0;i0&&(n+=" "+e)}return 0===i.length?n+" "+Cb:n+"("+i+")"}var Xb=class extends Ew{constructor(t){super(),t=t||{},this.splitCollection_=void 0!==t.splitCollection&&t.splitCollection}parse_(t){const e=new Db(t);return new kb(e).parse()}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e),n=new At;return n.setGeometry(i),n}readFeaturesFromText(t,e){let i=[];const n=this.readGeometryFromText(t,e);i=this.splitCollection_&&"GeometryCollection"==n.getType()?n.getGeometriesArray():[n];const r=[];for(let t=0,e=i.length;tc*UR||h>u*UR?this.resetExtent_():ie(s,n)||this.recenter_()}resetExtent_(){const t=this.getMap(),e=this.ovmap_,i=t.getSize(),n=t.getView().calculateExtentInternal(i),r=e.getView(),s=Math.log(7.5)/Math.LN2;Oe(n,1/(Math.pow(2,s/2)*zR)),r.fitInternal(Ir(n))}recenter_(){const t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenterInternal(i.getCenterInternal())}updateBox_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),n=t.getView(),r=e.getView(),s=this.rotateWithView_?0:-n.getRotation(),o=this.boxOverlay_,a=this.boxOverlay_.getElement(),l=n.getCenterInternal(),h=n.getResolution(),c=r.getResolution(),u=i[0]*h/c,d=i[1]*h/c;if(o.setPosition(l),a){a.style.width=u+"px",a.style.height=d+"px";const t="rotate("+s+"rad)";a.style.transform=t}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=O(this.ovmap_,ua,(function(t){delete this.ovmapPostrenderKey_,this.updateBox_()}),this))}handleClick_(t){t.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(Ro),this.collapsed_?vt(this.collapseLabel_,this.label_):vt(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const t=this.ovmap_;if(!this.collapsed_){if(t.isRendered())return this.viewExtent_=void 0,void t.render();t.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())}setCollapsed(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(t){this.rotateWithView_!==t&&(this.rotateWithView_=t,0!==this.getMap().getView().getRotation()&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(t){this.validateExtent_(),this.updateBox_()}};const VR="units",WR=[1,2,5],ZR=25.4/.28;var $R=class extends Ta{constructor(t){t=t||{};const e=document.createElement("div");e.style.pointerEvents="none",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un;const i=void 0!==t.className?t.className:t.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=i+"-inner",this.element.className=i+" "+To,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==t.minWidth?t.minWidth:64,this.maxWidth_=t.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(VR,this.handleUnitsChanged_),this.setUnits(t.units||"metric"),this.scaleBar_=t.bar||!1,this.scaleBarSteps_=t.steps||4,this.scaleBarText_=t.text||!1,this.dpi_=t.dpi||void 0}getUnits(){return this.get(VR)}handleUnitsChanged_(){this.updateElement_()}setUnits(t){this.set(VR,t)}setDpi(t){this.dpi_=t}updateElement_(){const t=this.viewState_;if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=t.center,i=t.projection,n=this.getUnits(),r="degrees"==n?"degrees":"m";let s=en(i,t.resolution,e,r);const o=this.minWidth_*(this.dpi_||ZR)/ZR,a=void 0!==this.maxWidth_?this.maxWidth_*(this.dpi_||ZR)/ZR:void 0;let l=o*s,h="";if("degrees"==n){const t=Ue.degrees;l*=t,l=a){c=g,u=f,d=p;break}if(u>=o)break;g=c,f=u,p=d,++m}const _=this.scaleBar_?this.createScaleBar(u,c,h):c.toFixed(d<0?-d:0)+" "+h;this.renderedHTML_!=_&&(this.innerElement_.innerHTML=_,this.renderedHTML_=_),this.renderedWidth_!=u&&(this.innerElement_.style.width=u+"px",this.renderedWidth_=u),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(t,e,i){const n=this.getScaleForResolution(),r=n<1?Math.round(1/n).toLocaleString()+" : 1":"1 : "+Math.round(n).toLocaleString(),s=this.scaleBarSteps_,o=t/s,a=[this.createMarker("absolute")];for(let n=0;n
`+this.createMarker("relative")+(n%2==0||2===s?this.createStepText(n,t,!1,e,i):"")+" ")}a.push(this.createStepText(s,t,!0,e,i));return(this.scaleBarText_?`
`+r+"
":"")+a.join("")}createMarker(t){return`
`}createStepText(t,e,i,n,r){const s=(0===t?0:Math.round(n/this.scaleBarSteps_*t*100)/100)+(0===t?"":" "+r);return`
`+s+"
"}getScaleForResolution(){return en(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m")*(1e3/25.4)*(this.dpi_||ZR)}render(t){const e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}};const YR=0,qR=1;var KR=class extends Ta{constructor(e){super({target:(e=e||{}).target,element:document.createElement("div"),render:e.render}),this.dragListenerKeys_=[],this.currentResolution_=void 0,this.direction_=YR,this.dragging_,this.heightLimit_=0,this.widthLimit_=0,this.startX_,this.startY_,this.thumbSize_=null,this.sliderInitialized_=!1,this.duration_=void 0!==e.duration?e.duration:200;const i=void 0!==e.className?e.className:"ol-zoomslider",n=document.createElement("button");n.setAttribute("type","button"),n.className=i+"-thumb "+To;const r=this.element;r.className=i+" "+To+" "+bo,r.appendChild(n),r.addEventListener(aa,this.handleDraggerStart_.bind(this),!1),r.addEventListener(oa,this.handleDraggerDrag_.bind(this),!1),r.addEventListener(la,this.handleDraggerEnd_.bind(this),!1),r.addEventListener(E,this.handleContainerClick_.bind(this),!1),n.addEventListener(E,t,!1)}setMap(t){super.setMap(t),t&&t.render()}initSlider_(){const t=this.element;let e=t.offsetWidth,i=t.offsetHeight;if(0===e&&0===i)return this.sliderInitialized_=!1;const n=getComputedStyle(t);e-=parseFloat(n.paddingRight)+parseFloat(n.paddingLeft),i-=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom);const r=t.firstElementChild,s=getComputedStyle(r),o=r.offsetWidth+parseFloat(s.marginRight)+parseFloat(s.marginLeft),a=r.offsetHeight+parseFloat(s.marginTop)+parseFloat(s.marginBottom);return this.thumbSize_=[o,a],e>i?(this.direction_=qR,this.widthLimit_=e-o):(this.direction_=YR,this.heightLimit_=i-a),this.sliderInitialized_=!0}handleContainerClick_(t){const e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),n=this.getResolutionForPosition_(i),r=e.getConstrainedZoom(e.getZoomForResolution(n));e.animateInternal({zoom:r,duration:this.duration_,easing:et})}handleDraggerStart_(t){if(!this.dragging_&&t.target===this.element.firstElementChild){const e=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=t.clientX-parseFloat(e.style.left),this.startY_=t.clientY-parseFloat(e.style.top),this.dragging_=!0,0===this.dragListenerKeys_.length){const t=this.handleDraggerDrag_,e=this.handleDraggerEnd_,i=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(A(i,oa,t,this),A(i,la,e,this))}}}handleDraggerDrag_(t){if(this.dragging_){const e=t.clientX-this.startX_,i=t.clientY-this.startY_,n=this.getRelativePosition_(e,i);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(t){if(this.dragging_){this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(N),this.dragListenerKeys_.length=0}}setThumbPosition_(t){const e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==qR?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"}getRelativePosition_(t,e){let i;return i=this.direction_===qR?t/this.widthLimit_:e/this.heightLimit_,ui(i,0,1)}getResolutionForPosition_(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)}getPositionForResolution_(t){return ui(1-this.getMap().getView().getValueForResolutionFunction()(t),0,1)}render(t){if(!t.frameState)return;if(!this.sliderInitialized_&&!this.initSlider_())return;const e=t.frameState.viewState.resolution;this.currentResolution_=e,this.setThumbPosition_(e)}};var HR=class extends Ta{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target}),this.extent=t.extent?t.extent:null;const e=void 0!==t.className?t.className:"ol-zoom-extent",i=void 0!==t.label?t.label:"E",n=void 0!==t.tipLabel?t.tipLabel:"Fit to extent",r=document.createElement("button");r.setAttribute("type","button"),r.title=n,r.appendChild("string"==typeof i?document.createTextNode(i):i),r.addEventListener(E,this.handleClick_.bind(this),!1);const s=e+" "+To+" "+bo,o=this.element;o.className=s,o.appendChild(r)}handleClick_(t){t.preventDefault(),this.handleZoomToExtent()}handleZoomToExtent(){const t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fitInternal(Ir(e))}},JR={};return JR.Collection=Y,JR.Collection.CollectionEvent=$,JR.DataTile=Ft,JR.DataTile.asArrayLike=Ct,JR.DataTile.asImageLike=Tt,JR.DataTile.toArray=Rt,JR.Disposable=n,JR.Feature=At,JR.Feature.createStyleFunction=Mt,JR.Geolocation=Wr,JR.Geolocation.GeolocationError=Vr,JR.Image=es,JR.Image.decode=ts,JR.Image.decodeFallback=Qr,JR.Image.listenImage=Hr,JR.Image.load=Jr,JR.ImageCanvas=is,JR.ImageTile=ns,JR.Kinetic=rs,JR.Map=Sl,JR.MapBrowserEvent=ra,JR.MapBrowserEventHandler=ca,JR.MapEvent=na,JR.Object=X,JR.Object.ObjectEvent=z,JR.Observable=G,JR.Observable.unByKey=k,JR.Overlay=Pl,JR.Tile=rt,JR.TileCache=kl,JR.TileQueue=Sa,JR.TileQueue.getTilePriority=Ea,JR.TileRange=Bl,JR.TileRange.createOrUpdate=jl,JR.VectorRenderTile=zl,JR.VectorTile=Xl,JR.View=mo,JR.View.createCenterConstraint=co,JR.View.createResolutionConstraint=uo,JR.View.createRotationConstraint=go,JR.View.isNoopAnimation=fo,JR.array={},JR.array.ascending=s,JR.array.binarySearch=r,JR.array.descending=o,JR.array.equals=c,JR.array.extend=h,JR.array.isSorted=u,JR.array.linearFindNearest=a,JR.array.remove=function(t,e){const i=t.indexOf(e),n=i>-1;return n&&t.splice(i,1),n},JR.array.reverseSubArray=l,JR.array.stableSort=function(t,e){const i=t.length,n=Array(t.length);let r;for(r=0;r
Vi.info||console.log(...t)},JR.console.setLevel=function(t){Wi=Vi[t]},JR.console.warn=Zi,JR.control={},JR.control.Attribution=Ca,JR.control.Control=Ta,JR.control.FullScreen=kR,JR.control.MousePosition=BR,JR.control.OverviewMap=XR,JR.control.Rotate=ba,JR.control.ScaleLine=$R,JR.control.Zoom=Ra,JR.control.ZoomSlider=KR,JR.control.ZoomToExtent=HR,JR.control.defaults={},JR.control.defaults.defaults=Pa,JR.coordinate={},JR.coordinate.add=Ci,JR.coordinate.closestOnCircle=bi,JR.coordinate.closestOnSegment=Ri,JR.coordinate.createStringXY=function(t){return function(e){return Di(e,t)}},JR.coordinate.degreesToStringHDMS=Pi,JR.coordinate.distance=Oi,JR.coordinate.equals=Ii,JR.coordinate.format=Fi,JR.coordinate.getWorldsAway=Gi,JR.coordinate.rotate=Li,JR.coordinate.scale=Mi,JR.coordinate.squaredDistance=Ai,JR.coordinate.squaredDistanceToSegment=Ni,JR.coordinate.toStringHDMS=function(t,e){return t?Pi("NS",t[1],e)+" "+Pi("EW",t[0],e):""},JR.coordinate.toStringXY=Di,JR.coordinate.wrapX=ki,JR.css={},JR.css.CLASS_COLLAPSED=Ro,JR.css.CLASS_CONTROL=bo,JR.css.CLASS_HIDDEN=So,JR.css.CLASS_SELECTABLE=Eo,JR.css.CLASS_UNSELECTABLE=To,JR.css.CLASS_UNSUPPORTED=Co,JR.css.getFontParameters=Io,JR.dom={},JR.dom.createCanvasContext2D=mt,JR.dom.outerHeight=xt,JR.dom.outerWidth=yt,JR.dom.releaseCanvas=_t,JR.dom.removeChildren=St,JR.dom.removeNode=wt,JR.dom.replaceChildren=Et,JR.dom.replaceNode=vt,JR.easing={},JR.easing.easeIn=tt,JR.easing.easeOut=et,JR.easing.inAndOut=it,JR.easing.linear=nt,JR.easing.upAndDown=function(t){return t<.5?it(2*t):1-it(2*(t-.5))},JR.events={},JR.events.Event=e,JR.events.Event.preventDefault=function(t){t.preventDefault()},JR.events.Event.stopPropagation=t,JR.events.SnapEvent={},JR.events.SnapEvent.SnapEvent=kx,JR.events.Target=x,JR.events.condition={},JR.events.condition.all=Da,JR.events.condition.altKeyOnly=ka,JR.events.condition.altShiftKeysOnly=Ga,JR.events.condition.always=Ua,JR.events.condition.click=function(t){return t.type==sa.CLICK},JR.events.condition.doubleClick=function(t){return t.type==sa.DBLCLICK},JR.events.condition.focus=ja,JR.events.condition.focusWithTabindex=Ba,JR.events.condition.mouseActionButton=za,JR.events.condition.mouseOnly=qa,JR.events.condition.never=Xa,JR.events.condition.noModifierKeys=Wa,JR.events.condition.penOnly=function(t){const e=t.originalEvent;return It(void 0!==e,"mapBrowserEvent must originate from a pointer event"),"pen"===e.pointerType},JR.events.condition.platformModifierKey=Za,JR.events.condition.platformModifierKeyOnly=function(t){const e=t.originalEvent;return!e.altKey&&(ct?e.metaKey:e.ctrlKey)&&!e.shiftKey},JR.events.condition.pointerMove=function(t){return"pointermove"==t.type},JR.events.condition.primaryAction=Ka,JR.events.condition.shiftKeyOnly=$a,JR.events.condition.singleClick=Va,JR.events.condition.targetNotEditable=Ya,JR.events.condition.touchOnly=function(t){const e=t.originalEvent;return It(void 0!==e,"mapBrowserEvent must originate from a pointer event"),"touch"===e.pointerType},JR.events.listen=A,JR.events.listenOnce=O,JR.events.unlistenByKey=N,JR.expr={},JR.expr.cpu={},JR.expr.cpu.buildExpression=bm,JR.expr.cpu.newEvaluationContext=Cm,JR.expr.expression={},JR.expr.expression.AnyType=Df,JR.expr.expression.BooleanType=Lf,JR.expr.expression.CallExpression=Vf,JR.expr.expression.ColorType=Of,JR.expr.expression.LiteralExpression=Xf,JR.expr.expression.NoneType=If,JR.expr.expression.NumberArrayType=Nf,JR.expr.expression.NumberType=Mf,JR.expr.expression.Ops=$f,JR.expr.expression.StringType=Af,JR.expr.expression.includesType=Bf,JR.expr.expression.isType=zf,JR.expr.expression.newParsingContext=Wf,JR.expr.expression.overlapsType=Uf,JR.expr.expression.parse=Zf,JR.expr.expression.typeName=jf,JR.expr.gpu={},JR.expr.gpu.PALETTE_TEXTURE_ARRAY=Ip,JR.expr.gpu.arrayToGlsl=wp,JR.expr.gpu.buildExpression=Lp,JR.expr.gpu.colorToGlsl=Sp,JR.expr.gpu.getStringNumberEquivalent=Cp,JR.expr.gpu.newCompilationContext=Pp,JR.expr.gpu.numberToGlsl=vp,JR.expr.gpu.stringToGlsl=bp,JR.expr.gpu.uniformNameForVariable=Rp,JR.extent={},JR.extent.applyTransform=De,JR.extent.approximatelyEquals=ue,JR.extent.boundingExtent=Ht,JR.extent.buffer=Jt,JR.extent.clone=Qt,JR.extent.closestSquaredDistanceXY=te,JR.extent.containsCoordinate=ee,JR.extent.containsExtent=ie,JR.extent.containsXY=ne,JR.extent.coordinateRelationship=re,JR.extent.createEmpty=se,JR.extent.createOrUpdate=oe,JR.extent.createOrUpdateEmpty=ae,JR.extent.createOrUpdateFromCoordinate=le,JR.extent.createOrUpdateFromCoordinates=function(t,e){return fe(ae(e),t)},JR.extent.createOrUpdateFromFlatCoordinates=he,JR.extent.createOrUpdateFromRings=function(t,e){return me(ae(e),t)},JR.extent.equals=ce,JR.extent.extend=de,JR.extent.extendCoordinate=ge,JR.extent.extendCoordinates=fe,JR.extent.extendFlatCoordinates=pe,JR.extent.extendRings=me,JR.extent.extendXY=_e,JR.extent.forEachCorner=ye,JR.extent.getArea=xe,JR.extent.getBottomLeft=ve,JR.extent.getBottomRight=we,JR.extent.getCenter=Se,JR.extent.getCorner=Ee,JR.extent.getEnlargedArea=function(t,e){const i=Math.min(t[0],e[0]),n=Math.min(t[1],e[1]);return(Math.max(t[2],e[2])-i)*(Math.max(t[3],e[3])-n)},JR.extent.getForViewAndSize=Te,JR.extent.getHeight=be,JR.extent.getIntersection=Re,JR.extent.getIntersectionArea=function(t,e){return xe(Re(t,e))},JR.extent.getMargin=function(t){return Ie(t)+be(t)},JR.extent.getRotatedViewport=Ce,JR.extent.getSize=function(t){return[t[2]-t[0],t[3]-t[1]]},JR.extent.getTopLeft=Pe,JR.extent.getTopRight=Fe,JR.extent.getWidth=Ie,JR.extent.intersects=Le,JR.extent.intersectsSegment=Ne,JR.extent.isEmpty=Me,JR.extent.returnOrUpdate=Ae,JR.extent.scaleFromCenter=Oe,JR.extent.wrapAndSliceX=Ge,JR.extent.wrapX=ke,JR.featureloader={},JR.featureloader.loadFeaturesXhr=$l,JR.featureloader.setWithCredentials=function(t){Zl=t},JR.featureloader.xhr=Yl,JR.format={},JR.format.EsriJSON=av,JR.format.Feature=$x,JR.format.Feature.createGeometry=Jx,JR.format.Feature.createRenderFeature=Hx,JR.format.Feature.transformExtentWithOptions=qx,JR.format.Feature.transformGeometryWithOptions=Yx,JR.format.GML=Dv,JR.format.GML2=Iv,JR.format.GML3=Ov,JR.format.GML32=Gv,JR.format.GMLBase=dv,JR.format.GMLBase.GMLNS=hv,JR.format.GPX=yw,JR.format.GeoJSON=ww,JR.format.IGC=Pw,JR.format.IIIFInfo=Eu,JR.format.JSONFeature=tv,JR.format.KML=FE,JR.format.KML.getDefaultFillStyle=function(){return Ww},JR.format.KML.getDefaultImageStyle=function(){return $w},JR.format.KML.getDefaultStrokeStyle=function(){return qw},JR.format.KML.getDefaultStyle=function(){return Hw},JR.format.KML.getDefaultStyleArray=function(){return Qw},JR.format.KML.getDefaultTextStyle=function(){return Kw},JR.format.KML.readFlatCoordinates=rS,JR.format.MVT=nT,JR.format.OSMXML=hT,JR.format.OWS=PT,JR.format.Polyline=GT,JR.format.Polyline.decodeDeltas=IT,JR.format.Polyline.decodeFloats=MT,JR.format.Polyline.decodeSignedIntegers=OT,JR.format.Polyline.decodeUnsignedIntegers=DT,JR.format.Polyline.encodeDeltas=FT,JR.format.Polyline.encodeFloats=LT,JR.format.Polyline.encodeSignedIntegers=AT,JR.format.Polyline.encodeUnsignedInteger=kT,JR.format.Polyline.encodeUnsignedIntegers=NT,JR.format.TextFeature=Ew,JR.format.TopoJSON=WT,JR.format.WFS=hb,JR.format.WFS.writeFilter=function(t,e){const i=ng(lb(e=e||"1.1.0"),"Filter"),n={node:i};return Object.assign(n,{version:e,filter:t}),ZC(i,t,[n]),i},JR.format.WKB=Eb,JR.format.WKT=Xb,JR.format.WMSCapabilities=gR,JR.format.WMSGetFeatureInfo=fR,JR.format.WMTSCapabilities=IR,JR.format.XML=cT,JR.format.XMLFeature=lv,JR.format.filter={},JR.format.filter.And=YT,JR.format.filter.Bbox=qT,JR.format.filter.Comparison=tC,JR.format.filter.ComparisonBinary=iC,JR.format.filter.Contains=HT,JR.format.filter.DWithin=JT,JR.format.filter.Disjoint=QT,JR.format.filter.During=eC,JR.format.filter.EqualTo=nC,JR.format.filter.Filter=ZT,JR.format.filter.GreaterThan=rC,JR.format.filter.GreaterThanOrEqualTo=sC,JR.format.filter.Intersects=oC,JR.format.filter.IsBetween=aC,JR.format.filter.IsLike=lC,JR.format.filter.IsNull=hC,JR.format.filter.LessThan=cC,JR.format.filter.LessThanOrEqualTo=uC,JR.format.filter.LogicalNary=$T,JR.format.filter.Not=dC,JR.format.filter.NotEqualTo=gC,JR.format.filter.Or=fC,JR.format.filter.ResourceId=pC,JR.format.filter.Spatial=KT,JR.format.filter.Within=mC,JR.format.filter.and=_C,JR.format.filter.bbox=yC,JR.format.filter.between=function(t,e,i){return new aC(t,e,i)},JR.format.filter.contains=function(t,e,i){return new HT(t,e,i)},JR.format.filter.disjoint=function(t,e,i){return new QT(t,e,i)},JR.format.filter.during=function(t,e,i){return new eC(t,e,i)},JR.format.filter.dwithin=function(t,e,i,n,r){return new JT(t,e,i,n,r)},JR.format.filter.equalTo=function(t,e,i){return new nC(t,e,i)},JR.format.filter.greaterThan=function(t,e){return new rC(t,e)},JR.format.filter.greaterThanOrEqualTo=function(t,e){return new sC(t,e)},JR.format.filter.intersects=function(t,e,i){return new oC(t,e,i)},JR.format.filter.isNull=function(t){return new hC(t)},JR.format.filter.lessThan=function(t,e){return new cC(t,e)},JR.format.filter.lessThanOrEqualTo=function(t,e){return new uC(t,e)},JR.format.filter.like=function(t,e,i,n,r,s){return new lC(t,e,i,n,r,s)},JR.format.filter.not=function(t){return new dC(t)},JR.format.filter.notEqualTo=function(t,e,i){return new gC(t,e,i)},JR.format.filter.or=function(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(fC,e))},JR.format.filter.resourceId=function(t){return new pC(t)},JR.format.filter.within=function(t,e,i){return new mC(t,e,i)},JR.format.xlink={},JR.format.xlink.readHref=dT,JR.format.xsd={},JR.format.xsd.readBoolean=gv,JR.format.xsd.readBooleanString=fv,JR.format.xsd.readDateTime=pv,JR.format.xsd.readDecimal=mv,JR.format.xsd.readDecimalString=_v,JR.format.xsd.readNonNegativeIntegerString=xv,JR.format.xsd.readPositiveInteger=yv,JR.format.xsd.readString=vv,JR.format.xsd.writeBooleanTextNode=wv,JR.format.xsd.writeCDATASection=Sv,JR.format.xsd.writeDateTimeTextNode=Ev,JR.format.xsd.writeDecimalTextNode=Tv,JR.format.xsd.writeNonNegativeIntegerTextNode=Cv,JR.format.xsd.writeStringTextNode=bv,JR.functions={},JR.functions.FALSE=g,JR.functions.TRUE=d,JR.functions.VOID=f,JR.functions.memoizeOne=p,JR.functions.toPromise=m,JR.geom={},JR.geom.Circle=vc,JR.geom.Geometry=Fn,JR.geom.GeometryCollection=Ec,JR.geom.LineString=Fc,JR.geom.LinearRing=sr,JR.geom.MultiLineString=Lc,JR.geom.MultiPoint=Ac,JR.geom.MultiPolygon=Dc,JR.geom.Point=ar,JR.geom.Polygon=Pr,JR.geom.Polygon.circular=Fr,JR.geom.Polygon.fromCircle=Lr,JR.geom.Polygon.fromExtent=Ir,JR.geom.Polygon.makeRegular=Mr,JR.geom.SimpleGeometry=An,JR.geom.SimpleGeometry.getLayoutForStride=In,JR.geom.SimpleGeometry.getStrideForLayout=Ln,JR.geom.SimpleGeometry.transformGeom2D=Mn,JR.geom.flat={},JR.geom.flat.area={},JR.geom.flat.area.linearRing=er,JR.geom.flat.area.linearRings=ir,JR.geom.flat.area.linearRingss=nr,JR.geom.flat.center={},JR.geom.flat.center.linearRingss=Oc,JR.geom.flat.closest={},JR.geom.flat.closest.arrayMaxSquaredDelta=Dn,JR.geom.flat.closest.assignClosestArrayPoint=jn,JR.geom.flat.closest.assignClosestMultiArrayPoint=Bn,JR.geom.flat.closest.assignClosestPoint=Gn,JR.geom.flat.closest.maxSquaredDelta=Nn,JR.geom.flat.closest.multiArrayMaxSquaredDelta=kn,JR.geom.flat.contains={},JR.geom.flat.contains.linearRingContainsExtent=lr,JR.geom.flat.contains.linearRingContainsXY=hr,JR.geom.flat.contains.linearRingsContainsXY=cr,JR.geom.flat.contains.linearRingssContainsXY=ur,JR.geom.flat.deflate={},JR.geom.flat.deflate.deflateCoordinate=Un,JR.geom.flat.deflate.deflateCoordinates=zn,JR.geom.flat.deflate.deflateCoordinatesArray=Xn,JR.geom.flat.deflate.deflateMultiCoordinatesArray=Vn,JR.geom.flat.flip={},JR.geom.flat.flip.flipXY=Zx,JR.geom.flat.geodesic={},JR.geom.flat.geodesic.greatCircleArc=function(t,e,i,n,r,s){const o=tn("EPSG:4326"),a=Math.cos(mi(e)),l=Math.sin(mi(e)),h=Math.cos(mi(n)),c=Math.sin(mi(n)),u=Math.cos(mi(i-t)),d=Math.sin(mi(i-t)),g=l*c+a*h*u;return Ry((function(e){if(1<=g)return[i,n];const r=e*Math.acos(g),s=Math.cos(r),o=Math.sin(r),f=d*h,p=a*c-l*h*u,m=Math.atan2(f,p),_=Math.asin(l*s+a*o*Math.cos(m));return[pi(mi(t)+Math.atan2(Math.sin(m)*o*a,s-l*Math.sin(_))),pi(_)]}),cn(o,r),s)},JR.geom.flat.geodesic.meridian=Py,JR.geom.flat.geodesic.parallel=Fy,JR.geom.flat.inflate={},JR.geom.flat.inflate.inflateCoordinates=Jn,JR.geom.flat.inflate.inflateCoordinatesArray=Qn,JR.geom.flat.inflate.inflateMultiCoordinatesArray=tr,JR.geom.flat.interiorpoint={},JR.geom.flat.interiorpoint.getInteriorPointOfArray=dr,JR.geom.flat.interiorpoint.getInteriorPointsOfMultiArray=gr,JR.geom.flat.interpolate={},JR.geom.flat.interpolate.interpolatePoint=Tc,JR.geom.flat.interpolate.lineStringCoordinateAtM=Cc,JR.geom.flat.interpolate.lineStringsCoordinateAtM=bc,JR.geom.flat.intersectsextent={},JR.geom.flat.intersectsextent.intersectsLineString=pr,JR.geom.flat.intersectsextent.intersectsLineStringArray=mr,JR.geom.flat.intersectsextent.intersectsLinearRing=_r,JR.geom.flat.intersectsextent.intersectsLinearRingArray=yr,JR.geom.flat.intersectsextent.intersectsLinearRingMultiArray=xr,JR.geom.flat.length={},JR.geom.flat.length.lineStringLength=Rc,JR.geom.flat.length.linearRingLength=function(t,e,i,n){let r=Rc(t,e,i,n);const s=t[i-n]-t[e],o=t[i-n+1]-t[e+1];return r+=Math.sqrt(s*s+o*o),r},JR.geom.flat.orient={},JR.geom.flat.orient.inflateEnds=br,JR.geom.flat.orient.linearRingIsClockwise=wr,JR.geom.flat.orient.linearRingsAreOriented=Sr,JR.geom.flat.orient.linearRingssAreOriented=Er,JR.geom.flat.orient.orientLinearRings=Tr,JR.geom.flat.orient.orientLinearRingsArray=Cr,JR.geom.flat.reverse={},JR.geom.flat.reverse.coordinates=vr,JR.geom.flat.segments={},JR.geom.flat.segments.forEach=fr,JR.geom.flat.simplify={},JR.geom.flat.simplify.douglasPeucker=Wn,JR.geom.flat.simplify.douglasPeuckerArray=Zn,JR.geom.flat.simplify.douglasPeuckerMultiArray=function(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;l3&&!!er(t,e,i,n)},JR.geom.flat.transform={},JR.geom.flat.transform.rotate=Cn,JR.geom.flat.transform.scale=bn,JR.geom.flat.transform.transform2D=Tn,JR.geom.flat.transform.translate=Rn,JR.has={},JR.has.CREATE_IMAGE_BITMAP=ft,JR.has.DEVICE_PIXEL_RATIO=ut,JR.has.FIREFOX=ot,JR.has.IMAGE_DECODE=gt,JR.has.MAC=ct,JR.has.PASSIVE_EVENT_LISTENERS=pt,JR.has.SAFARI=at,JR.has.SAFARI_BUG_237906=lt,JR.has.WEBKIT=ht,JR.has.WORKER_OFFSCREEN_CANVAS=dt,JR.interaction={},JR.interaction.DblClickDragZoom=Vy,JR.interaction.DoubleClickZoom=Aa,JR.interaction.DragAndDrop=$y,JR.interaction.DragAndDrop.DragAndDropEvent=Zy,JR.interaction.DragBox=sl,JR.interaction.DragBox.DragBoxEvent=rl,JR.interaction.DragPan=Ha,JR.interaction.DragRotate=Ja,JR.interaction.DragRotateAndZoom=Yy,JR.interaction.DragZoom=ol,JR.interaction.Draw=hx,JR.interaction.Draw.DrawEvent=Jy,JR.interaction.Draw.createBox=function(){return function(t,e,i){const n=Ht([t[0],t[t.length-1]].map((function(t){return _n(t,i)}))),r=[[ve(n),we(n),Fe(n),Pe(n),ve(n)]];e?e.setCoordinates(r):e=new Pr(r);const s=pn();return s&&e.transform(i,s),e}},JR.interaction.Draw.createRegularPolygon=function(t,e){return function(i,n,r){const s=_n(i[0],r),o=_n(i[i.length-1],r),a=Math.sqrt(Ai(s,o));n=n||Lr(new vc(s),t);let l=e;if(!e&&0!==e){const t=o[0]-s[0],e=o[1]-s[1];l=Math.atan2(e,t)}Mr(n,s,a,l);const h=pn();return h&&n.transform(r,h),n}},JR.interaction.Extent=mx,JR.interaction.Extent.ExtentEvent=ux,JR.interaction.Interaction=Ma,JR.interaction.Interaction.pan=Ia,JR.interaction.Interaction.zoomByDelta=La,JR.interaction.KeyboardPan=ul,JR.interaction.KeyboardZoom=dl,JR.interaction.Link=vx,JR.interaction.Modify=Ix,JR.interaction.Modify.ModifyEvent=Cx,JR.interaction.MouseWheelZoom=gl,JR.interaction.PinchRotate=fl,JR.interaction.PinchZoom=pl,JR.interaction.Pointer=Na,JR.interaction.Pointer.centroid=Oa,JR.interaction.Select=Nx,JR.interaction.Select.SelectEvent=Mx,JR.interaction.Snap=Bx,JR.interaction.Translate=Wx,JR.interaction.Translate.TranslateEvent=Vx,JR.interaction.defaults={},JR.interaction.defaults.defaults=ml,JR.layer={},JR.layer.Base=Us,JR.layer.BaseImage=dd,JR.layer.BaseTile=wd,JR.layer.BaseVector=Qm,JR.layer.Graticule=My,JR.layer.Group=ia,JR.layer.Group.GroupEvent=Qo,JR.layer.Heatmap=ky,JR.layer.Image=yd,JR.layer.Layer=yo,JR.layer.Layer.inView=_o,JR.layer.Tile=Ed,JR.layer.Vector=by,JR.layer.VectorImage=Gy,JR.layer.VectorTile=jy,JR.layer.WebGLPoints=By,JR.layer.WebGLTile=Xy,JR.loadingstrategy={},JR.loadingstrategy.all=ql,JR.loadingstrategy.bbox=function(t,e){return[t]},JR.loadingstrategy.tile=function(t){return function(e,i,n){const r=t.getZForResolution(wn(i,n)),s=t.getTileRangeForExtentAndZ(xn(e,n),r),o=[],a=[r,0,0];for(a[1]=s.minX;a[1]<=s.maxX;++a[1])for(a[2]=s.minY;a[2]<=s.maxY;++a[2])o.push(yn(t.getTileCoordExtent(a),n));return o}},JR.math={},JR.math.ceil=Si,JR.math.clamp=ui,JR.math.floor=wi,JR.math.lerp=yi,JR.math.modulo=_i,JR.math.round=vi,JR.math.solveLinearSystem=fi,JR.math.squaredDistance=gi,JR.math.squaredSegmentDistance=di,JR.math.toDegrees=pi,JR.math.toFixed=xi,JR.math.toRadians=mi,JR.net={},JR.net.ClientError=Jl,JR.net.ResponseError=Hl,JR.net.getJSON=Ql,JR.net.jsonp=Kl,JR.net.overrideXHR=function(t){"undefined"!=typeof XMLHttpRequest&&(Wl=XMLHttpRequest),global.XMLHttpRequest=t},JR.net.resolveUrl=th,JR.net.restoreXHR=function(){global.XMLHttpRequest=Wl},JR.obj={},JR.obj.clear=_,JR.obj.isEmpty=y,JR.proj={},JR.proj.Projection=ze,JR.proj.Units={},JR.proj.Units.METERS_PER_UNIT=Ue,JR.proj.Units.fromCode=Be,JR.proj.addCommon=En,JR.proj.addCoordinateTransforms=an,JR.proj.addEquivalentProjections=nn,JR.proj.addEquivalentTransforms=rn,JR.proj.addProjection=Ji,JR.proj.addProjections=Qi,JR.proj.clearAllProjections=function(){ri(),li()},JR.proj.clearUserProjection=function(){gn=null},JR.proj.cloneTransform=Ki,JR.proj.createProjection=sn,JR.proj.createSafeCoordinateTransform=Sn,JR.proj.createTransformFromCoordinateTransform=on,JR.proj.disableCoordinateWarning=qi,JR.proj.epsg3857={},JR.proj.epsg3857.EXTENT=We,JR.proj.epsg3857.HALF_SIZE=Ve,JR.proj.epsg3857.MAX_SAFE_Y=$e,JR.proj.epsg3857.PROJECTIONS=qe,JR.proj.epsg3857.RADIUS=Xe,JR.proj.epsg3857.WORLD_EXTENT=Ze,JR.proj.epsg3857.fromEPSG4326=Ke,JR.proj.epsg3857.toEPSG4326=He,JR.proj.epsg4326={},JR.proj.epsg4326.EXTENT=Qe,JR.proj.epsg4326.METERS_PER_UNIT=ti,JR.proj.epsg4326.PROJECTIONS=ii,JR.proj.epsg4326.RADIUS=Je,JR.proj.equivalent=ln,JR.proj.fromLonLat=function(t,e){return qi(),un(t,"EPSG:4326",void 0!==e?e:"EPSG:3857")},JR.proj.fromUserCoordinate=_n,JR.proj.fromUserExtent=xn,JR.proj.fromUserResolution=wn,JR.proj.get=tn,JR.proj.getPointResolution=en,JR.proj.getTransform=cn,JR.proj.getTransformFromProjections=hn,JR.proj.getUserProjection=pn,JR.proj.identityTransform=Hi,JR.proj.proj4={},JR.proj.proj4.epsgLookupMapTiler=function(t){return async function(e){const i=await fetch(`https://api.maptiler.com/coordinates/search/code:${e}.json?transformations=true&exports=true&key=${t}`);if(!i.ok)throw new Error(`Unexpected response from maptiler.com: ${i.status}`);return i.json().then((t=>{const i=t.results;if(i?.length>0){const t=i.filter((t=>"EPSG"===t.id?.authority&&t.id?.code===e))[0];if(t){const e=t.transformations;if(e?.length>0){const i=t.default_transformation;if(e.filter((t=>t.id?.authority===i?.authority&&t.id?.code===i?.code&&0===t.grids?.length)).length>0)return t.exports?.proj4;const n=e.filter((t=>0===t.grids?.length&&"EPSG"===t.target_crs?.authority&&4326===t.target_crs?.code&&!1===t.deprecated&&!0===t.usable)).sort(((t,e)=>t.accuracy-e.accuracy))[0]?.exports?.proj4;if(n)return n}return t.exports?.proj4}}}))}},JR.proj.proj4.fromEPSGCode=async function(t){"string"==typeof t&&(t=parseInt(t.split(":").pop(),10));const e=Ey;if(!e)throw new Error("Proj4 must be registered first with register(proj4)");const i="EPSG:"+t;return e.defs(i)||(e.defs(i,await Cy(t)),Ty(e)),tn(i)},JR.proj.proj4.getEPSGLookup=function(){return Cy},JR.proj.proj4.isRegistered=function(){return!!Ey},JR.proj.proj4.register=Ty,JR.proj.proj4.setEPSGLookup=function(t){Cy=t},JR.proj.proj4.unregister=function(){Ey=null},JR.proj.projections={},JR.proj.projections.add=oi,JR.proj.projections.clear=ri,JR.proj.projections.get=si,JR.proj.setUserProjection=fn,JR.proj.toLonLat=function(t,e){const i=un(t,void 0!==e?e:"EPSG:3857","EPSG:4326"),n=i[0];return(n<-180||n>180)&&(i[0]=_i(n+180,360)-180),i},JR.proj.toUserCoordinate=mn,JR.proj.toUserExtent=yn,JR.proj.toUserResolution=vn,JR.proj.transform=un,JR.proj.transformExtent=dn,JR.proj.transformWithProjections=function(t,e,i){return hn(e,i)(t)},JR.proj.transforms={},JR.proj.transforms.add=hi,JR.proj.transforms.clear=li,JR.proj.transforms.get=ci,JR.proj.transforms.remove=function(t,e){const i=t.getCode(),n=e.getCode(),r=ai[i][n];return delete ai[i][n],y(ai[i])&&delete ai[i],r},JR.proj.useGeographic=function(){fn("EPSG:4326")},JR.render={},JR.render.Box=Qa,JR.render.Event=wo,JR.render.Feature=Bc,JR.render.Feature.toFeature=function(t,e){const i=t.getId(),n=jc(t),r=t.getProperties(),s=new At;return void 0!==e&&s.setGeometryName(e),s.setGeometry(n),void 0!==i&&s.setId(i),s.setProperties(r,!0),s},JR.render.Feature.toGeometry=jc,JR.render.VectorContext=eh,JR.render.canvas={},JR.render.canvas.Builder=V_,JR.render.canvas.BuilderGroup=Q_,JR.render.canvas.Executor=cy,JR.render.canvas.ExecutorGroup=fy,JR.render.canvas.ExecutorGroup.getPixelIndexArray=gy,JR.render.canvas.ImageBuilder=W_,JR.render.canvas.Immediate=ih,JR.render.canvas.Instruction={},JR.render.canvas.Instruction.beginPathInstruction=z_,JR.render.canvas.Instruction.closePathInstruction=X_,JR.render.canvas.Instruction.fillInstruction=B_,JR.render.canvas.Instruction.strokeInstruction=U_,JR.render.canvas.LineStringBuilder=Z_,JR.render.canvas.PolygonBuilder=$_,JR.render.canvas.TextBuilder=H_,JR.render.canvas.TextBuilder.TEXT_ALIGN=K_,JR.render.canvas.checkedFonts=Uo,JR.render.canvas.defaultFillStyle=Mo,JR.render.canvas.defaultFont=Lo,JR.render.canvas.defaultLineCap=Ao,JR.render.canvas.defaultLineDash=Oo,JR.render.canvas.defaultLineDashOffset=0,JR.render.canvas.defaultLineJoin=No,JR.render.canvas.defaultLineWidth=1,JR.render.canvas.defaultMiterLimit=Do,JR.render.canvas.defaultPadding=Bo,JR.render.canvas.defaultStrokeStyle=ko,JR.render.canvas.defaultTextAlign=Go,JR.render.canvas.defaultTextBaseline=jo,JR.render.canvas.drawImageOrLabel=Ho,JR.render.canvas.getTextDimensions=Ko,JR.render.canvas.hitdetect={},JR.render.canvas.hitdetect.HIT_DETECT_RESOLUTION=py,JR.render.canvas.hitdetect.createHitDetectionImageData=my,JR.render.canvas.hitdetect.hitDetect=_y,JR.render.canvas.measureAndCacheTextWidth=qo,JR.render.canvas.measureTextHeight=Zo,JR.render.canvas.measureTextWidth=Yo,JR.render.canvas.registerFont=Wo,JR.render.canvas.rotateAtOffset=function(t,e,i,n){0!==e&&(t.translate(i,n),t.rotate(e),t.translate(-i,-n))},JR.render.canvas.style={},JR.render.canvas.style.buildRuleSet=Am,JR.render.canvas.style.buildStyle=Om,JR.render.canvas.style.flatStylesToStyleFunction=Mm,JR.render.canvas.style.rulesToStyleFunction=Lm,JR.render.canvas.textHeights=Vo,JR.render.getRenderPixel=function(t,e){return Bt(t.inversePixelTransform,e.slice(0))},JR.render.getVectorContext=ch,JR.render.toContext=function(t,e){const i=t.canvas,n=(e=e||{}).pixelRatio||ut,r=e.size;r&&(i.width=r[0]*n,i.height=r[1]*n,i.style.width=r[0]+"px",i.style.height=r[1]+"px");const s=[0,0,i.width,i.height],o=zt([1,0,0,1,0,0],n,n);return new ih(t,n,s,o,0)},JR.render.webgl={},JR.render.webgl.MixedGeometryBatch=Bp,JR.render.webgl.VectorStyleRenderer=w_,JR.render.webgl.renderinstructions={},JR.render.webgl.renderinstructions.generateLineStringRenderInstructions=h_,JR.render.webgl.renderinstructions.generatePointRenderInstructions=l_,JR.render.webgl.renderinstructions.generatePolygonRenderInstructions=c_,JR.render.webgl.renderinstructions.getCustomAttributesSize=a_,JR.render.webgl.utils={},JR.render.webgl.utils.LINESTRING_ANGLE_COSINE_CUTOFF=Ef,JR.render.webgl.utils.colorDecodeId=Pf,JR.render.webgl.utils.colorEncodeId=Rf,JR.render.webgl.utils.getBlankImageData=function(){const t=document.createElement("canvas").getContext("2d").createImageData(1,1);return t.data[0]=255,t.data[1]=255,t.data[2]=255,t.data[3]=255,t},JR.render.webgl.utils.writeLineSegmentToBuffers=function(t,e,i,n,r,s,o,a,l,h,c){const u=8+a.length,d=s.length/u,g=[t[e+0],t[e+1]],f=[t[i],t[i+1]],p=Bt(l,[...g]),m=Bt(l,[...f]);function _(t,e,i){const n=Math.sqrt((e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])),r=[(e[0]-t[0])/n,(e[1]-t[1])/n],s=[-r[1],r[0]],o=Math.sqrt((i[0]-t[0])*(i[0]-t[0])+(i[1]-t[1])*(i[1]-t[1])),a=[(i[0]-t[0])/o,(i[1]-t[1])/o],l=0===n||0===o?0:Math.acos(ui(a[0]*r[0]+a[1]*r[1],-1,1));return a[0]*s[0]+a[1]*s[1]>0?l:2*Math.PI-l}let y=-1,x=-1,v=c;const w=null!==r;if(null!==n){y=_(p,m,Bt(l,[...[t[n],t[n+1]]])),Math.cos(y)<=Ef&&(v+=Math.tan((y-Math.PI)/2))}if(w){x=_(m,p,Bt(l,[...[t[r],t[r+1]]])),Math.cos(x)<=Ef&&(v+=Math.tan((Math.PI-x)/2))}function S(t,e){return 0===e?1e4*t:Math.sign(e)*(1e4*t+Math.abs(e))}return s.push(g[0],g[1],f[0],f[1],y,x,h,S(0,c)),s.push(...a),s.push(g[0],g[1],f[0],f[1],y,x,h,S(1,c)),s.push(...a),s.push(g[0],g[1],f[0],f[1],y,x,h,S(2,c)),s.push(...a),s.push(g[0],g[1],f[0],f[1],y,x,h,S(3,c)),s.push(...a),o.push(d,d+1,d+2,d+1,d+3,d+2),{length:h+Math.sqrt((m[0]-p[0])*(m[0]-p[0])+(m[1]-p[1])*(m[1]-p[1])),angle:v}},JR.render.webgl.utils.writePointFeatureToBuffers=function(t,e,i,n,r,s){const o=3+r,a=t[e+0],l=t[e+1],h=Tf;h.length=r;for(let i=0;i1?"projection"in e?i.TileMatrixSetLink.findIndex((function(t){const i=n.find((function(e){return e.Identifier==t.TileMatrixSet})).SupportedCRS,r=tn(i),s=tn(e.projection);return r&&s?ln(r,s):i==e.projection})):i.TileMatrixSetLink.findIndex((function(t){return t.TileMatrixSet==e.matrixSet})):0,r<0&&(r=0);const s=i.TileMatrixSetLink[r].TileMatrixSet,o=i.TileMatrixSetLink[r].TileMatrixSetLimits;let a=i.Format[0];"format"in e&&(a=e.format),r=i.Style.findIndex((function(t){return"style"in e?t.Title==e.style:t.isDefault})),r<0&&(r=0);const l=i.Style[r].Identifier,h={};"Dimension"in i&&i.Dimension.forEach((function(t,e,i){const n=t.Identifier;let r=t.Default;void 0===r&&(r=t.Value[0]),h[n]=r}));const c=t.Contents.TileMatrixSet.find((function(t){return t.Identifier==s}));let u;const d=c.SupportedCRS;if(d&&(u=tn(d)),"projection"in e){const t=tn(e.projection);t&&(u&&!ln(t,u)||(u=t))}let g=!1;const f="ne"==u.getAxisOrientation().substr(0,2);let p=c.TileMatrix[0],m={MinTileCol:0,MinTileRow:0,MaxTileCol:p.MatrixWidth-1,MaxTileRow:p.MatrixHeight-1};if(o){m=o[o.length-1];const t=c.TileMatrix.find((t=>t.Identifier===m.TileMatrix||c.Identifier+":"+t.Identifier===m.TileMatrix));t&&(p=t)}const _=28e-5*p.ScaleDenominator/u.getMetersPerUnit(),y=f?[p.TopLeftCorner[1],p.TopLeftCorner[0]]:p.TopLeftCorner,x=p.TileWidth*_,v=p.TileHeight*_;let w=c.BoundingBox;w&&f&&(w=[w[1],w[0],w[3],w[2]]);let S=[y[0]+x*m.MinTileCol,y[1]-v*(1+m.MaxTileRow),y[0]+x*(1+m.MaxTileCol),y[1]-v*m.MinTileRow];if(void 0!==w&&!ie(w,S)){const t=i.WGS84BoundingBox,e=tn("EPSG:4326").getExtent();if(S=w,t)g=t[0]===e[0]&&t[2]===e[2];else{const t=dn(w,c.SupportedCRS,"EPSG:4326");g=t[0]-1e-10<=e[0]&&t[2]+1e-10>=e[2]}}const E=Lh(c,S,o),T=[];let C=e.requestEncoding;if(C=void 0!==C?C:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata){const e=t.OperationsMetadata.GetTile.DCP.HTTP.Get;for(let t=0,i=e.length;t{const n=t.toString();if(!i.containsKey(n)){const r=e(t);i.set(n,r)}a.push(i.get(n))})),a}},JR.source.static={},JR.source.static.createLoader=Xu,JR.source.wms={},JR.source.wms.DEFAULT_VERSION=Wu,JR.source.wms.createLoader=Ku,JR.source.wms.getFeatureInfoUrl=Hu,JR.source.wms.getImageSrc=Yu,JR.source.wms.getLegendUrl=Ju,JR.source.wms.getRequestParams=qu,JR.source.wms.getRequestUrl=$u,JR.sphere={},JR.sphere.DEFAULT_RADIUS=ji,JR.sphere.getArea=function t(e,i){const n=(i=i||{}).radius||ji,r=i.projection||"EPSG:3857",s=e.getType();"GeometryCollection"!==s&&(e=e.clone().transform(r,"EPSG:4326"));let o,a,l,h,c,u,d=0;switch(s){case"Point":case"MultiPoint":case"LineString":case"MultiLineString":case"LinearRing":break;case"Polygon":for(o=e.getCoordinates(),d=Math.abs(zi(o[0],n)),l=1,h=o.length;l} haystack Items to search through.\n * @param {*} needle The item to look for.\n * @param {Function} [comparator] Comparator function.\n * @return {number} The index of the item if found, -1 if not.\n */\nexport function binarySearch(haystack, needle, comparator) {\n let mid, cmp;\n comparator = comparator || ascending;\n let low = 0;\n let high = haystack.length;\n let found = false;\n\n while (low < high) {\n /* Note that \"(low + high) >>> 1\" may overflow, and results in a typecast\n * to double (which gives the wrong results). */\n mid = low + ((high - low) >> 1);\n cmp = +comparator(haystack[mid], needle);\n\n if (cmp < 0.0) {\n /* Too low. */\n low = mid + 1;\n } else {\n /* Key found or too high */\n high = mid;\n found = !cmp;\n }\n }\n\n /* Key not found. */\n return found ? low : ~low;\n}\n\n/**\n * Compare function sorting arrays in ascending order. Safe to use for numeric values.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is less than, equal to, or greater than the second.\n */\nexport function ascending(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\n/**\n * Compare function sorting arrays in descending order. Safe to use for numeric values.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is greater than, equal to, or less than the second.\n */\nexport function descending(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n}\n\n/**\n * {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution} can use a function\n * of this type to determine which nearest resolution to use.\n *\n * This function takes a `{number}` representing a value between two array entries,\n * a `{number}` representing the value of the nearest higher entry and\n * a `{number}` representing the value of the nearest lower entry\n * as arguments and returns a `{number}`. If a negative number or zero is returned\n * the lower value will be used, if a positive number is returned the higher value\n * will be used.\n * @typedef {function(number, number, number): number} NearestDirectionFunction\n * @api\n */\n\n/**\n * @param {Array} arr Array in descending order.\n * @param {number} target Target.\n * @param {number|NearestDirectionFunction} direction\n * 0 means return the nearest,\n * > 0 means return the largest nearest,\n * < 0 means return the smallest nearest.\n * @return {number} Index.\n */\nexport function linearFindNearest(arr, target, direction) {\n if (arr[0] <= target) {\n return 0;\n }\n\n const n = arr.length;\n if (target <= arr[n - 1]) {\n return n - 1;\n }\n\n if (typeof direction === 'function') {\n for (let i = 1; i < n; ++i) {\n const candidate = arr[i];\n if (candidate === target) {\n return i;\n }\n if (candidate < target) {\n if (direction(target, arr[i - 1], candidate) > 0) {\n return i - 1;\n }\n return i;\n }\n }\n return n - 1;\n }\n\n if (direction > 0) {\n for (let i = 1; i < n; ++i) {\n if (arr[i] < target) {\n return i - 1;\n }\n }\n return n - 1;\n }\n\n if (direction < 0) {\n for (let i = 1; i < n; ++i) {\n if (arr[i] <= target) {\n return i;\n }\n }\n return n - 1;\n }\n\n for (let i = 1; i < n; ++i) {\n if (arr[i] == target) {\n return i;\n }\n if (arr[i] < target) {\n if (arr[i - 1] - target < target - arr[i]) {\n return i - 1;\n }\n return i;\n }\n }\n return n - 1;\n}\n\n/**\n * @param {Array<*>} arr Array.\n * @param {number} begin Begin index.\n * @param {number} end End index.\n */\nexport function reverseSubArray(arr, begin, end) {\n while (begin < end) {\n const tmp = arr[begin];\n arr[begin] = arr[end];\n arr[end] = tmp;\n ++begin;\n --end;\n }\n}\n\n/**\n * @param {Array} arr The array to modify.\n * @param {!Array|VALUE} data The elements or arrays of elements to add to arr.\n * @template VALUE\n */\nexport function extend(arr, data) {\n const extension = Array.isArray(data) ? data : [data];\n const length = extension.length;\n for (let i = 0; i < length; i++) {\n arr[arr.length] = extension[i];\n }\n}\n\n/**\n * @param {Array} arr The array to modify.\n * @param {VALUE} obj The element to remove.\n * @template VALUE\n * @return {boolean} If the element was removed.\n */\nexport function remove(arr, obj) {\n const i = arr.indexOf(obj);\n const found = i > -1;\n if (found) {\n arr.splice(i, 1);\n }\n return found;\n}\n\n/**\n * @param {Array|Uint8ClampedArray} arr1 The first array to compare.\n * @param {Array|Uint8ClampedArray} arr2 The second array to compare.\n * @return {boolean} Whether the two arrays are equal.\n */\nexport function equals(arr1, arr2) {\n const len1 = arr1.length;\n if (len1 !== arr2.length) {\n return false;\n }\n for (let i = 0; i < len1; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Sort the passed array such that the relative order of equal elements is preserved.\n * See https://en.wikipedia.org/wiki/Sorting_algorithm#Stability for details.\n * @param {Array<*>} arr The array to sort (modifies original).\n * @param {!function(*, *): number} compareFnc Comparison function.\n * @api\n */\nexport function stableSort(arr, compareFnc) {\n const length = arr.length;\n const tmp = Array(arr.length);\n let i;\n for (i = 0; i < length; i++) {\n tmp[i] = {index: i, value: arr[i]};\n }\n tmp.sort(function (a, b) {\n return compareFnc(a.value, b.value) || a.index - b.index;\n });\n for (i = 0; i < arr.length; i++) {\n arr[i] = tmp[i].value;\n }\n}\n\n/**\n * @param {Array<*>} arr The array to test.\n * @param {Function} [func] Comparison function.\n * @param {boolean} [strict] Strictly sorted (default false).\n * @return {boolean} Return index.\n */\nexport function isSorted(arr, func, strict) {\n const compare = func || ascending;\n return arr.every(function (currentVal, index) {\n if (index === 0) {\n return true;\n }\n const res = compare(arr[index - 1], currentVal);\n return !(res > 0 || (strict && res === 0));\n });\n}\n","/**\n * @module ol/functions\n */\n\nimport {equals as arrayEquals} from './array.js';\n\n/**\n * Always returns true.\n * @return {boolean} true.\n */\nexport function TRUE() {\n return true;\n}\n\n/**\n * Always returns false.\n * @return {boolean} false.\n */\nexport function FALSE() {\n return false;\n}\n\n/**\n * A reusable function, used e.g. as a default for callbacks.\n *\n * @return {void} Nothing.\n */\nexport function VOID() {}\n\n/**\n * Wrap a function in another function that remembers the last return. If the\n * returned function is called twice in a row with the same arguments and the same\n * this object, it will return the value from the first call in the second call.\n *\n * @param {function(...any): ReturnType} fn The function to memoize.\n * @return {function(...any): ReturnType} The memoized function.\n * @template ReturnType\n */\nexport function memoizeOne(fn) {\n let called = false;\n\n /** @type {ReturnType} */\n let lastResult;\n\n /** @type {Array} */\n let lastArgs;\n\n let lastThis;\n\n return function () {\n const nextArgs = Array.prototype.slice.call(arguments);\n if (!called || this !== lastThis || !arrayEquals(nextArgs, lastArgs)) {\n called = true;\n lastThis = this;\n lastArgs = nextArgs;\n lastResult = fn.apply(this, arguments);\n }\n return lastResult;\n };\n}\n\n/**\n * @template T\n * @param {function(): (T | Promise)} getter A function that returns a value or a promise for a value.\n * @return {Promise} A promise for the value.\n */\nexport function toPromise(getter) {\n function promiseGetter() {\n let value;\n try {\n value = getter();\n } catch (err) {\n return Promise.reject(err);\n }\n if (value instanceof Promise) {\n return value;\n }\n return Promise.resolve(value);\n }\n return promiseGetter();\n}\n","/**\n * @module ol/obj\n */\n\n/**\n * Removes all properties from an object.\n * @param {Object} object The object to clear.\n */\nexport function clear(object) {\n for (const property in object) {\n delete object[property];\n }\n}\n\n/**\n * Determine if an object has any properties.\n * @param {Object} object The object to check.\n * @return {boolean} The object is empty.\n */\nexport function isEmpty(object) {\n let property;\n for (property in object) {\n return false;\n }\n return !property;\n}\n","/**\n * @module ol/events/Target\n */\nimport Disposable from '../Disposable.js';\nimport Event from './Event.js';\nimport {VOID} from '../functions.js';\nimport {clear} from '../obj.js';\n\n/**\n * @typedef {EventTarget|Target} EventTargetLike\n */\n\n/**\n * @classdesc\n * A simplified implementation of the W3C DOM Level 2 EventTarget interface.\n * See https://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventTarget.\n *\n * There are two important simplifications compared to the specification:\n *\n * 1. The handling of `useCapture` in `addEventListener` and\n * `removeEventListener`. There is no real capture model.\n * 2. The handling of `stopPropagation` and `preventDefault` on `dispatchEvent`.\n * There is no event target hierarchy. When a listener calls\n * `stopPropagation` or `preventDefault` on an event object, it means that no\n * more listeners after this one will be called. Same as when the listener\n * returns false.\n */\nclass Target extends Disposable {\n /**\n * @param {*} [target] Default event target for dispatched events.\n */\n constructor(target) {\n super();\n\n /**\n * @private\n * @type {*}\n */\n this.eventTarget_ = target;\n\n /**\n * @private\n * @type {Object|null}\n */\n this.pendingRemovals_ = null;\n\n /**\n * @private\n * @type {Object|null}\n */\n this.dispatching_ = null;\n\n /**\n * @private\n * @type {Object>|null}\n */\n this.listeners_ = null;\n }\n\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n addEventListener(type, listener) {\n if (!type || !listener) {\n return;\n }\n const listeners = this.listeners_ || (this.listeners_ = {});\n const listenersForType = listeners[type] || (listeners[type] = []);\n if (!listenersForType.includes(listener)) {\n listenersForType.push(listener);\n }\n }\n\n /**\n * Dispatches an event and calls all listeners listening for events\n * of this type. The event parameter can either be a string or an\n * Object with a `type` property.\n *\n * @param {import(\"./Event.js\").default|string} event Event object.\n * @return {boolean|undefined} `false` if anyone called preventDefault on the\n * event object or if any of the listeners returned false.\n * @api\n */\n dispatchEvent(event) {\n const isString = typeof event === 'string';\n const type = isString ? event : event.type;\n const listeners = this.listeners_ && this.listeners_[type];\n if (!listeners) {\n return;\n }\n\n const evt = isString ? new Event(event) : /** @type {Event} */ (event);\n if (!evt.target) {\n evt.target = this.eventTarget_ || this;\n }\n const dispatching = this.dispatching_ || (this.dispatching_ = {});\n const pendingRemovals =\n this.pendingRemovals_ || (this.pendingRemovals_ = {});\n if (!(type in dispatching)) {\n dispatching[type] = 0;\n pendingRemovals[type] = 0;\n }\n ++dispatching[type];\n let propagate;\n for (let i = 0, ii = listeners.length; i < ii; ++i) {\n if ('handleEvent' in listeners[i]) {\n propagate = /** @type {import(\"../events.js\").ListenerObject} */ (\n listeners[i]\n ).handleEvent(evt);\n } else {\n propagate = /** @type {import(\"../events.js\").ListenerFunction} */ (\n listeners[i]\n ).call(this, evt);\n }\n if (propagate === false || evt.propagationStopped) {\n propagate = false;\n break;\n }\n }\n if (--dispatching[type] === 0) {\n let pr = pendingRemovals[type];\n delete pendingRemovals[type];\n while (pr--) {\n this.removeEventListener(type, VOID);\n }\n delete dispatching[type];\n }\n return propagate;\n }\n\n /**\n * Clean up.\n */\n disposeInternal() {\n this.listeners_ && clear(this.listeners_);\n }\n\n /**\n * Get the listeners for a specified event type. Listeners are returned in the\n * order that they will be called in.\n *\n * @param {string} type Type.\n * @return {Array|undefined} Listeners.\n */\n getListeners(type) {\n return (this.listeners_ && this.listeners_[type]) || undefined;\n }\n\n /**\n * @param {string} [type] Type. If not provided,\n * `true` will be returned if this event target has any listeners.\n * @return {boolean} Has listeners.\n */\n hasListener(type) {\n if (!this.listeners_) {\n return false;\n }\n return type\n ? type in this.listeners_\n : Object.keys(this.listeners_).length > 0;\n }\n\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n removeEventListener(type, listener) {\n if (!this.listeners_) {\n return;\n }\n const listeners = this.listeners_[type];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n if (this.pendingRemovals_ && type in this.pendingRemovals_) {\n // make listener a no-op, and remove later in #dispatchEvent()\n listeners[index] = VOID;\n ++this.pendingRemovals_[type];\n } else {\n listeners.splice(index, 1);\n if (listeners.length === 0) {\n delete this.listeners_[type];\n }\n }\n }\n }\n}\n\nexport default Target;\n","/**\n * @module ol/events/EventType\n */\n\n/**\n * @enum {string}\n * @const\n */\nexport default {\n /**\n * Generic change event. Triggered when the revision counter is increased.\n * @event module:ol/events/Event~BaseEvent#change\n * @api\n */\n CHANGE: 'change',\n\n /**\n * Generic error event. Triggered when an error occurs.\n * @event module:ol/events/Event~BaseEvent#error\n * @api\n */\n ERROR: 'error',\n\n BLUR: 'blur',\n CLEAR: 'clear',\n CONTEXTMENU: 'contextmenu',\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n DRAGENTER: 'dragenter',\n DRAGOVER: 'dragover',\n DROP: 'drop',\n FOCUS: 'focus',\n KEYDOWN: 'keydown',\n KEYPRESS: 'keypress',\n LOAD: 'load',\n RESIZE: 'resize',\n TOUCHMOVE: 'touchmove',\n WHEEL: 'wheel',\n};\n","/**\n * @module ol/events\n */\nimport {clear} from './obj.js';\n\n/**\n * Key to use with {@link module:ol/Observable.unByKey}.\n * @typedef {Object} EventsKey\n * @property {ListenerFunction} listener Listener.\n * @property {import(\"./events/Target.js\").EventTargetLike} target Target.\n * @property {string} type Type.\n * @api\n */\n\n/**\n * Listener function. This function is called with an event object as argument.\n * When the function returns `false`, event propagation will stop.\n *\n * @typedef {function((Event|import(\"./events/Event.js\").default)): (void|boolean)} ListenerFunction\n * @api\n */\n\n/**\n * @typedef {Object} ListenerObject\n * @property {ListenerFunction} handleEvent HandleEvent listener function.\n */\n\n/**\n * @typedef {ListenerFunction|ListenerObject} Listener\n */\n\n/**\n * Registers an event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` to a `this` object, and returns\n * a key for use with {@link module:ol/events.unlistenByKey}.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [thisArg] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @param {boolean} [once] If true, add the listener as one-off listener.\n * @return {EventsKey} Unique key for the listener.\n */\nexport function listen(target, type, listener, thisArg, once) {\n if (thisArg && thisArg !== target) {\n listener = listener.bind(thisArg);\n }\n if (once) {\n const originalListener = listener;\n listener = function () {\n target.removeEventListener(type, listener);\n originalListener.apply(this, arguments);\n };\n }\n const eventsKey = {\n target: target,\n type: type,\n listener: listener,\n };\n target.addEventListener(type, listener);\n return eventsKey;\n}\n\n/**\n * Registers a one-off event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` as self-unregistering listener\n * to a `this` object, and returns a key for use with\n * {@link module:ol/events.unlistenByKey} in case the listener needs to be\n * unregistered before it is called.\n *\n * When {@link module:ol/events.listen} is called with the same arguments after this\n * function, the self-unregistering listener will be turned into a permanent\n * listener.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [thisArg] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @return {EventsKey} Key for unlistenByKey.\n */\nexport function listenOnce(target, type, listener, thisArg) {\n return listen(target, type, listener, thisArg, true);\n}\n\n/**\n * Unregisters event listeners on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * The argument passed to this function is the key returned from\n * {@link module:ol/events.listen} or {@link module:ol/events.listenOnce}.\n *\n * @param {EventsKey} key The key.\n */\nexport function unlistenByKey(key) {\n if (key && key.target) {\n key.target.removeEventListener(key.type, key.listener);\n clear(key);\n }\n}\n","/**\n * @module ol/Observable\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport {listen, listenOnce, unlistenByKey} from './events.js';\n\n/***\n * @template {string} Type\n * @template {Event|import(\"./events/Event.js\").default} EventClass\n * @template Return\n * @typedef {(type: Type, listener: (event: EventClass) => ?) => Return} OnSignature\n */\n\n/***\n * @template {string} Type\n * @template Return\n * @typedef {(type: Type[], listener: (event: Event|import(\"./events/Event\").default) => ?) => Return extends void ? void : Return[]} CombinedOnSignature\n */\n\n/**\n * @typedef {'change'|'error'} EventTypes\n */\n\n/***\n * @template Return\n * @typedef {OnSignature & CombinedOnSignature} ObservableOnSignature\n */\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * An event target providing convenient methods for listener registration\n * and unregistration. A generic `change` event is always available through\n * {@link module:ol/Observable~Observable#changed}.\n *\n * @fires import(\"./events/Event.js\").default\n * @api\n */\nclass Observable extends EventTarget {\n constructor() {\n super();\n\n this.on =\n /** @type {ObservableOnSignature} */ (\n this.onInternal\n );\n\n this.once =\n /** @type {ObservableOnSignature} */ (\n this.onceInternal\n );\n\n this.un = /** @type {ObservableOnSignature} */ (this.unInternal);\n\n /**\n * @private\n * @type {number}\n */\n this.revision_ = 0;\n }\n\n /**\n * Increases the revision counter and dispatches a 'change' event.\n * @api\n */\n changed() {\n ++this.revision_;\n this.dispatchEvent(EventType.CHANGE);\n }\n\n /**\n * Get the version number for this object. Each time the object is modified,\n * its version number will be incremented.\n * @return {number} Revision.\n * @api\n */\n getRevision() {\n return this.revision_;\n }\n\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n onInternal(type, listener) {\n if (Array.isArray(type)) {\n const len = type.length;\n const keys = new Array(len);\n for (let i = 0; i < len; ++i) {\n keys[i] = listen(this, type[i], listener);\n }\n return keys;\n }\n return listen(this, /** @type {string} */ (type), listener);\n }\n\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n onceInternal(type, listener) {\n let key;\n if (Array.isArray(type)) {\n const len = type.length;\n key = new Array(len);\n for (let i = 0; i < len; ++i) {\n key[i] = listenOnce(this, type[i], listener);\n }\n } else {\n key = listenOnce(this, /** @type {string} */ (type), listener);\n }\n /** @type {Object} */ (listener).ol_key = key;\n return key;\n }\n\n /**\n * Unlisten for a certain type of event.\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @protected\n */\n unInternal(type, listener) {\n const key = /** @type {Object} */ (listener).ol_key;\n if (key) {\n unByKey(key);\n } else if (Array.isArray(type)) {\n for (let i = 0, ii = type.length; i < ii; ++i) {\n this.removeEventListener(type[i], listener);\n }\n } else {\n this.removeEventListener(type, listener);\n }\n }\n}\n\n/**\n * Listen for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.on;\n\n/**\n * Listen once for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.once;\n\n/**\n * Unlisten for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @api\n */\nObservable.prototype.un;\n\n/**\n * Removes an event listener using the key returned by `on()` or `once()`.\n * @param {import(\"./events.js\").EventsKey|Array} key The key returned by `on()`\n * or `once()` (or an array of keys).\n * @api\n */\nexport function unByKey(key) {\n if (Array.isArray(key)) {\n for (let i = 0, ii = key.length; i < ii; ++i) {\n unlistenByKey(key[i]);\n }\n } else {\n unlistenByKey(/** @type {import(\"./events.js\").EventsKey} */ (key));\n }\n}\n\nexport default Observable;\n","/**\n * @module ol/util\n */\n\n/**\n * @return {never} Any return.\n */\nexport function abstract() {\n throw new Error('Unimplemented abstract method.');\n}\n\n/**\n * Counter for getUid.\n * @type {number}\n * @private\n */\nlet uidCounter_ = 0;\n\n/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. Unique IDs are generated\n * as a strictly increasing sequence. Adapted from goog.getUid.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {string} The unique ID for the object.\n * @api\n */\nexport function getUid(obj) {\n return obj.ol_uid || (obj.ol_uid = String(++uidCounter_));\n}\n\n/**\n * OpenLayers version.\n * @type {string}\n */\nexport const VERSION = '8.2.0';\n","/**\n * @module ol/Object\n */\nimport Event from './events/Event.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport Observable from './Observable.js';\nimport {getUid} from './util.js';\nimport {isEmpty} from './obj.js';\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Object~BaseObject} instances are instances of this type.\n */\nexport class ObjectEvent extends Event {\n /**\n * @param {string} type The event type.\n * @param {string} key The property name.\n * @param {*} oldValue The old value for `key`.\n */\n constructor(type, key, oldValue) {\n super(type);\n\n /**\n * The name of the property whose value is changing.\n * @type {string}\n * @api\n */\n this.key = key;\n\n /**\n * The old value. To get the new value use `e.target.get(e.key)` where\n * `e` is the event object.\n * @type {*}\n * @api\n */\n this.oldValue = oldValue;\n }\n}\n\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} ObjectOnSignature\n */\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Most non-trivial classes inherit from this.\n *\n * This extends {@link module:ol/Observable~Observable} with observable\n * properties, where each property is observable as well as the object as a\n * whole.\n *\n * Classes that inherit from this have pre-defined properties, to which you can\n * add your owns. The pre-defined properties are listed in this documentation as\n * 'Observable Properties', and have their own accessors; for example,\n * {@link module:ol/Map~Map} has a `target` property, accessed with\n * `getTarget()` and changed with `setTarget()`. Not all properties are however\n * settable. There are also general-purpose accessors `get()` and `set()`. For\n * example, `get('target')` is equivalent to `getTarget()`.\n *\n * The `set` accessors trigger a change event, and you can monitor this by\n * registering a listener. For example, {@link module:ol/View~View} has a\n * `center` property, so `view.on('change:center', function(evt) {...});` would\n * call the function whenever the value of the center property changes. Within\n * the function, `evt.target` would be the view, so `evt.target.getCenter()`\n * would return the new center.\n *\n * You can add your own observable properties with\n * `object.set('prop', 'value')`, and retrieve that with `object.get('prop')`.\n * You can listen for changes on that property value with\n * `object.on('change:prop', listener)`. You can get a list of all\n * properties with {@link module:ol/Object~BaseObject#getProperties}.\n *\n * Note that the observable properties are separate from standard JS properties.\n * You can, for example, give your map object a title with\n * `map.title='New title'` and with `map.set('title', 'Another title')`. The\n * first will be a `hasOwnProperty`; the second will appear in\n * `getProperties()`. Only the second is observable.\n *\n * Properties can be deleted by using the unset method. E.g.\n * object.unset('foo').\n *\n * @fires ObjectEvent\n * @api\n */\nclass BaseObject extends Observable {\n /**\n * @param {Object} [values] An object with key-value pairs.\n */\n constructor(values) {\n super();\n\n /***\n * @type {ObjectOnSignature}\n */\n this.on;\n\n /***\n * @type {ObjectOnSignature}\n */\n this.once;\n\n /***\n * @type {ObjectOnSignature}\n */\n this.un;\n\n // Call {@link module:ol/util.getUid} to ensure that the order of objects' ids is\n // the same as the order in which they were created. This also helps to\n // ensure that object properties are always added in the same order, which\n // helps many JavaScript engines generate faster code.\n getUid(this);\n\n /**\n * @private\n * @type {Object|null}\n */\n this.values_ = null;\n\n if (values !== undefined) {\n this.setProperties(values);\n }\n }\n\n /**\n * Gets a value.\n * @param {string} key Key name.\n * @return {*} Value.\n * @api\n */\n get(key) {\n let value;\n if (this.values_ && this.values_.hasOwnProperty(key)) {\n value = this.values_[key];\n }\n return value;\n }\n\n /**\n * Get a list of object property names.\n * @return {Array} List of property names.\n * @api\n */\n getKeys() {\n return (this.values_ && Object.keys(this.values_)) || [];\n }\n\n /**\n * Get an object of all property names and values.\n * @return {Object} Object.\n * @api\n */\n getProperties() {\n return (this.values_ && Object.assign({}, this.values_)) || {};\n }\n\n /**\n * Get an object of all property names and values.\n * @return {Object?} Object.\n */\n getPropertiesInternal() {\n return this.values_;\n }\n\n /**\n * @return {boolean} The object has properties.\n */\n hasProperties() {\n return !!this.values_;\n }\n\n /**\n * @param {string} key Key name.\n * @param {*} oldValue Old value.\n */\n notify(key, oldValue) {\n let eventType;\n eventType = `change:${key}`;\n if (this.hasListener(eventType)) {\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n }\n eventType = ObjectEventType.PROPERTYCHANGE;\n if (this.hasListener(eventType)) {\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n }\n }\n\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n addChangeListener(key, listener) {\n this.addEventListener(`change:${key}`, listener);\n }\n\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n removeChangeListener(key, listener) {\n this.removeEventListener(`change:${key}`, listener);\n }\n\n /**\n * Sets a value.\n * @param {string} key Key name.\n * @param {*} value Value.\n * @param {boolean} [silent] Update without triggering an event.\n * @api\n */\n set(key, value, silent) {\n const values = this.values_ || (this.values_ = {});\n if (silent) {\n values[key] = value;\n } else {\n const oldValue = values[key];\n values[key] = value;\n if (oldValue !== value) {\n this.notify(key, oldValue);\n }\n }\n }\n\n /**\n * Sets a collection of key-value pairs. Note that this changes any existing\n * properties and adds new ones (it does not remove any existing properties).\n * @param {Object} values Values.\n * @param {boolean} [silent] Update without triggering an event.\n * @api\n */\n setProperties(values, silent) {\n for (const key in values) {\n this.set(key, values[key], silent);\n }\n }\n\n /**\n * Apply any properties from another object without triggering events.\n * @param {BaseObject} source The source object.\n * @protected\n */\n applyProperties(source) {\n if (!source.values_) {\n return;\n }\n Object.assign(this.values_ || (this.values_ = {}), source.values_);\n }\n\n /**\n * Unsets a property.\n * @param {string} key Key name.\n * @param {boolean} [silent] Unset without triggering an event.\n * @api\n */\n unset(key, silent) {\n if (this.values_ && key in this.values_) {\n const oldValue = this.values_[key];\n delete this.values_[key];\n if (isEmpty(this.values_)) {\n this.values_ = null;\n }\n if (!silent) {\n this.notify(key, oldValue);\n }\n }\n }\n}\n\nexport default BaseObject;\n","/**\n * @module ol/CollectionEventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when an item is added to the collection.\n * @event module:ol/Collection.CollectionEvent#add\n * @api\n */\n ADD: 'add',\n /**\n * Triggered when an item is removed from the collection.\n * @event module:ol/Collection.CollectionEvent#remove\n * @api\n */\n REMOVE: 'remove',\n};\n","/**\n * @module ol/Collection\n */\nimport BaseObject from './Object.js';\nimport CollectionEventType from './CollectionEventType.js';\nimport Event from './events/Event.js';\n\n/**\n * @enum {string}\n * @private\n */\nconst Property = {\n LENGTH: 'length',\n};\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Collection~Collection} instances are instances of this\n * type.\n * @template T\n */\nexport class CollectionEvent extends Event {\n /**\n * @param {import(\"./CollectionEventType.js\").default} type Type.\n * @param {T} element Element.\n * @param {number} index The index of the added or removed element.\n */\n constructor(type, element, index) {\n super(type);\n\n /**\n * The element that is added to or removed from the collection.\n * @type {T}\n * @api\n */\n this.element = element;\n\n /**\n * The index of the added or removed element.\n * @type {number}\n * @api\n */\n this.index = index;\n }\n}\n\n/***\n * @template T\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature<'add'|'remove', CollectionEvent, Return> &\n * import(\"./Observable\").CombinedOnSignature} CollectionOnSignature\n */\n\n/**\n * @typedef {Object} Options\n * @property {boolean} [unique=false] Disallow the same item from being added to\n * the collection twice.\n */\n\n/**\n * @classdesc\n * An expanded version of standard JS Array, adding convenience methods for\n * manipulation. Add and remove changes to the Collection trigger a Collection\n * event. Note that this does not cover changes to the objects _within_ the\n * Collection; they trigger events on the appropriate object, not on the\n * Collection as a whole.\n *\n * @fires CollectionEvent\n *\n * @template T\n * @api\n */\nclass Collection extends BaseObject {\n /**\n * @param {Array} [array] Array.\n * @param {Options} [options] Collection options.\n */\n constructor(array, options) {\n super();\n\n /***\n * @type {CollectionOnSignature}\n */\n this.on;\n\n /***\n * @type {CollectionOnSignature}\n */\n this.once;\n\n /***\n * @type {CollectionOnSignature}\n */\n this.un;\n\n options = options || {};\n\n /**\n * @private\n * @type {boolean}\n */\n this.unique_ = !!options.unique;\n\n /**\n * @private\n * @type {!Array}\n */\n this.array_ = array ? array : [];\n\n if (this.unique_) {\n for (let i = 0, ii = this.array_.length; i < ii; ++i) {\n this.assertUnique_(this.array_[i], i);\n }\n }\n\n this.updateLength_();\n }\n\n /**\n * Remove all elements from the collection.\n * @api\n */\n clear() {\n while (this.getLength() > 0) {\n this.pop();\n }\n }\n\n /**\n * Add elements to the collection. This pushes each item in the provided array\n * to the end of the collection.\n * @param {!Array} arr Array.\n * @return {Collection} This collection.\n * @api\n */\n extend(arr) {\n for (let i = 0, ii = arr.length; i < ii; ++i) {\n this.push(arr[i]);\n }\n return this;\n }\n\n /**\n * Iterate over each element, calling the provided callback.\n * @param {function(T, number, Array): *} f The function to call\n * for every element. This function takes 3 arguments (the element, the\n * index and the array). The return value is ignored.\n * @api\n */\n forEach(f) {\n const array = this.array_;\n for (let i = 0, ii = array.length; i < ii; ++i) {\n f(array[i], i, array);\n }\n }\n\n /**\n * Get a reference to the underlying Array object. Warning: if the array\n * is mutated, no events will be dispatched by the collection, and the\n * collection's \"length\" property won't be in sync with the actual length\n * of the array.\n * @return {!Array} Array.\n * @api\n */\n getArray() {\n return this.array_;\n }\n\n /**\n * Get the element at the provided index.\n * @param {number} index Index.\n * @return {T} Element.\n * @api\n */\n item(index) {\n return this.array_[index];\n }\n\n /**\n * Get the length of this collection.\n * @return {number} The length of the array.\n * @observable\n * @api\n */\n getLength() {\n return this.get(Property.LENGTH);\n }\n\n /**\n * Insert an element at the provided index.\n * @param {number} index Index.\n * @param {T} elem Element.\n * @api\n */\n insertAt(index, elem) {\n if (index < 0 || index > this.getLength()) {\n throw new Error('Index out of bounds: ' + index);\n }\n if (this.unique_) {\n this.assertUnique_(elem);\n }\n this.array_.splice(index, 0, elem);\n this.updateLength_();\n this.dispatchEvent(\n new CollectionEvent(CollectionEventType.ADD, elem, index)\n );\n }\n\n /**\n * Remove the last element of the collection and return it.\n * Return `undefined` if the collection is empty.\n * @return {T|undefined} Element.\n * @api\n */\n pop() {\n return this.removeAt(this.getLength() - 1);\n }\n\n /**\n * Insert the provided element at the end of the collection.\n * @param {T} elem Element.\n * @return {number} New length of the collection.\n * @api\n */\n push(elem) {\n if (this.unique_) {\n this.assertUnique_(elem);\n }\n const n = this.getLength();\n this.insertAt(n, elem);\n return this.getLength();\n }\n\n /**\n * Remove the first occurrence of an element from the collection.\n * @param {T} elem Element.\n * @return {T|undefined} The removed element or undefined if none found.\n * @api\n */\n remove(elem) {\n const arr = this.array_;\n for (let i = 0, ii = arr.length; i < ii; ++i) {\n if (arr[i] === elem) {\n return this.removeAt(i);\n }\n }\n return undefined;\n }\n\n /**\n * Remove the element at the provided index and return it.\n * Return `undefined` if the collection does not contain this index.\n * @param {number} index Index.\n * @return {T|undefined} Value.\n * @api\n */\n removeAt(index) {\n if (index < 0 || index >= this.getLength()) {\n return undefined;\n }\n const prev = this.array_[index];\n this.array_.splice(index, 1);\n this.updateLength_();\n this.dispatchEvent(\n /** @type {CollectionEvent} */ (\n new CollectionEvent(CollectionEventType.REMOVE, prev, index)\n )\n );\n return prev;\n }\n\n /**\n * Set the element at the provided index.\n * @param {number} index Index.\n * @param {T} elem Element.\n * @api\n */\n setAt(index, elem) {\n const n = this.getLength();\n if (index >= n) {\n this.insertAt(index, elem);\n return;\n }\n if (index < 0) {\n throw new Error('Index out of bounds: ' + index);\n }\n if (this.unique_) {\n this.assertUnique_(elem, index);\n }\n const prev = this.array_[index];\n this.array_[index] = elem;\n this.dispatchEvent(\n /** @type {CollectionEvent} */ (\n new CollectionEvent(CollectionEventType.REMOVE, prev, index)\n )\n );\n this.dispatchEvent(\n /** @type {CollectionEvent} */ (\n new CollectionEvent(CollectionEventType.ADD, elem, index)\n )\n );\n }\n\n /**\n * @private\n */\n updateLength_() {\n this.set(Property.LENGTH, this.array_.length);\n }\n\n /**\n * @private\n * @param {T} elem Element.\n * @param {number} [except] Optional index to ignore.\n */\n assertUnique_(elem, except) {\n for (let i = 0, ii = this.array_.length; i < ii; ++i) {\n if (this.array_[i] === elem && i !== except) {\n throw new Error('Duplicate item added to a unique collection');\n }\n }\n }\n}\n\nexport default Collection;\n","/**\n * @module ol/TileState\n */\n\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n /**\n * Indicates that tile loading failed\n * @type {number}\n */\n ERROR: 3,\n EMPTY: 4,\n};\n","/**\n * @module ol/easing\n */\n\n/**\n * Start slow and speed up.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeIn(t) {\n return Math.pow(t, 3);\n}\n\n/**\n * Start fast and slow down.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeOut(t) {\n return 1 - easeIn(1 - t);\n}\n\n/**\n * Start slow, speed up, and then slow down again.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function inAndOut(t) {\n return 3 * t * t - 2 * t * t * t;\n}\n\n/**\n * Maintain a constant speed over time.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function linear(t) {\n return t;\n}\n\n/**\n * Start slow, speed up, and at the very end slow down again. This has the\n * same general behavior as {@link module:ol/easing.inAndOut}, but the final\n * slowdown is delayed.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function upAndDown(t) {\n if (t < 0.5) {\n return inAndOut(2 * t);\n }\n return 1 - inAndOut(2 * (t - 0.5));\n}\n","/**\n * @module ol/Tile\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport TileState from './TileState.js';\nimport {abstract} from './util.js';\nimport {easeIn} from './easing.js';\n\n/**\n * A function that takes an {@link module:ol/Tile~Tile} for the tile and a\n * `{string}` for the url as arguments. The default is\n * ```js\n * source.setTileLoadFunction(function(tile, src) {\n * tile.getImage().src = src;\n * });\n * ```\n * For more fine grained control, the load function can use fetch or XMLHttpRequest and involve\n * error handling:\n *\n * ```js\n * import TileState from 'ol/TileState.js';\n *\n * source.setTileLoadFunction(function(tile, src) {\n * const xhr = new XMLHttpRequest();\n * xhr.responseType = 'blob';\n * xhr.addEventListener('loadend', function (evt) {\n * const data = this.response;\n * if (data !== undefined) {\n * tile.getImage().src = URL.createObjectURL(data);\n * } else {\n * tile.setState(TileState.ERROR);\n * }\n * });\n * xhr.addEventListener('error', function () {\n * tile.setState(TileState.ERROR);\n * });\n * xhr.open('GET', src);\n * xhr.send();\n * });\n * ```\n *\n * @typedef {function(Tile, string): void} LoadFunction\n * @api\n */\n\n/**\n * {@link module:ol/source/Tile~TileSource} sources use a function of this type to get\n * the url that provides a tile for a given tile coordinate.\n *\n * This function takes an {@link module:ol/tilecoord~TileCoord} for the tile\n * coordinate, a `{number}` representing the pixel ratio and a\n * {@link module:ol/proj/Projection~Projection} for the projection as arguments\n * and returns a `{string}` representing the tile URL, or undefined if no tile\n * should be requested for the passed tile coordinate.\n *\n * @typedef {function(import(\"./tilecoord.js\").TileCoord, number,\n * import(\"./proj/Projection.js\").default): (string|undefined)} UrlFunction\n * @api\n */\n\n/**\n * @typedef {Object} Options\n * @property {number} [transition=250] A duration for tile opacity\n * transitions in milliseconds. A duration of 0 disables the opacity transition.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n * @api\n */\n\n/**\n * @classdesc\n * Base class for tiles.\n *\n * @abstract\n */\nclass Tile extends EventTarget {\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./TileState.js\").default} state State.\n * @param {Options} [options] Tile options.\n */\n constructor(tileCoord, state, options) {\n super();\n\n options = options ? options : {};\n\n /**\n * @type {import(\"./tilecoord.js\").TileCoord}\n */\n this.tileCoord = tileCoord;\n\n /**\n * @protected\n * @type {import(\"./TileState.js\").default}\n */\n this.state = state;\n\n /**\n * An \"interim\" tile for this tile. The interim tile may be used while this\n * one is loading, for \"smooth\" transitions when changing params/dimensions\n * on the source.\n * @type {Tile|null}\n */\n this.interimTile = null;\n\n /**\n * A key assigned to the tile. This is used by the tile source to determine\n * if this tile can effectively be used, or if a new tile should be created\n * and this one be used as an interim tile for this new tile.\n * @type {string}\n */\n this.key = '';\n\n /**\n * The duration for the opacity transition.\n * @type {number}\n */\n this.transition_ =\n options.transition === undefined ? 250 : options.transition;\n\n /**\n * Lookup of start times for rendering transitions. If the start time is\n * equal to -1, the transition is complete.\n * @type {Object}\n */\n this.transitionStarts_ = {};\n\n /**\n * @type {boolean}\n */\n this.interpolate = !!options.interpolate;\n }\n\n /**\n * @protected\n */\n changed() {\n this.dispatchEvent(EventType.CHANGE);\n }\n\n /**\n * Called by the tile cache when the tile is removed from the cache due to expiry\n */\n release() {\n if (this.state === TileState.ERROR) {\n // to remove the `change` listener on this tile in `ol/TileQueue#handleTileChange`\n this.setState(TileState.EMPTY);\n }\n }\n\n /**\n * @return {string} Key.\n */\n getKey() {\n return this.key + '/' + this.tileCoord;\n }\n\n /**\n * Get the interim tile most suitable for rendering using the chain of interim\n * tiles. This corresponds to the most recent tile that has been loaded, if no\n * such tile exists, the original tile is returned.\n * @return {!Tile} Best tile for rendering.\n */\n getInterimTile() {\n let tile = this.interimTile;\n if (!tile) {\n //empty chain\n return this;\n }\n\n // find the first loaded tile and return it. Since the chain is sorted in\n // decreasing order of creation time, there is no need to search the remainder\n // of the list (all those tiles correspond to older requests and will be\n // cleaned up by refreshInterimChain)\n do {\n if (tile.getState() == TileState.LOADED) {\n // Show tile immediately instead of fading it in after loading, because\n // the interim tile is in place already\n this.transition_ = 0;\n return tile;\n }\n tile = tile.interimTile;\n } while (tile);\n\n // we can not find a better tile\n return this;\n }\n\n /**\n * Goes through the chain of interim tiles and discards sections of the chain\n * that are no longer relevant.\n */\n refreshInterimChain() {\n let tile = this.interimTile;\n if (!tile) {\n return;\n }\n\n /** @type {Tile} */\n let prev = this;\n do {\n if (tile.getState() == TileState.LOADED) {\n //we have a loaded tile, we can discard the rest of the list\n //we would could abort any LOADING tile request\n //older than this tile (i.e. any LOADING tile following this entry in the chain)\n tile.interimTile = null;\n break;\n }\n if (tile.getState() == TileState.LOADING) {\n //keep this LOADING tile any loaded tiles later in the chain are\n //older than this tile, so we're still interested in the request\n prev = tile;\n } else if (tile.getState() == TileState.IDLE) {\n //the head of the list is the most current tile, we don't need\n //to start any other requests for this chain\n prev.interimTile = tile.interimTile;\n } else {\n prev = tile;\n }\n tile = prev.interimTile;\n } while (tile);\n }\n\n /**\n * Get the tile coordinate for this tile.\n * @return {import(\"./tilecoord.js\").TileCoord} The tile coordinate.\n * @api\n */\n getTileCoord() {\n return this.tileCoord;\n }\n\n /**\n * @return {import(\"./TileState.js\").default} State.\n */\n getState() {\n return this.state;\n }\n\n /**\n * Sets the state of this tile. If you write your own {@link module:ol/Tile~LoadFunction tileLoadFunction} ,\n * it is important to set the state correctly to {@link module:ol/TileState~ERROR}\n * when the tile cannot be loaded. Otherwise the tile cannot be removed from\n * the tile queue and will block other requests.\n * @param {import(\"./TileState.js\").default} state State.\n * @api\n */\n setState(state) {\n if (this.state !== TileState.ERROR && this.state > state) {\n throw new Error('Tile load sequence violation');\n }\n this.state = state;\n this.changed();\n }\n\n /**\n * Load the image or retry if loading previously failed.\n * Loading is taken care of by the tile queue, and calling this method is\n * only needed for preloading or for reloading in case of an error.\n * @abstract\n * @api\n */\n load() {\n abstract();\n }\n\n /**\n * Get the alpha value for rendering.\n * @param {string} id An id for the renderer.\n * @param {number} time The render frame time.\n * @return {number} A number between 0 and 1.\n */\n getAlpha(id, time) {\n if (!this.transition_) {\n return 1;\n }\n\n let start = this.transitionStarts_[id];\n if (!start) {\n start = time;\n this.transitionStarts_[id] = start;\n } else if (start === -1) {\n return 1;\n }\n\n const delta = time - start + 1000 / 60; // avoid rendering at 0\n if (delta >= this.transition_) {\n return 1;\n }\n return easeIn(delta / this.transition_);\n }\n\n /**\n * Determine if a tile is in an alpha transition. A tile is considered in\n * transition if tile.getAlpha() has not yet been called or has been called\n * and returned 1.\n * @param {string} id An id for the renderer.\n * @return {boolean} The tile is in transition.\n */\n inTransition(id) {\n if (!this.transition_) {\n return false;\n }\n return this.transitionStarts_[id] !== -1;\n }\n\n /**\n * Mark a transition as complete.\n * @param {string} id An id for the renderer.\n */\n endTransition(id) {\n if (this.transition_) {\n this.transitionStarts_[id] = -1;\n }\n }\n}\n\nexport default Tile;\n","/**\n * @module ol/has\n */\n\nconst ua =\n typeof navigator !== 'undefined' && typeof navigator.userAgent !== 'undefined'\n ? navigator.userAgent.toLowerCase()\n : '';\n\n/**\n * User agent string says we are dealing with Firefox as browser.\n * @type {boolean}\n */\nexport const FIREFOX = ua.includes('firefox');\n\n/**\n * User agent string says we are dealing with Safari as browser.\n * @type {boolean}\n */\nexport const SAFARI = ua.includes('safari') && !ua.includes('chrom');\n\n/**\n * https://bugs.webkit.org/show_bug.cgi?id=237906\n * @type {boolean}\n */\nexport const SAFARI_BUG_237906 =\n SAFARI &&\n (ua.includes('version/15.4') ||\n /cpu (os|iphone os) 15_4 like mac os x/.test(ua));\n\n/**\n * User agent string says we are dealing with a WebKit engine.\n * @type {boolean}\n */\nexport const WEBKIT = ua.includes('webkit') && !ua.includes('edge');\n\n/**\n * User agent string says we are dealing with a Mac as platform.\n * @type {boolean}\n */\nexport const MAC = ua.includes('macintosh');\n\n/**\n * The ratio between physical pixels and device-independent pixels\n * (dips) on the device (`window.devicePixelRatio`).\n * @const\n * @type {number}\n * @api\n */\nexport const DEVICE_PIXEL_RATIO =\n typeof devicePixelRatio !== 'undefined' ? devicePixelRatio : 1;\n\n/**\n * The execution context is a worker with OffscreenCanvas available.\n * @const\n * @type {boolean}\n */\nexport const WORKER_OFFSCREEN_CANVAS =\n typeof WorkerGlobalScope !== 'undefined' &&\n typeof OffscreenCanvas !== 'undefined' &&\n self instanceof WorkerGlobalScope; //eslint-disable-line\n\n/**\n * Image.prototype.decode() is supported.\n * @type {boolean}\n */\nexport const IMAGE_DECODE =\n typeof Image !== 'undefined' && Image.prototype.decode;\n\n/**\n * createImageBitmap() is supported.\n * @type {boolean}\n */\nexport const CREATE_IMAGE_BITMAP = typeof createImageBitmap === 'function';\n\n/**\n * @type {boolean}\n */\nexport const PASSIVE_EVENT_LISTENERS = (function () {\n let passive = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passive = true;\n },\n });\n\n // @ts-ignore Ignore invalid event type '_'\n window.addEventListener('_', null, options);\n // @ts-ignore Ignore invalid event type '_'\n window.removeEventListener('_', null, options);\n } catch (error) {\n // passive not supported\n }\n return passive;\n})();\n","import {WORKER_OFFSCREEN_CANVAS} from './has.js';\n\n/**\n * @module ol/dom\n */\n\n//FIXME Move this function to the canvas module\n/**\n * Create an html canvas element and returns its 2d context.\n * @param {number} [width] Canvas width.\n * @param {number} [height] Canvas height.\n * @param {Array} [canvasPool] Canvas pool to take existing canvas from.\n * @param {CanvasRenderingContext2DSettings} [settings] CanvasRenderingContext2DSettings\n * @return {CanvasRenderingContext2D} The context.\n */\nexport function createCanvasContext2D(width, height, canvasPool, settings) {\n /** @type {HTMLCanvasElement|OffscreenCanvas} */\n let canvas;\n if (canvasPool && canvasPool.length) {\n canvas = /** @type {HTMLCanvasElement} */ (canvasPool.shift());\n } else if (WORKER_OFFSCREEN_CANVAS) {\n canvas = new OffscreenCanvas(width || 300, height || 300);\n } else {\n canvas = document.createElement('canvas');\n }\n if (width) {\n canvas.width = width;\n }\n if (height) {\n canvas.height = height;\n }\n //FIXME Allow OffscreenCanvasRenderingContext2D as return type\n return /** @type {CanvasRenderingContext2D} */ (\n canvas.getContext('2d', settings)\n );\n}\n\n/**\n * Releases canvas memory to avoid exceeding memory limits in Safari.\n * See https://pqina.nl/blog/total-canvas-memory-use-exceeds-the-maximum-limit/\n * @param {CanvasRenderingContext2D} context Context.\n */\nexport function releaseCanvas(context) {\n const canvas = context.canvas;\n canvas.width = 1;\n canvas.height = 1;\n context.clearRect(0, 0, 1, 1);\n}\n\n/**\n * Get the current computed width for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerWidth(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The width.\n */\nexport function outerWidth(element) {\n let width = element.offsetWidth;\n const style = getComputedStyle(element);\n width += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);\n\n return width;\n}\n\n/**\n * Get the current computed height for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerHeight(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The height.\n */\nexport function outerHeight(element) {\n let height = element.offsetHeight;\n const style = getComputedStyle(element);\n height += parseInt(style.marginTop, 10) + parseInt(style.marginBottom, 10);\n\n return height;\n}\n\n/**\n * @param {Node} newNode Node to replace old node\n * @param {Node} oldNode The node to be replaced\n */\nexport function replaceNode(newNode, oldNode) {\n const parent = oldNode.parentNode;\n if (parent) {\n parent.replaceChild(newNode, oldNode);\n }\n}\n\n/**\n * @param {Node} node The node to remove.\n * @return {Node|null} The node that was removed or null.\n */\nexport function removeNode(node) {\n return node && node.parentNode ? node.parentNode.removeChild(node) : null;\n}\n\n/**\n * @param {Node} node The node to remove the children from.\n */\nexport function removeChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n\n/**\n * Transform the children of a parent node so they match the\n * provided list of children. This function aims to efficiently\n * remove, add, and reorder child nodes while maintaining a simple\n * implementation (it is not guaranteed to minimize DOM operations).\n * @param {Node} node The parent node whose children need reworking.\n * @param {Array} children The desired children.\n */\nexport function replaceChildren(node, children) {\n const oldChildren = node.childNodes;\n\n for (let i = 0; true; ++i) {\n const oldChild = oldChildren[i];\n const newChild = children[i];\n\n // check if our work is done\n if (!oldChild && !newChild) {\n break;\n }\n\n // check if children match\n if (oldChild === newChild) {\n continue;\n }\n\n // check if a new child needs to be added\n if (!oldChild) {\n node.appendChild(newChild);\n continue;\n }\n\n // check if an old child needs to be removed\n if (!newChild) {\n node.removeChild(oldChild);\n --i;\n continue;\n }\n\n // reorder\n node.insertBefore(newChild, oldChild);\n }\n}\n","/**\n * @module ol/DataTile\n */\nimport Tile from './Tile.js';\nimport TileState from './TileState.js';\nimport {createCanvasContext2D} from './dom.js';\n\n/**\n * @typedef {HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|ImageBitmap} ImageLike\n */\n\n/**\n * @typedef {Uint8Array|Uint8ClampedArray|Float32Array|DataView} ArrayLike\n */\n\n/**\n * Data that can be used with a DataTile.\n * @typedef {ArrayLike|ImageLike} Data\n */\n\n/**\n * @param {Data} data Tile data.\n * @return {ImageLike|null} The image-like data.\n */\nexport function asImageLike(data) {\n return data instanceof Image ||\n data instanceof HTMLCanvasElement ||\n data instanceof HTMLVideoElement ||\n data instanceof ImageBitmap\n ? data\n : null;\n}\n\n/**\n * @param {Data} data Tile data.\n * @return {ArrayLike|null} The array-like data.\n */\nexport function asArrayLike(data) {\n return data instanceof Uint8Array ||\n data instanceof Uint8ClampedArray ||\n data instanceof Float32Array ||\n data instanceof DataView\n ? data\n : null;\n}\n\n/**\n * @type {CanvasRenderingContext2D|null}\n */\nlet sharedContext = null;\n\n/**\n * @param {ImageLike} image The image.\n * @return {Uint8ClampedArray} The data.\n */\nexport function toArray(image) {\n if (!sharedContext) {\n sharedContext = createCanvasContext2D(\n image.width,\n image.height,\n undefined,\n {willReadFrequently: true}\n );\n }\n const canvas = sharedContext.canvas;\n const width = image.width;\n if (canvas.width !== width) {\n canvas.width = width;\n }\n const height = image.height;\n if (canvas.height !== height) {\n canvas.height = height;\n }\n sharedContext.clearRect(0, 0, width, height);\n sharedContext.drawImage(image, 0, 0);\n return sharedContext.getImageData(0, 0, width, height).data;\n}\n\n/**\n * @type {import('./size.js').Size}\n */\nconst defaultSize = [256, 256];\n\n/**\n * @typedef {Object} Options\n * @property {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @property {function(): Promise} loader Data loader. For loaders that generate images,\n * the promise should not resolve until the image is loaded.\n * @property {number} [transition=250] A duration for tile opacity\n * transitions in milliseconds. A duration of 0 disables the opacity transition.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n * @property {import('./size.js').Size} [size=[256, 256]] Tile size.\n * @api\n */\n\nclass DataTile extends Tile {\n /**\n * @param {Options} options Tile options.\n */\n constructor(options) {\n const state = TileState.IDLE;\n\n super(options.tileCoord, state, {\n transition: options.transition,\n interpolate: options.interpolate,\n });\n\n /**\n * @type {function(): Promise}\n * @private\n */\n this.loader_ = options.loader;\n\n /**\n * @type {Data}\n * @private\n */\n this.data_ = null;\n\n /**\n * @type {Error}\n * @private\n */\n this.error_ = null;\n\n /**\n * @type {import('./size.js').Size|null}\n * @private\n */\n this.size_ = options.size || null;\n }\n\n /**\n * Get the tile size.\n * @return {import('./size.js').Size} Tile size.\n */\n getSize() {\n if (this.size_) {\n return this.size_;\n }\n const imageData = asImageLike(this.data_);\n if (imageData) {\n return [imageData.width, imageData.height];\n }\n return defaultSize;\n }\n\n /**\n * Get the data for the tile.\n * @return {Data} Tile data.\n * @api\n */\n getData() {\n return this.data_;\n }\n\n /**\n * Get any loading error.\n * @return {Error} Loading error.\n * @api\n */\n getError() {\n return this.error_;\n }\n\n /**\n * Load not yet loaded URI.\n * @api\n */\n load() {\n if (this.state !== TileState.IDLE && this.state !== TileState.ERROR) {\n return;\n }\n this.state = TileState.LOADING;\n this.changed();\n\n const self = this;\n this.loader_()\n .then(function (data) {\n self.data_ = data;\n self.state = TileState.LOADED;\n self.changed();\n })\n .catch(function (error) {\n self.error_ = error;\n self.state = TileState.ERROR;\n self.changed();\n });\n }\n}\n\nexport default DataTile;\n","/**\n * @module ol/asserts\n */\n\n/**\n * @param {*} assertion Assertion we expected to be truthy.\n * @param {string} errorMessage Error message.\n */\nexport function assert(assertion, errorMessage) {\n if (!assertion) {\n throw new Error(errorMessage);\n }\n}\n","/**\n * @module ol/Feature\n */\nimport BaseObject from './Object.js';\nimport EventType from './events/EventType.js';\nimport {assert} from './asserts.js';\nimport {listen, unlistenByKey} from './events.js';\n\n/**\n * @typedef {typeof Feature|typeof import(\"./render/Feature.js\").default} FeatureClass\n */\n\n/**\n * @typedef {Feature|import(\"./render/Feature.js\").default} FeatureLike\n */\n\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} FeatureOnSignature\n */\n\n/***\n * @template {import(\"./geom/Geometry.js\").default} [Geometry=import(\"./geom/Geometry.js\").default]\n * @typedef {Object & { geometry?: Geometry }} ObjectWithGeometry\n */\n\n/**\n * @classdesc\n * A vector object for geographic features with a geometry and other\n * attribute properties, similar to the features in vector file formats like\n * GeoJSON.\n *\n * Features can be styled individually with `setStyle`; otherwise they use the\n * style of their vector layer.\n *\n * Note that attribute properties are set as {@link module:ol/Object~BaseObject} properties on\n * the feature object, so they are observable, and have get/set accessors.\n *\n * Typically, a feature has a single geometry property. You can set the\n * geometry using the `setGeometry` method and get it with `getGeometry`.\n * It is possible to store more than one geometry on a feature using attribute\n * properties. By default, the geometry used for rendering is identified by\n * the property name `geometry`. If you want to use another geometry property\n * for rendering, use the `setGeometryName` method to change the attribute\n * property associated with the geometry for the feature. For example:\n *\n * ```js\n *\n * import Feature from 'ol/Feature.js';\n * import Polygon from 'ol/geom/Polygon.js';\n * import Point from 'ol/geom/Point.js';\n *\n * const feature = new Feature({\n * geometry: new Polygon(polyCoords),\n * labelPoint: new Point(labelCoords),\n * name: 'My Polygon',\n * });\n *\n * // get the polygon geometry\n * const poly = feature.getGeometry();\n *\n * // Render the feature as a point using the coordinates from labelPoint\n * feature.setGeometryName('labelPoint');\n *\n * // get the point geometry\n * const point = feature.getGeometry();\n * ```\n *\n * @api\n * @template {import(\"./geom/Geometry.js\").default} [Geometry=import(\"./geom/Geometry.js\").default]\n */\nclass Feature extends BaseObject {\n /**\n * @param {Geometry|ObjectWithGeometry} [geometryOrProperties]\n * You may pass a Geometry object directly, or an object literal containing\n * properties. If you pass an object literal, you may include a Geometry\n * associated with a `geometry` key.\n */\n constructor(geometryOrProperties) {\n super();\n\n /***\n * @type {FeatureOnSignature}\n */\n this.on;\n\n /***\n * @type {FeatureOnSignature}\n */\n this.once;\n\n /***\n * @type {FeatureOnSignature}\n */\n this.un;\n\n /**\n * @private\n * @type {number|string|undefined}\n */\n this.id_ = undefined;\n\n /**\n * @type {string}\n * @private\n */\n this.geometryName_ = 'geometry';\n\n /**\n * User provided style.\n * @private\n * @type {import(\"./style/Style.js\").StyleLike}\n */\n this.style_ = null;\n\n /**\n * @private\n * @type {import(\"./style/Style.js\").StyleFunction|undefined}\n */\n this.styleFunction_ = undefined;\n\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n this.geometryChangeKey_ = null;\n\n this.addChangeListener(this.geometryName_, this.handleGeometryChanged_);\n\n if (geometryOrProperties) {\n if (\n typeof (\n /** @type {?} */ (geometryOrProperties).getSimplifiedGeometry\n ) === 'function'\n ) {\n const geometry = /** @type {Geometry} */ (geometryOrProperties);\n this.setGeometry(geometry);\n } else {\n /** @type {Object} */\n const properties = geometryOrProperties;\n this.setProperties(properties);\n }\n }\n }\n\n /**\n * Clone this feature. If the original feature has a geometry it\n * is also cloned. The feature id is not set in the clone.\n * @return {Feature} The clone.\n * @api\n */\n clone() {\n const clone = /** @type {Feature} */ (\n new Feature(this.hasProperties() ? this.getProperties() : null)\n );\n clone.setGeometryName(this.getGeometryName());\n const geometry = this.getGeometry();\n if (geometry) {\n clone.setGeometry(/** @type {Geometry} */ (geometry.clone()));\n }\n const style = this.getStyle();\n if (style) {\n clone.setStyle(style);\n }\n return clone;\n }\n\n /**\n * Get the feature's default geometry. A feature may have any number of named\n * geometries. The \"default\" geometry (the one that is rendered by default) is\n * set when calling {@link module:ol/Feature~Feature#setGeometry}.\n * @return {Geometry|undefined} The default geometry for the feature.\n * @api\n * @observable\n */\n getGeometry() {\n return /** @type {Geometry|undefined} */ (this.get(this.geometryName_));\n }\n\n /**\n * Get the feature identifier. This is a stable identifier for the feature and\n * is either set when reading data from a remote source or set explicitly by\n * calling {@link module:ol/Feature~Feature#setId}.\n * @return {number|string|undefined} Id.\n * @api\n */\n getId() {\n return this.id_;\n }\n\n /**\n * Get the name of the feature's default geometry. By default, the default\n * geometry is named `geometry`.\n * @return {string} Get the property name associated with the default geometry\n * for this feature.\n * @api\n */\n getGeometryName() {\n return this.geometryName_;\n }\n\n /**\n * Get the feature's style. Will return what was provided to the\n * {@link module:ol/Feature~Feature#setStyle} method.\n * @return {import(\"./style/Style.js\").StyleLike|undefined} The feature style.\n * @api\n */\n getStyle() {\n return this.style_;\n }\n\n /**\n * Get the feature's style function.\n * @return {import(\"./style/Style.js\").StyleFunction|undefined} Return a function\n * representing the current style of this feature.\n * @api\n */\n getStyleFunction() {\n return this.styleFunction_;\n }\n\n /**\n * @private\n */\n handleGeometryChange_() {\n this.changed();\n }\n\n /**\n * @private\n */\n handleGeometryChanged_() {\n if (this.geometryChangeKey_) {\n unlistenByKey(this.geometryChangeKey_);\n this.geometryChangeKey_ = null;\n }\n const geometry = this.getGeometry();\n if (geometry) {\n this.geometryChangeKey_ = listen(\n geometry,\n EventType.CHANGE,\n this.handleGeometryChange_,\n this\n );\n }\n this.changed();\n }\n\n /**\n * Set the default geometry for the feature. This will update the property\n * with the name returned by {@link module:ol/Feature~Feature#getGeometryName}.\n * @param {Geometry|undefined} geometry The new geometry.\n * @api\n * @observable\n */\n setGeometry(geometry) {\n this.set(this.geometryName_, geometry);\n }\n\n /**\n * Set the style for the feature to override the layer style. This can be a\n * single style object, an array of styles, or a function that takes a\n * resolution and returns an array of styles. To unset the feature style, call\n * `setStyle()` without arguments or a falsey value.\n * @param {import(\"./style/Style.js\").StyleLike} [style] Style for this feature.\n * @api\n * @fires module:ol/events/Event~BaseEvent#event:change\n */\n setStyle(style) {\n this.style_ = style;\n this.styleFunction_ = !style ? undefined : createStyleFunction(style);\n this.changed();\n }\n\n /**\n * Set the feature id. The feature id is considered stable and may be used when\n * requesting features or comparing identifiers returned from a remote source.\n * The feature id can be used with the\n * {@link module:ol/source/Vector~VectorSource#getFeatureById} method.\n * @param {number|string|undefined} id The feature id.\n * @api\n * @fires module:ol/events/Event~BaseEvent#event:change\n */\n setId(id) {\n this.id_ = id;\n this.changed();\n }\n\n /**\n * Set the property name to be used when getting the feature's default geometry.\n * When calling {@link module:ol/Feature~Feature#getGeometry}, the value of the property with\n * this name will be returned.\n * @param {string} name The property name of the default geometry.\n * @api\n */\n setGeometryName(name) {\n this.removeChangeListener(this.geometryName_, this.handleGeometryChanged_);\n this.geometryName_ = name;\n this.addChangeListener(this.geometryName_, this.handleGeometryChanged_);\n this.handleGeometryChanged_();\n }\n}\n\n/**\n * Convert the provided object into a feature style function. Functions passed\n * through unchanged. Arrays of Style or single style objects wrapped\n * in a new feature style function.\n * @param {!import(\"./style/Style.js\").StyleFunction|!Array|!import(\"./style/Style.js\").default} obj\n * A feature style function, a single style, or an array of styles.\n * @return {import(\"./style/Style.js\").StyleFunction} A style function.\n */\nexport function createStyleFunction(obj) {\n if (typeof obj === 'function') {\n return obj;\n }\n /**\n * @type {Array}\n */\n let styles;\n if (Array.isArray(obj)) {\n styles = obj;\n } else {\n assert(\n typeof (/** @type {?} */ (obj).getZIndex) === 'function',\n 'Expected an `ol/style/Style` or an array of `ol/style/Style.js`'\n );\n const style = /** @type {import(\"./style/Style.js\").default} */ (obj);\n styles = [style];\n }\n return function () {\n return styles;\n };\n}\nexport default Feature;\n","/**\n * @module ol/transform\n */\nimport {WORKER_OFFSCREEN_CANVAS} from './has.js';\nimport {assert} from './asserts.js';\n\n/**\n * An array representing an affine 2d transformation for use with\n * {@link module:ol/transform} functions. The array has 6 elements.\n * @typedef {!Array} Transform\n * @api\n */\n\n/**\n * Collection of affine 2d transformation functions. The functions work on an\n * array of 6 elements. The element order is compatible with the [SVGMatrix\n * interface](https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix) and is\n * a subset (elements a to f) of a 3×3 matrix:\n * ```\n * [ a c e ]\n * [ b d f ]\n * [ 0 0 1 ]\n * ```\n */\n\n/**\n * @private\n * @type {Transform}\n */\nconst tmp_ = new Array(6);\n\n/**\n * Create an identity transform.\n * @return {!Transform} Identity transform.\n */\nexport function create() {\n return [1, 0, 0, 1, 0, 0];\n}\n\n/**\n * Resets the given transform to an identity transform.\n * @param {!Transform} transform Transform.\n * @return {!Transform} Transform.\n */\nexport function reset(transform) {\n return set(transform, 1, 0, 0, 1, 0, 0);\n}\n\n/**\n * Multiply the underlying matrices of two transforms and return the result in\n * the first transform.\n * @param {!Transform} transform1 Transform parameters of matrix 1.\n * @param {!Transform} transform2 Transform parameters of matrix 2.\n * @return {!Transform} transform1 multiplied with transform2.\n */\nexport function multiply(transform1, transform2) {\n const a1 = transform1[0];\n const b1 = transform1[1];\n const c1 = transform1[2];\n const d1 = transform1[3];\n const e1 = transform1[4];\n const f1 = transform1[5];\n const a2 = transform2[0];\n const b2 = transform2[1];\n const c2 = transform2[2];\n const d2 = transform2[3];\n const e2 = transform2[4];\n const f2 = transform2[5];\n\n transform1[0] = a1 * a2 + c1 * b2;\n transform1[1] = b1 * a2 + d1 * b2;\n transform1[2] = a1 * c2 + c1 * d2;\n transform1[3] = b1 * c2 + d1 * d2;\n transform1[4] = a1 * e2 + c1 * f2 + e1;\n transform1[5] = b1 * e2 + d1 * f2 + f1;\n\n return transform1;\n}\n\n/**\n * Set the transform components a-f on a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} a The a component of the transform.\n * @param {number} b The b component of the transform.\n * @param {number} c The c component of the transform.\n * @param {number} d The d component of the transform.\n * @param {number} e The e component of the transform.\n * @param {number} f The f component of the transform.\n * @return {!Transform} Matrix with transform applied.\n */\nexport function set(transform, a, b, c, d, e, f) {\n transform[0] = a;\n transform[1] = b;\n transform[2] = c;\n transform[3] = d;\n transform[4] = e;\n transform[5] = f;\n return transform;\n}\n\n/**\n * Set transform on one matrix from another matrix.\n * @param {!Transform} transform1 Matrix to set transform to.\n * @param {!Transform} transform2 Matrix to set transform from.\n * @return {!Transform} transform1 with transform from transform2 applied.\n */\nexport function setFromArray(transform1, transform2) {\n transform1[0] = transform2[0];\n transform1[1] = transform2[1];\n transform1[2] = transform2[2];\n transform1[3] = transform2[3];\n transform1[4] = transform2[4];\n transform1[5] = transform2[5];\n return transform1;\n}\n\n/**\n * Transforms the given coordinate with the given transform returning the\n * resulting, transformed coordinate. The coordinate will be modified in-place.\n *\n * @param {Transform} transform The transformation.\n * @param {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} coordinate The coordinate to transform.\n * @return {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} return coordinate so that operations can be\n * chained together.\n */\nexport function apply(transform, coordinate) {\n const x = coordinate[0];\n const y = coordinate[1];\n coordinate[0] = transform[0] * x + transform[2] * y + transform[4];\n coordinate[1] = transform[1] * x + transform[3] * y + transform[5];\n return coordinate;\n}\n\n/**\n * Applies rotation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} angle Angle in radians.\n * @return {!Transform} The rotated transform.\n */\nexport function rotate(transform, angle) {\n const cos = Math.cos(angle);\n const sin = Math.sin(angle);\n return multiply(transform, set(tmp_, cos, sin, -sin, cos, 0, 0));\n}\n\n/**\n * Applies scale to a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scaled transform.\n */\nexport function scale(transform, x, y) {\n return multiply(transform, set(tmp_, x, 0, 0, y, 0, 0));\n}\n\n/**\n * Creates a scale transform.\n * @param {!Transform} target Transform to overwrite.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scale transform.\n */\nexport function makeScale(target, x, y) {\n return set(target, x, 0, 0, y, 0, 0);\n}\n\n/**\n * Applies translation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} dx Translation x.\n * @param {number} dy Translation y.\n * @return {!Transform} The translated transform.\n */\nexport function translate(transform, dx, dy) {\n return multiply(transform, set(tmp_, 1, 0, 0, 1, dx, dy));\n}\n\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative).\n * @param {!Transform} transform The transform (will be modified in place).\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {!Transform} The composite transform.\n */\nexport function compose(transform, dx1, dy1, sx, sy, angle, dx2, dy2) {\n const sin = Math.sin(angle);\n const cos = Math.cos(angle);\n transform[0] = sx * cos;\n transform[1] = sy * sin;\n transform[2] = -sx * sin;\n transform[3] = sy * cos;\n transform[4] = dx2 * sx * cos - dy2 * sx * sin + dx1;\n transform[5] = dx2 * sy * sin + dy2 * sy * cos + dy1;\n return transform;\n}\n\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative). The resulting transform\n * string can be applied as `transform` property of an HTMLElement's style.\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {string} The composite css transform.\n * @api\n */\nexport function composeCssTransform(dx1, dy1, sx, sy, angle, dx2, dy2) {\n return toString(compose(create(), dx1, dy1, sx, sy, angle, dx2, dy2));\n}\n\n/**\n * Invert the given transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (source) transform.\n */\nexport function invert(source) {\n return makeInverse(source, source);\n}\n\n/**\n * Invert the given transform.\n * @param {!Transform} target Transform to be set as the inverse of\n * the source transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (target) transform.\n */\nexport function makeInverse(target, source) {\n const det = determinant(source);\n assert(det !== 0, 'Transformation matrix cannot be inverted');\n\n const a = source[0];\n const b = source[1];\n const c = source[2];\n const d = source[3];\n const e = source[4];\n const f = source[5];\n\n target[0] = d / det;\n target[1] = -b / det;\n target[2] = -c / det;\n target[3] = a / det;\n target[4] = (c * f - d * e) / det;\n target[5] = -(a * f - b * e) / det;\n\n return target;\n}\n\n/**\n * Returns the determinant of the given matrix.\n * @param {!Transform} mat Matrix.\n * @return {number} Determinant.\n */\nexport function determinant(mat) {\n return mat[0] * mat[3] - mat[1] * mat[2];\n}\n\n/**\n * @type {HTMLElement}\n * @private\n */\nlet transformStringDiv;\n\n/**\n * A rounded string version of the transform. This can be used\n * for CSS transforms.\n * @param {!Transform} mat Matrix.\n * @return {string} The transform as a string.\n */\nexport function toString(mat) {\n const transformString = 'matrix(' + mat.join(', ') + ')';\n if (WORKER_OFFSCREEN_CANVAS) {\n return transformString;\n }\n const node =\n transformStringDiv || (transformStringDiv = document.createElement('div'));\n node.style.transform = transformString;\n return node.style.transform;\n}\n","/**\n * @module ol/extent/Relationship\n */\n\n/**\n * Relationship to an extent.\n * @enum {number}\n */\nexport default {\n UNKNOWN: 0,\n INTERSECTING: 1,\n ABOVE: 2,\n RIGHT: 4,\n BELOW: 8,\n LEFT: 16,\n};\n","/**\n * @module ol/extent\n */\nimport Relationship from './extent/Relationship.js';\n\n/**\n * An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.\n * @typedef {Array} Extent\n * @api\n */\n\n/**\n * Extent corner.\n * @typedef {'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'} Corner\n */\n\n/**\n * Build an extent that includes all given coordinates.\n *\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Bounding extent.\n * @api\n */\nexport function boundingExtent(coordinates) {\n const extent = createEmpty();\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n\n/**\n * @param {Array} xs Xs.\n * @param {Array} ys Ys.\n * @param {Extent} [dest] Destination extent.\n * @private\n * @return {Extent} Extent.\n */\nfunction _boundingExtentXYs(xs, ys, dest) {\n const minX = Math.min.apply(null, xs);\n const minY = Math.min.apply(null, ys);\n const maxX = Math.max.apply(null, xs);\n const maxY = Math.max.apply(null, ys);\n return createOrUpdate(minX, minY, maxX, maxY, dest);\n}\n\n/**\n * Return extent increased by the provided value.\n * @param {Extent} extent Extent.\n * @param {number} value The amount by which the extent should be buffered.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n * @api\n */\nexport function buffer(extent, value, dest) {\n if (dest) {\n dest[0] = extent[0] - value;\n dest[1] = extent[1] - value;\n dest[2] = extent[2] + value;\n dest[3] = extent[3] + value;\n return dest;\n }\n return [\n extent[0] - value,\n extent[1] - value,\n extent[2] + value,\n extent[3] + value,\n ];\n}\n\n/**\n * Creates a clone of an extent.\n *\n * @param {Extent} extent Extent to clone.\n * @param {Extent} [dest] Extent.\n * @return {Extent} The clone.\n */\nexport function clone(extent, dest) {\n if (dest) {\n dest[0] = extent[0];\n dest[1] = extent[1];\n dest[2] = extent[2];\n dest[3] = extent[3];\n return dest;\n }\n return extent.slice();\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {number} Closest squared distance.\n */\nexport function closestSquaredDistanceXY(extent, x, y) {\n let dx, dy;\n if (x < extent[0]) {\n dx = extent[0] - x;\n } else if (extent[2] < x) {\n dx = x - extent[2];\n } else {\n dx = 0;\n }\n if (y < extent[1]) {\n dy = extent[1] - y;\n } else if (extent[3] < y) {\n dy = y - extent[3];\n } else {\n dy = 0;\n }\n return dx * dx + dy * dy;\n}\n\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} The coordinate is contained in the extent.\n * @api\n */\nexport function containsCoordinate(extent, coordinate) {\n return containsXY(extent, coordinate[0], coordinate[1]);\n}\n\n/**\n * Check if one extent contains another.\n *\n * An extent is deemed contained if it lies completely within the other extent,\n * including if they share one or more edges.\n *\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The second extent is contained by or on the edge of the\n * first.\n * @api\n */\nexport function containsExtent(extent1, extent2) {\n return (\n extent1[0] <= extent2[0] &&\n extent2[2] <= extent1[2] &&\n extent1[1] <= extent2[1] &&\n extent2[3] <= extent1[3]\n );\n}\n\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {number} x X coordinate.\n * @param {number} y Y coordinate.\n * @return {boolean} The x, y values are contained in the extent.\n * @api\n */\nexport function containsXY(extent, x, y) {\n return extent[0] <= x && x <= extent[2] && extent[1] <= y && y <= extent[3];\n}\n\n/**\n * Get the relationship between a coordinate and extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate The coordinate.\n * @return {import(\"./extent/Relationship.js\").default} The relationship (bitwise compare with\n * import(\"./extent/Relationship.js\").Relationship).\n */\nexport function coordinateRelationship(extent, coordinate) {\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const x = coordinate[0];\n const y = coordinate[1];\n let relationship = Relationship.UNKNOWN;\n if (x < minX) {\n relationship = relationship | Relationship.LEFT;\n } else if (x > maxX) {\n relationship = relationship | Relationship.RIGHT;\n }\n if (y < minY) {\n relationship = relationship | Relationship.BELOW;\n } else if (y > maxY) {\n relationship = relationship | Relationship.ABOVE;\n }\n if (relationship === Relationship.UNKNOWN) {\n relationship = Relationship.INTERSECTING;\n }\n return relationship;\n}\n\n/**\n * Create an empty extent.\n * @return {Extent} Empty extent.\n * @api\n */\nexport function createEmpty() {\n return [Infinity, Infinity, -Infinity, -Infinity];\n}\n\n/**\n * Create a new extent or update the provided extent.\n * @param {number} minX Minimum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxX Maximum X.\n * @param {number} maxY Maximum Y.\n * @param {Extent} [dest] Destination extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdate(minX, minY, maxX, maxY, dest) {\n if (dest) {\n dest[0] = minX;\n dest[1] = minY;\n dest[2] = maxX;\n dest[3] = maxY;\n return dest;\n }\n return [minX, minY, maxX, maxY];\n}\n\n/**\n * Create a new empty extent or make the provided one empty.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateEmpty(dest) {\n return createOrUpdate(Infinity, Infinity, -Infinity, -Infinity, dest);\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinate(coordinate, dest) {\n const x = coordinate[0];\n const y = coordinate[1];\n return createOrUpdate(x, y, x, y, dest);\n}\n\n/**\n * @param {Array} coordinates Coordinates.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinates(coordinates, dest) {\n const extent = createOrUpdateEmpty(dest);\n return extendCoordinates(extent, coordinates);\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromFlatCoordinates(\n flatCoordinates,\n offset,\n end,\n stride,\n dest\n) {\n const extent = createOrUpdateEmpty(dest);\n return extendFlatCoordinates(extent, flatCoordinates, offset, end, stride);\n}\n\n/**\n * @param {Array>} rings Rings.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromRings(rings, dest) {\n const extent = createOrUpdateEmpty(dest);\n return extendRings(extent, rings);\n}\n\n/**\n * Determine if two extents are equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The two extents are equivalent.\n * @api\n */\nexport function equals(extent1, extent2) {\n return (\n extent1[0] == extent2[0] &&\n extent1[2] == extent2[2] &&\n extent1[1] == extent2[1] &&\n extent1[3] == extent2[3]\n );\n}\n\n/**\n * Determine if two extents are approximately equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {number} tolerance Tolerance in extent coordinate units.\n * @return {boolean} The two extents differ by less than the tolerance.\n */\nexport function approximatelyEquals(extent1, extent2, tolerance) {\n return (\n Math.abs(extent1[0] - extent2[0]) < tolerance &&\n Math.abs(extent1[2] - extent2[2]) < tolerance &&\n Math.abs(extent1[1] - extent2[1]) < tolerance &&\n Math.abs(extent1[3] - extent2[3]) < tolerance\n );\n}\n\n/**\n * Modify an extent to include another extent.\n * @param {Extent} extent1 The extent to be modified.\n * @param {Extent} extent2 The extent that will be included in the first.\n * @return {Extent} A reference to the first (extended) extent.\n * @api\n */\nexport function extend(extent1, extent2) {\n if (extent2[0] < extent1[0]) {\n extent1[0] = extent2[0];\n }\n if (extent2[2] > extent1[2]) {\n extent1[2] = extent2[2];\n }\n if (extent2[1] < extent1[1]) {\n extent1[1] = extent2[1];\n }\n if (extent2[3] > extent1[3]) {\n extent1[3] = extent2[3];\n }\n return extent1;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n */\nexport function extendCoordinate(extent, coordinate) {\n if (coordinate[0] < extent[0]) {\n extent[0] = coordinate[0];\n }\n if (coordinate[0] > extent[2]) {\n extent[2] = coordinate[0];\n }\n if (coordinate[1] < extent[1]) {\n extent[1] = coordinate[1];\n }\n if (coordinate[1] > extent[3]) {\n extent[3] = coordinate[1];\n }\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Extent.\n */\nexport function extendCoordinates(extent, coordinates) {\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Extent} Extent.\n */\nexport function extendFlatCoordinates(\n extent,\n flatCoordinates,\n offset,\n end,\n stride\n) {\n for (; offset < end; offset += stride) {\n extendXY(extent, flatCoordinates[offset], flatCoordinates[offset + 1]);\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array>} rings Rings.\n * @return {Extent} Extent.\n */\nexport function extendRings(extent, rings) {\n for (let i = 0, ii = rings.length; i < ii; ++i) {\n extendCoordinates(extent, rings[i]);\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n */\nexport function extendXY(extent, x, y) {\n extent[0] = Math.min(extent[0], x);\n extent[1] = Math.min(extent[1], y);\n extent[2] = Math.max(extent[2], x);\n extent[3] = Math.max(extent[3], y);\n}\n\n/**\n * This function calls `callback` for each corner of the extent. If the\n * callback returns a truthy value the function returns that value\n * immediately. Otherwise the function returns `false`.\n * @param {Extent} extent Extent.\n * @param {function(import(\"./coordinate.js\").Coordinate): S} callback Callback.\n * @return {S|boolean} Value.\n * @template S\n */\nexport function forEachCorner(extent, callback) {\n let val;\n val = callback(getBottomLeft(extent));\n if (val) {\n return val;\n }\n val = callback(getBottomRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopLeft(extent));\n if (val) {\n return val;\n }\n return false;\n}\n\n/**\n * Get the size of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Area.\n * @api\n */\nexport function getArea(extent) {\n let area = 0;\n if (!isEmpty(extent)) {\n area = getWidth(extent) * getHeight(extent);\n }\n return area;\n}\n\n/**\n * Get the bottom left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom left coordinate.\n * @api\n */\nexport function getBottomLeft(extent) {\n return [extent[0], extent[1]];\n}\n\n/**\n * Get the bottom right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom right coordinate.\n * @api\n */\nexport function getBottomRight(extent) {\n return [extent[2], extent[1]];\n}\n\n/**\n * Get the center coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Center.\n * @api\n */\nexport function getCenter(extent) {\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\n}\n\n/**\n * Get a corner coordinate of an extent.\n * @param {Extent} extent Extent.\n * @param {Corner} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n let coordinate;\n if (corner === 'bottom-left') {\n coordinate = getBottomLeft(extent);\n } else if (corner === 'bottom-right') {\n coordinate = getBottomRight(extent);\n } else if (corner === 'top-left') {\n coordinate = getTopLeft(extent);\n } else if (corner === 'top-right') {\n coordinate = getTopRight(extent);\n } else {\n throw new Error('Invalid corner');\n }\n return coordinate;\n}\n\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Enlarged area.\n */\nexport function getEnlargedArea(extent1, extent2) {\n const minX = Math.min(extent1[0], extent2[0]);\n const minY = Math.min(extent1[1], extent2[1]);\n const maxX = Math.max(extent1[2], extent2[2]);\n const maxY = Math.max(extent1[3], extent2[3]);\n return (maxX - minX) * (maxY - minY);\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @param {Extent} [dest] Destination extent.\n * @return {Extent} Extent.\n */\nexport function getForViewAndSize(center, resolution, rotation, size, dest) {\n const [x0, y0, x1, y1, x2, y2, x3, y3] = getRotatedViewport(\n center,\n resolution,\n rotation,\n size\n );\n return createOrUpdate(\n Math.min(x0, x1, x2, x3),\n Math.min(y0, y1, y2, y3),\n Math.max(x0, x1, x2, x3),\n Math.max(y0, y1, y2, y3),\n dest\n );\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @return {Array} Linear ring representing the viewport.\n */\nexport function getRotatedViewport(center, resolution, rotation, size) {\n const dx = (resolution * size[0]) / 2;\n const dy = (resolution * size[1]) / 2;\n const cosRotation = Math.cos(rotation);\n const sinRotation = Math.sin(rotation);\n const xCos = dx * cosRotation;\n const xSin = dx * sinRotation;\n const yCos = dy * cosRotation;\n const ySin = dy * sinRotation;\n const x = center[0];\n const y = center[1];\n return [\n x - xCos + ySin,\n y - xSin - yCos,\n x - xCos - ySin,\n y - xSin + yCos,\n x + xCos - ySin,\n y + xSin + yCos,\n x + xCos + ySin,\n y + xSin - yCos,\n x - xCos + ySin,\n y - xSin - yCos,\n ];\n}\n\n/**\n * Get the height of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Height.\n * @api\n */\nexport function getHeight(extent) {\n return extent[3] - extent[1];\n}\n\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Intersection area.\n */\nexport function getIntersectionArea(extent1, extent2) {\n const intersection = getIntersection(extent1, extent2);\n return getArea(intersection);\n}\n\n/**\n * Get the intersection of two extents.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {Extent} [dest] Optional extent to populate with intersection.\n * @return {Extent} Intersecting extent.\n * @api\n */\nexport function getIntersection(extent1, extent2, dest) {\n const intersection = dest ? dest : createEmpty();\n if (intersects(extent1, extent2)) {\n if (extent1[0] > extent2[0]) {\n intersection[0] = extent1[0];\n } else {\n intersection[0] = extent2[0];\n }\n if (extent1[1] > extent2[1]) {\n intersection[1] = extent1[1];\n } else {\n intersection[1] = extent2[1];\n }\n if (extent1[2] < extent2[2]) {\n intersection[2] = extent1[2];\n } else {\n intersection[2] = extent2[2];\n }\n if (extent1[3] < extent2[3]) {\n intersection[3] = extent1[3];\n } else {\n intersection[3] = extent2[3];\n }\n } else {\n createOrUpdateEmpty(intersection);\n }\n return intersection;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @return {number} Margin.\n */\nexport function getMargin(extent) {\n return getWidth(extent) + getHeight(extent);\n}\n\n/**\n * Get the size (width, height) of an extent.\n * @param {Extent} extent The extent.\n * @return {import(\"./size.js\").Size} The extent size.\n * @api\n */\nexport function getSize(extent) {\n return [extent[2] - extent[0], extent[3] - extent[1]];\n}\n\n/**\n * Get the top left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top left coordinate.\n * @api\n */\nexport function getTopLeft(extent) {\n return [extent[0], extent[3]];\n}\n\n/**\n * Get the top right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top right coordinate.\n * @api\n */\nexport function getTopRight(extent) {\n return [extent[2], extent[3]];\n}\n\n/**\n * Get the width of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Width.\n * @api\n */\nexport function getWidth(extent) {\n return extent[2] - extent[0];\n}\n\n/**\n * Determine if one extent intersects another.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent.\n * @return {boolean} The two extents intersect.\n * @api\n */\nexport function intersects(extent1, extent2) {\n return (\n extent1[0] <= extent2[2] &&\n extent1[2] >= extent2[0] &&\n extent1[1] <= extent2[3] &&\n extent1[3] >= extent2[1]\n );\n}\n\n/**\n * Determine if an extent is empty.\n * @param {Extent} extent Extent.\n * @return {boolean} Is empty.\n * @api\n */\nexport function isEmpty(extent) {\n return extent[2] < extent[0] || extent[3] < extent[1];\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function returnOrUpdate(extent, dest) {\n if (dest) {\n dest[0] = extent[0];\n dest[1] = extent[1];\n dest[2] = extent[2];\n dest[3] = extent[3];\n return dest;\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} value Value.\n */\nexport function scaleFromCenter(extent, value) {\n const deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);\n const deltaY = ((extent[3] - extent[1]) / 2) * (value - 1);\n extent[0] -= deltaX;\n extent[2] += deltaX;\n extent[1] -= deltaY;\n extent[3] += deltaY;\n}\n\n/**\n * Determine if the segment between two coordinates intersects (crosses,\n * touches, or is contained by) the provided extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} start Segment start coordinate.\n * @param {import(\"./coordinate.js\").Coordinate} end Segment end coordinate.\n * @return {boolean} The segment intersects the extent.\n */\nexport function intersectsSegment(extent, start, end) {\n let intersects = false;\n const startRel = coordinateRelationship(extent, start);\n const endRel = coordinateRelationship(extent, end);\n if (\n startRel === Relationship.INTERSECTING ||\n endRel === Relationship.INTERSECTING\n ) {\n intersects = true;\n } else {\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const startX = start[0];\n const startY = start[1];\n const endX = end[0];\n const endY = end[1];\n const slope = (endY - startY) / (endX - startX);\n let x, y;\n if (!!(endRel & Relationship.ABOVE) && !(startRel & Relationship.ABOVE)) {\n // potentially intersects top\n x = endX - (endY - maxY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (\n !intersects &&\n !!(endRel & Relationship.RIGHT) &&\n !(startRel & Relationship.RIGHT)\n ) {\n // potentially intersects right\n y = endY - (endX - maxX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n if (\n !intersects &&\n !!(endRel & Relationship.BELOW) &&\n !(startRel & Relationship.BELOW)\n ) {\n // potentially intersects bottom\n x = endX - (endY - minY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (\n !intersects &&\n !!(endRel & Relationship.LEFT) &&\n !(startRel & Relationship.LEFT)\n ) {\n // potentially intersects left\n y = endY - (endX - minX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n }\n return intersects;\n}\n\n/**\n * Apply a transform function to the extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./proj.js\").TransformFunction} transformFn Transform function.\n * Called with `[minX, minY, maxX, maxY]` extent coordinates.\n * @param {Extent} [dest] Destination extent.\n * @param {number} [stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {Extent} Extent.\n * @api\n */\nexport function applyTransform(extent, transformFn, dest, stops) {\n if (isEmpty(extent)) {\n return createOrUpdateEmpty(dest);\n }\n let coordinates = [];\n if (stops > 1) {\n const width = extent[2] - extent[0];\n const height = extent[3] - extent[1];\n for (let i = 0; i < stops; ++i) {\n coordinates.push(\n extent[0] + (width * i) / stops,\n extent[1],\n extent[2],\n extent[1] + (height * i) / stops,\n extent[2] - (width * i) / stops,\n extent[3],\n extent[0],\n extent[3] - (height * i) / stops\n );\n }\n } else {\n coordinates = [\n extent[0],\n extent[1],\n extent[2],\n extent[1],\n extent[2],\n extent[3],\n extent[0],\n extent[3],\n ];\n }\n transformFn(coordinates, coordinates, 2);\n const xs = [];\n const ys = [];\n for (let i = 0, l = coordinates.length; i < l; i += 2) {\n xs.push(coordinates[i]);\n ys.push(coordinates[i + 1]);\n }\n return _boundingExtentXYs(xs, ys, dest);\n}\n\n/**\n * Modifies the provided extent in-place to be within the real world\n * extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Extent} The extent within the real world extent.\n */\nexport function wrapX(extent, projection) {\n const projectionExtent = projection.getExtent();\n const center = getCenter(extent);\n if (\n projection.canWrapX() &&\n (center[0] < projectionExtent[0] || center[0] >= projectionExtent[2])\n ) {\n const worldWidth = getWidth(projectionExtent);\n const worldsAway = Math.floor(\n (center[0] - projectionExtent[0]) / worldWidth\n );\n const offset = worldsAway * worldWidth;\n extent[0] -= offset;\n extent[2] -= offset;\n }\n return extent;\n}\n\n/**\n * Fits the extent to the real world\n *\n * If the extent does not cross the anti meridian, this will return the extent in an array\n * If the extent crosses the anti meridian, the extent will be sliced, so each part fits within the\n * real world\n *\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Array} The extent within the real world extent.\n */\nexport function wrapAndSliceX(extent, projection) {\n if (projection.canWrapX()) {\n const projectionExtent = projection.getExtent();\n\n if (!isFinite(extent[0]) || !isFinite(extent[2])) {\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n\n wrapX(extent, projection);\n const worldWidth = getWidth(projectionExtent);\n\n if (getWidth(extent) > worldWidth) {\n // the extent wraps around on itself\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n if (extent[0] < projectionExtent[0]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0] + worldWidth, extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2], extent[3]],\n ];\n }\n if (extent[2] > projectionExtent[2]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0], extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2] - worldWidth, extent[3]],\n ];\n }\n }\n\n return [extent];\n}\n","/**\n * @module ol/proj/Units\n */\n\n/**\n * @typedef {'radians' | 'degrees' | 'ft' | 'm' | 'pixels' | 'tile-pixels' | 'us-ft'} Units\n * Projection units.\n */\n\n/**\n * See http://duff.ess.washington.edu/data/raster/drg/docs/geotiff.txt\n * @type {Object}\n */\nconst unitByCode = {\n '9001': 'm',\n '9002': 'ft',\n '9003': 'us-ft',\n '9101': 'radians',\n '9102': 'degrees',\n};\n\n/**\n * @param {number} code Unit code.\n * @return {Units} Units.\n */\nexport function fromCode(code) {\n return unitByCode[code];\n}\n\n/**\n * @typedef {Object} MetersPerUnitLookup\n * @property {number} radians Radians\n * @property {number} degrees Degrees\n * @property {number} ft Feet\n * @property {number} m Meters\n * @property {number} us-ft US feet\n */\n\n/**\n * Meters per unit lookup table.\n * @const\n * @type {MetersPerUnitLookup}\n * @api\n */\nexport const METERS_PER_UNIT = {\n // use the radius of the Normal sphere\n 'radians': 6370997 / (2 * Math.PI),\n 'degrees': (2 * Math.PI * 6370997) / 360,\n 'ft': 0.3048,\n 'm': 1,\n 'us-ft': 1200 / 3937,\n};\n","/**\n * @module ol/proj/Projection\n */\nimport {METERS_PER_UNIT} from './Units.js';\n\n/**\n * @typedef {Object} Options\n * @property {string} code The SRS identifier code, e.g. `EPSG:4326`.\n * @property {import(\"./Units.js\").Units} [units] Units. Required unless a\n * proj4 projection is defined for `code`.\n * @property {import(\"../extent.js\").Extent} [extent] The validity extent for the SRS.\n * @property {string} [axisOrientation='enu'] The axis orientation as specified in Proj4.\n * @property {boolean} [global=false] Whether the projection is valid for the whole globe.\n * @property {number} [metersPerUnit] The meters per unit for the SRS.\n * If not provided, the `units` are used to get the meters per unit from the {@link METERS_PER_UNIT}\n * lookup table.\n * @property {import(\"../extent.js\").Extent} [worldExtent] The world extent for the SRS.\n * @property {function(number, import(\"../coordinate.js\").Coordinate):number} [getPointResolution]\n * Function to determine resolution at a point. The function is called with a\n * `number` view resolution and a {@link module:ol/coordinate~Coordinate} as arguments, and returns\n * the `number` resolution in projection units at the passed coordinate. If this is `undefined`,\n * the default {@link module:ol/proj.getPointResolution} function will be used.\n */\n\n/**\n * @classdesc\n * Projection definition class. One of these is created for each projection\n * supported in the application and stored in the {@link module:ol/proj} namespace.\n * You can use these in applications, but this is not required, as API params\n * and options use {@link module:ol/proj~ProjectionLike} which means the simple string\n * code will suffice.\n *\n * You can use {@link module:ol/proj.get} to retrieve the object for a particular\n * projection.\n *\n * The library includes definitions for `EPSG:4326` and `EPSG:3857`, together\n * with the following aliases:\n * * `EPSG:4326`: CRS:84, urn:ogc:def:crs:EPSG:6.6:4326,\n * urn:ogc:def:crs:OGC:1.3:CRS84, urn:ogc:def:crs:OGC:2:84,\n * http://www.opengis.net/gml/srs/epsg.xml#4326,\n * urn:x-ogc:def:crs:EPSG:4326\n * * `EPSG:3857`: EPSG:102100, EPSG:102113, EPSG:900913,\n * urn:ogc:def:crs:EPSG:6.18:3:3857,\n * http://www.opengis.net/gml/srs/epsg.xml#3857\n *\n * If you use [proj4js](https://github.com/proj4js/proj4js), aliases can\n * be added using `proj4.defs()`. After all required projection definitions are\n * added, call the {@link module:ol/proj/proj4.register} function.\n *\n * @api\n */\nclass Projection {\n /**\n * @param {Options} options Projection options.\n */\n constructor(options) {\n /**\n * @private\n * @type {string}\n */\n this.code_ = options.code;\n\n /**\n * Units of projected coordinates. When set to `TILE_PIXELS`, a\n * `this.extent_` and `this.worldExtent_` must be configured properly for each\n * tile.\n * @private\n * @type {import(\"./Units.js\").Units}\n */\n this.units_ = /** @type {import(\"./Units.js\").Units} */ (options.units);\n\n /**\n * Validity extent of the projection in projected coordinates. For projections\n * with `TILE_PIXELS` units, this is the extent of the tile in\n * tile pixel space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = options.extent !== undefined ? options.extent : null;\n\n /**\n * Extent of the world in EPSG:4326. For projections with\n * `TILE_PIXELS` units, this is the extent of the tile in\n * projected coordinate space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.worldExtent_ =\n options.worldExtent !== undefined ? options.worldExtent : null;\n\n /**\n * @private\n * @type {string}\n */\n this.axisOrientation_ =\n options.axisOrientation !== undefined ? options.axisOrientation : 'enu';\n\n /**\n * @private\n * @type {boolean}\n */\n this.global_ = options.global !== undefined ? options.global : false;\n\n /**\n * @private\n * @type {boolean}\n */\n this.canWrapX_ = !!(this.global_ && this.extent_);\n\n /**\n * @private\n * @type {function(number, import(\"../coordinate.js\").Coordinate):number|undefined}\n */\n this.getPointResolutionFunc_ = options.getPointResolution;\n\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n this.defaultTileGrid_ = null;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.metersPerUnit_ = options.metersPerUnit;\n }\n\n /**\n * @return {boolean} The projection is suitable for wrapping the x-axis\n */\n canWrapX() {\n return this.canWrapX_;\n }\n\n /**\n * Get the code for this projection, e.g. 'EPSG:4326'.\n * @return {string} Code.\n * @api\n */\n getCode() {\n return this.code_;\n }\n\n /**\n * Get the validity extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n getExtent() {\n return this.extent_;\n }\n\n /**\n * Get the units of this projection.\n * @return {import(\"./Units.js\").Units} Units.\n * @api\n */\n getUnits() {\n return this.units_;\n }\n\n /**\n * Get the amount of meters per unit of this projection. If the projection is\n * not configured with `metersPerUnit` or a units identifier, the return is\n * `undefined`.\n * @return {number|undefined} Meters.\n * @api\n */\n getMetersPerUnit() {\n return this.metersPerUnit_ || METERS_PER_UNIT[this.units_];\n }\n\n /**\n * Get the world extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n getWorldExtent() {\n return this.worldExtent_;\n }\n\n /**\n * Get the axis orientation of this projection.\n * Example values are:\n * enu - the default easting, northing, elevation.\n * neu - northing, easting, up - useful for \"lat/long\" geographic coordinates,\n * or south orientated transverse mercator.\n * wnu - westing, northing, up - some planetary coordinate systems have\n * \"west positive\" coordinate systems\n * @return {string} Axis orientation.\n * @api\n */\n getAxisOrientation() {\n return this.axisOrientation_;\n }\n\n /**\n * Is this projection a global projection which spans the whole world?\n * @return {boolean} Whether the projection is global.\n * @api\n */\n isGlobal() {\n return this.global_;\n }\n\n /**\n * Set if the projection is a global projection which spans the whole world\n * @param {boolean} global Whether the projection is global.\n * @api\n */\n setGlobal(global) {\n this.global_ = global;\n this.canWrapX_ = !!(global && this.extent_);\n }\n\n /**\n * @return {import(\"../tilegrid/TileGrid.js\").default} The default tile grid.\n */\n getDefaultTileGrid() {\n return this.defaultTileGrid_;\n }\n\n /**\n * @param {import(\"../tilegrid/TileGrid.js\").default} tileGrid The default tile grid.\n */\n setDefaultTileGrid(tileGrid) {\n this.defaultTileGrid_ = tileGrid;\n }\n\n /**\n * Set the validity extent for this projection.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n setExtent(extent) {\n this.extent_ = extent;\n this.canWrapX_ = !!(this.global_ && extent);\n }\n\n /**\n * Set the world extent for this projection.\n * @param {import(\"../extent.js\").Extent} worldExtent World extent\n * [minlon, minlat, maxlon, maxlat].\n * @api\n */\n setWorldExtent(worldExtent) {\n this.worldExtent_ = worldExtent;\n }\n\n /**\n * Set the getPointResolution function (see {@link module:ol/proj.getPointResolution}\n * for this projection.\n * @param {function(number, import(\"../coordinate.js\").Coordinate):number} func Function\n * @api\n */\n setGetPointResolution(func) {\n this.getPointResolutionFunc_ = func;\n }\n\n /**\n * Get the custom point resolution function for this projection (if set).\n * @return {function(number, import(\"../coordinate.js\").Coordinate):number|undefined} The custom point\n * resolution function (if set).\n */\n getPointResolutionFunc() {\n return this.getPointResolutionFunc_;\n }\n}\n\nexport default Projection;\n","/**\n * @module ol/proj/epsg3857\n */\nimport Projection from './Projection.js';\n\n/**\n * Radius of WGS84 sphere\n *\n * @const\n * @type {number}\n */\nexport const RADIUS = 6378137;\n\n/**\n * @const\n * @type {number}\n */\nexport const HALF_SIZE = Math.PI * RADIUS;\n\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const EXTENT = [-HALF_SIZE, -HALF_SIZE, HALF_SIZE, HALF_SIZE];\n\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const WORLD_EXTENT = [-180, -85, 180, 85];\n\n/**\n * Maximum safe value in y direction\n * @const\n * @type {number}\n */\nexport const MAX_SAFE_Y = RADIUS * Math.log(Math.tan(Math.PI / 2));\n\n/**\n * @classdesc\n * Projection object for web/spherical Mercator (EPSG:3857).\n */\nclass EPSG3857Projection extends Projection {\n /**\n * @param {string} code Code.\n */\n constructor(code) {\n super({\n code: code,\n units: 'm',\n extent: EXTENT,\n global: true,\n worldExtent: WORLD_EXTENT,\n getPointResolution: function (resolution, point) {\n return resolution / Math.cosh(point[1] / RADIUS);\n },\n });\n }\n}\n\n/**\n * Projections equal to EPSG:3857.\n *\n * @const\n * @type {Array}\n */\nexport const PROJECTIONS = [\n new EPSG3857Projection('EPSG:3857'),\n new EPSG3857Projection('EPSG:102100'),\n new EPSG3857Projection('EPSG:102113'),\n new EPSG3857Projection('EPSG:900913'),\n new EPSG3857Projection('http://www.opengis.net/def/crs/EPSG/0/3857'),\n new EPSG3857Projection('http://www.opengis.net/gml/srs/epsg.xml#3857'),\n];\n\n/**\n * Transformation from EPSG:4326 to EPSG:3857.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [output] Output array of coordinate values.\n * @param {number} [dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function fromEPSG4326(input, output, dimension) {\n const length = input.length;\n dimension = dimension > 1 ? dimension : 2;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n } else {\n output = new Array(length);\n }\n }\n for (let i = 0; i < length; i += dimension) {\n output[i] = (HALF_SIZE * input[i]) / 180;\n let y = RADIUS * Math.log(Math.tan((Math.PI * (+input[i + 1] + 90)) / 360));\n if (y > MAX_SAFE_Y) {\n y = MAX_SAFE_Y;\n } else if (y < -MAX_SAFE_Y) {\n y = -MAX_SAFE_Y;\n }\n output[i + 1] = y;\n }\n return output;\n}\n\n/**\n * Transformation from EPSG:3857 to EPSG:4326.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [output] Output array of coordinate values.\n * @param {number} [dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function toEPSG4326(input, output, dimension) {\n const length = input.length;\n dimension = dimension > 1 ? dimension : 2;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n } else {\n output = new Array(length);\n }\n }\n for (let i = 0; i < length; i += dimension) {\n output[i] = (180 * input[i]) / HALF_SIZE;\n output[i + 1] =\n (360 * Math.atan(Math.exp(input[i + 1] / RADIUS))) / Math.PI - 90;\n }\n return output;\n}\n","/**\n * @module ol/proj/epsg4326\n */\nimport Projection from './Projection.js';\n\n/**\n * Semi-major radius of the WGS84 ellipsoid.\n *\n * @const\n * @type {number}\n */\nexport const RADIUS = 6378137;\n\n/**\n * Extent of the EPSG:4326 projection which is the whole world.\n *\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const EXTENT = [-180, -90, 180, 90];\n\n/**\n * @const\n * @type {number}\n */\nexport const METERS_PER_UNIT = (Math.PI * RADIUS) / 180;\n\n/**\n * @classdesc\n * Projection object for WGS84 geographic coordinates (EPSG:4326).\n *\n * Note that OpenLayers does not strictly comply with the EPSG definition.\n * The EPSG registry defines 4326 as a CRS for Latitude,Longitude (y,x).\n * OpenLayers treats EPSG:4326 as a pseudo-projection, with x,y coordinates.\n */\nclass EPSG4326Projection extends Projection {\n /**\n * @param {string} code Code.\n * @param {string} [axisOrientation] Axis orientation.\n */\n constructor(code, axisOrientation) {\n super({\n code: code,\n units: 'degrees',\n extent: EXTENT,\n axisOrientation: axisOrientation,\n global: true,\n metersPerUnit: METERS_PER_UNIT,\n worldExtent: EXTENT,\n });\n }\n}\n\n/**\n * Projections equal to EPSG:4326.\n *\n * @const\n * @type {Array}\n */\nexport const PROJECTIONS = [\n new EPSG4326Projection('CRS:84'),\n new EPSG4326Projection('EPSG:4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:1.3:CRS84'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:2:84'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/OGC/1.3/CRS84'),\n new EPSG4326Projection('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/EPSG/0/4326', 'neu'),\n];\n","/**\n * @module ol/proj/projections\n */\n\n/**\n * @type {Object}\n */\nlet cache = {};\n\n/**\n * Clear the projections cache.\n */\nexport function clear() {\n cache = {};\n}\n\n/**\n * Get a cached projection by code.\n * @param {string} code The code for the projection.\n * @return {import(\"./Projection.js\").default} The projection (if cached).\n */\nexport function get(code) {\n return (\n cache[code] ||\n cache[code.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\\w+)$/, 'EPSG:$3')] ||\n null\n );\n}\n\n/**\n * Add a projection to the cache.\n * @param {string} code The projection code.\n * @param {import(\"./Projection.js\").default} projection The projection to cache.\n */\nexport function add(code, projection) {\n cache[code] = projection;\n}\n","/**\n * @module ol/proj/transforms\n */\nimport {isEmpty} from '../obj.js';\n\n/**\n * @private\n * @type {!Object>}\n */\nlet transforms = {};\n\n/**\n * Clear the transform cache.\n */\nexport function clear() {\n transforms = {};\n}\n\n/**\n * Registers a conversion function to convert coordinates from the source\n * projection to the destination projection.\n *\n * @param {import(\"./Projection.js\").default} source Source.\n * @param {import(\"./Projection.js\").default} destination Destination.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform.\n */\nexport function add(source, destination, transformFn) {\n const sourceCode = source.getCode();\n const destinationCode = destination.getCode();\n if (!(sourceCode in transforms)) {\n transforms[sourceCode] = {};\n }\n transforms[sourceCode][destinationCode] = transformFn;\n}\n\n/**\n * Unregisters the conversion function to convert coordinates from the source\n * projection to the destination projection. This method is used to clean up\n * cached transforms during testing.\n *\n * @param {import(\"./Projection.js\").default} source Source projection.\n * @param {import(\"./Projection.js\").default} destination Destination projection.\n * @return {import(\"../proj.js\").TransformFunction} transformFn The unregistered transform.\n */\nexport function remove(source, destination) {\n const sourceCode = source.getCode();\n const destinationCode = destination.getCode();\n const transform = transforms[sourceCode][destinationCode];\n delete transforms[sourceCode][destinationCode];\n if (isEmpty(transforms[sourceCode])) {\n delete transforms[sourceCode];\n }\n return transform;\n}\n\n/**\n * Get a transform given a source code and a destination code.\n * @param {string} sourceCode The code for the source projection.\n * @param {string} destinationCode The code for the destination projection.\n * @return {import(\"../proj.js\").TransformFunction|undefined} The transform function (if found).\n */\nexport function get(sourceCode, destinationCode) {\n let transform;\n if (sourceCode in transforms && destinationCode in transforms[sourceCode]) {\n transform = transforms[sourceCode][destinationCode];\n }\n return transform;\n}\n","/**\n * @module ol/math\n */\n\n/**\n * Takes a number and clamps it to within the provided bounds.\n * @param {number} value The input number.\n * @param {number} min The minimum value to return.\n * @param {number} max The maximum value to return.\n * @return {number} The input number if it is within bounds, or the nearest\n * number within the bounds.\n */\nexport function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n\n/**\n * Returns the square of the closest distance between the point (x, y) and the\n * line segment (x1, y1) to (x2, y2).\n * @param {number} x X.\n * @param {number} y Y.\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredSegmentDistance(x, y, x1, y1, x2, y2) {\n const dx = x2 - x1;\n const dy = y2 - y1;\n if (dx !== 0 || dy !== 0) {\n const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n } else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n return squaredDistance(x, y, x1, y1);\n}\n\n/**\n * Returns the square of the distance between the points (x1, y1) and (x2, y2).\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredDistance(x1, y1, x2, y2) {\n const dx = x2 - x1;\n const dy = y2 - y1;\n return dx * dx + dy * dy;\n}\n\n/**\n * Solves system of linear equations using Gaussian elimination method.\n *\n * @param {Array>} mat Augmented matrix (n x n + 1 column)\n * in row-major order.\n * @return {Array|null} The resulting vector.\n */\nexport function solveLinearSystem(mat) {\n const n = mat.length;\n\n for (let i = 0; i < n; i++) {\n // Find max in the i-th column (ignoring i - 1 first rows)\n let maxRow = i;\n let maxEl = Math.abs(mat[i][i]);\n for (let r = i + 1; r < n; r++) {\n const absValue = Math.abs(mat[r][i]);\n if (absValue > maxEl) {\n maxEl = absValue;\n maxRow = r;\n }\n }\n\n if (maxEl === 0) {\n return null; // matrix is singular\n }\n\n // Swap max row with i-th (current) row\n const tmp = mat[maxRow];\n mat[maxRow] = mat[i];\n mat[i] = tmp;\n\n // Subtract the i-th row to make all the remaining rows 0 in the i-th column\n for (let j = i + 1; j < n; j++) {\n const coef = -mat[j][i] / mat[i][i];\n for (let k = i; k < n + 1; k++) {\n if (i == k) {\n mat[j][k] = 0;\n } else {\n mat[j][k] += coef * mat[i][k];\n }\n }\n }\n }\n\n // Solve Ax=b for upper triangular matrix A (mat)\n const x = new Array(n);\n for (let l = n - 1; l >= 0; l--) {\n x[l] = mat[l][n] / mat[l][l];\n for (let m = l - 1; m >= 0; m--) {\n mat[m][n] -= mat[m][l] * x[l];\n }\n }\n return x;\n}\n\n/**\n * Converts radians to to degrees.\n *\n * @param {number} angleInRadians Angle in radians.\n * @return {number} Angle in degrees.\n */\nexport function toDegrees(angleInRadians) {\n return (angleInRadians * 180) / Math.PI;\n}\n\n/**\n * Converts degrees to radians.\n *\n * @param {number} angleInDegrees Angle in degrees.\n * @return {number} Angle in radians.\n */\nexport function toRadians(angleInDegrees) {\n return (angleInDegrees * Math.PI) / 180;\n}\n\n/**\n * Returns the modulo of a / b, depending on the sign of b.\n *\n * @param {number} a Dividend.\n * @param {number} b Divisor.\n * @return {number} Modulo.\n */\nexport function modulo(a, b) {\n const r = a % b;\n return r * b < 0 ? r + b : r;\n}\n\n/**\n * Calculates the linearly interpolated value of x between a and b.\n *\n * @param {number} a Number\n * @param {number} b Number\n * @param {number} x Value to be interpolated.\n * @return {number} Interpolated value.\n */\nexport function lerp(a, b, x) {\n return a + x * (b - a);\n}\n\n/**\n * Returns a number with a limited number of decimal digits.\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The input number with a limited number of decimal digits.\n */\nexport function toFixed(n, decimals) {\n const factor = Math.pow(10, decimals);\n return Math.round(n * factor) / factor;\n}\n\n/**\n * Rounds a number to the nearest integer value considering only the given number\n * of decimal digits (with rounding on the final digit).\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The nearest integer.\n */\nexport function round(n, decimals) {\n return Math.round(toFixed(n, decimals));\n}\n\n/**\n * Rounds a number to the next smaller integer considering only the given number\n * of decimal digits (with rounding on the final digit).\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The next smaller integer.\n */\nexport function floor(n, decimals) {\n return Math.floor(toFixed(n, decimals));\n}\n\n/**\n * Rounds a number to the next bigger integer considering only the given number\n * of decimal digits (with rounding on the final digit).\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The next bigger integer.\n */\nexport function ceil(n, decimals) {\n return Math.ceil(toFixed(n, decimals));\n}\n","/**\n * @module ol/string\n */\n\n/**\n * @param {number} number Number to be formatted\n * @param {number} width The desired width\n * @param {number} [precision] Precision of the output string (i.e. number of decimal places)\n * @return {string} Formatted string\n */\nexport function padNumber(number, width, precision) {\n const numberString =\n precision !== undefined ? number.toFixed(precision) : '' + number;\n let decimal = numberString.indexOf('.');\n decimal = decimal === -1 ? numberString.length : decimal;\n return decimal > width\n ? numberString\n : new Array(1 + width - decimal).join('0') + numberString;\n}\n\n/**\n * Adapted from https://github.com/omichelsen/compare-versions/blob/master/index.js\n * @param {string|number} v1 First version\n * @param {string|number} v2 Second version\n * @return {number} Value\n */\nexport function compareVersions(v1, v2) {\n const s1 = ('' + v1).split('.');\n const s2 = ('' + v2).split('.');\n\n for (let i = 0; i < Math.max(s1.length, s2.length); i++) {\n const n1 = parseInt(s1[i] || '0', 10);\n const n2 = parseInt(s2[i] || '0', 10);\n\n if (n1 > n2) {\n return 1;\n }\n if (n2 > n1) {\n return -1;\n }\n }\n\n return 0;\n}\n","/**\n * @module ol/coordinate\n */\nimport {getWidth} from './extent.js';\nimport {modulo, toFixed} from './math.js';\nimport {padNumber} from './string.js';\n\n/**\n * An array of numbers representing an `xy`, `xyz` or `xyzm` coordinate.\n * Example: `[16, 48]`.\n * @typedef {Array} Coordinate\n * @api\n */\n\n/**\n * A function that takes a {@link module:ol/coordinate~Coordinate} and\n * transforms it into a `{string}`.\n *\n * @typedef {function((Coordinate|undefined)): string} CoordinateFormat\n * @api\n */\n\n/**\n * Add `delta` to `coordinate`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {add} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * add(coord, [-2, 4]);\n * // coord is now [5.85, 51.983333]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {Coordinate} delta Delta.\n * @return {Coordinate} The input coordinate adjusted by\n * the given delta.\n * @api\n */\nexport function add(coordinate, delta) {\n coordinate[0] += +delta[0];\n coordinate[1] += +delta[1];\n return coordinate;\n}\n\n/**\n * Calculates the point closest to the passed coordinate on the passed circle.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {import(\"./geom/Circle.js\").default} circle The circle.\n * @return {Coordinate} Closest point on the circumference.\n */\nexport function closestOnCircle(coordinate, circle) {\n const r = circle.getRadius();\n const center = circle.getCenter();\n const x0 = center[0];\n const y0 = center[1];\n const x1 = coordinate[0];\n const y1 = coordinate[1];\n\n let dx = x1 - x0;\n const dy = y1 - y0;\n if (dx === 0 && dy === 0) {\n dx = 1;\n }\n const d = Math.sqrt(dx * dx + dy * dy);\n\n const x = x0 + (r * dx) / d;\n const y = y0 + (r * dy) / d;\n\n return [x, y];\n}\n\n/**\n * Calculates the point closest to the passed coordinate on the passed segment.\n * This is the foot of the perpendicular of the coordinate to the segment when\n * the foot is on the segment, or the closest segment coordinate when the foot\n * is outside the segment.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {Array} segment The two coordinates\n * of the segment.\n * @return {Coordinate} The foot of the perpendicular of\n * the coordinate to the segment.\n */\nexport function closestOnSegment(coordinate, segment) {\n const x0 = coordinate[0];\n const y0 = coordinate[1];\n const start = segment[0];\n const end = segment[1];\n const x1 = start[0];\n const y1 = start[1];\n const x2 = end[0];\n const y2 = end[1];\n const dx = x2 - x1;\n const dy = y2 - y1;\n const along =\n dx === 0 && dy === 0\n ? 0\n : (dx * (x0 - x1) + dy * (y0 - y1)) / (dx * dx + dy * dy || 0);\n let x, y;\n if (along <= 0) {\n x = x1;\n y = y1;\n } else if (along >= 1) {\n x = x2;\n y = y2;\n } else {\n x = x1 + along * dx;\n y = y1 + along * dy;\n }\n return [x, y];\n}\n\n/**\n * Returns a {@link module:ol/coordinate~CoordinateFormat} function that can be\n * used to format\n * a {Coordinate} to a string.\n *\n * Example without specifying the fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const stringifyFunc = createStringXY();\n * const out = stringifyFunc(coord);\n * // out is now '8, 48'\n *\n * Example with explicitly specifying 2 fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const stringifyFunc = createStringXY(2);\n * const out = stringifyFunc(coord);\n * // out is now '7.85, 47.98'\n *\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {CoordinateFormat} Coordinate format.\n * @api\n */\nexport function createStringXY(fractionDigits) {\n return (\n /**\n * @param {Coordinate} coordinate Coordinate.\n * @return {string} String XY.\n */\n function (coordinate) {\n return toStringXY(coordinate, fractionDigits);\n }\n );\n}\n\n/**\n * @param {string} hemispheres Hemispheres.\n * @param {number} degrees Degrees.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} String.\n */\nexport function degreesToStringHDMS(hemispheres, degrees, fractionDigits) {\n const normalizedDegrees = modulo(degrees + 180, 360) - 180;\n const x = Math.abs(3600 * normalizedDegrees);\n const decimals = fractionDigits || 0;\n\n let deg = Math.floor(x / 3600);\n let min = Math.floor((x - deg * 3600) / 60);\n let sec = toFixed(x - deg * 3600 - min * 60, decimals);\n\n if (sec >= 60) {\n sec = 0;\n min += 1;\n }\n\n if (min >= 60) {\n min = 0;\n deg += 1;\n }\n\n let hdms = deg + '\\u00b0';\n if (min !== 0 || sec !== 0) {\n hdms += ' ' + padNumber(min, 2) + '\\u2032';\n }\n if (sec !== 0) {\n hdms += ' ' + padNumber(sec, 2, decimals) + '\\u2033';\n }\n if (normalizedDegrees !== 0) {\n hdms += ' ' + hemispheres.charAt(normalizedDegrees < 0 ? 1 : 0);\n }\n\n return hdms;\n}\n\n/**\n * Transforms the given {@link module:ol/coordinate~Coordinate} to a string\n * using the given string template. The strings `{x}` and `{y}` in the template\n * will be replaced with the first and second coordinate values respectively.\n *\n * Example without specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const template = 'Coordinate is ({x}|{y}).';\n * const out = format(coord, template);\n * // out is now 'Coordinate is (8|48).'\n *\n * Example explicitly specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const template = 'Coordinate is ({x}|{y}).';\n * const out = format(coord, template, 2);\n * // out is now 'Coordinate is (7.85|47.98).'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {string} template A template string with `{x}` and `{y}` placeholders\n * that will be replaced by first and second coordinate values.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Formatted coordinate.\n * @api\n */\nexport function format(coordinate, template, fractionDigits) {\n if (coordinate) {\n return template\n .replace('{x}', coordinate[0].toFixed(fractionDigits))\n .replace('{y}', coordinate[1].toFixed(fractionDigits));\n }\n return '';\n}\n\n/**\n * @param {Coordinate} coordinate1 First coordinate.\n * @param {Coordinate} coordinate2 Second coordinate.\n * @return {boolean} The two coordinates are equal.\n */\nexport function equals(coordinate1, coordinate2) {\n let equals = true;\n for (let i = coordinate1.length - 1; i >= 0; --i) {\n if (coordinate1[i] != coordinate2[i]) {\n equals = false;\n break;\n }\n }\n return equals;\n}\n\n/**\n * Rotate `coordinate` by `angle`. `coordinate` is modified in place and\n * returned by the function.\n *\n * Example:\n *\n * import {rotate} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const rotateRadians = Math.PI / 2; // 90 degrees\n * rotate(coord, rotateRadians);\n * // coord is now [-47.983333, 7.85]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} angle Angle in radian.\n * @return {Coordinate} Coordinate.\n * @api\n */\nexport function rotate(coordinate, angle) {\n const cosAngle = Math.cos(angle);\n const sinAngle = Math.sin(angle);\n const x = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n const y = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n coordinate[0] = x;\n coordinate[1] = y;\n return coordinate;\n}\n\n/**\n * Scale `coordinate` by `scale`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {scale as scaleCoordinate} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const scale = 1.2;\n * scaleCoordinate(coord, scale);\n * // coord is now [9.42, 57.5799996]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} scale Scale factor.\n * @return {Coordinate} Coordinate.\n */\nexport function scale(coordinate, scale) {\n coordinate[0] *= scale;\n coordinate[1] *= scale;\n return coordinate;\n}\n\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Squared distance between coord1 and coord2.\n */\nexport function squaredDistance(coord1, coord2) {\n const dx = coord1[0] - coord2[0];\n const dy = coord1[1] - coord2[1];\n return dx * dx + dy * dy;\n}\n\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Distance between coord1 and coord2.\n */\nexport function distance(coord1, coord2) {\n return Math.sqrt(squaredDistance(coord1, coord2));\n}\n\n/**\n * Calculate the squared distance from a coordinate to a line segment.\n *\n * @param {Coordinate} coordinate Coordinate of the point.\n * @param {Array} segment Line segment (2\n * coordinates).\n * @return {number} Squared distance from the point to the line segment.\n */\nexport function squaredDistanceToSegment(coordinate, segment) {\n return squaredDistance(coordinate, closestOnSegment(coordinate, segment));\n}\n\n/**\n * Format a geographic coordinate with the hemisphere, degrees, minutes, and\n * seconds.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringHDMS} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringHDMS(coord);\n * // out is now '47° 58′ 60″ N 7° 50′ 60″ E'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringHDMS} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringHDMS(coord, 1);\n * // out is now '47° 58′ 60.0″ N 7° 50′ 60.0″ E'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Hemisphere, degrees, minutes and seconds.\n * @api\n */\nexport function toStringHDMS(coordinate, fractionDigits) {\n if (coordinate) {\n return (\n degreesToStringHDMS('NS', coordinate[1], fractionDigits) +\n ' ' +\n degreesToStringHDMS('EW', coordinate[0], fractionDigits)\n );\n }\n return '';\n}\n\n/**\n * Format a coordinate as a comma delimited string.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringXY(coord);\n * // out is now '8, 48'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringXY(coord, 1);\n * // out is now '7.8, 48.0'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} XY.\n * @api\n */\nexport function toStringXY(coordinate, fractionDigits) {\n return format(coordinate, '{x}, {y}', fractionDigits);\n}\n\n/**\n * Modifies the provided coordinate in-place to be within the real world\n * extent. The lower projection extent boundary is inclusive, the upper one\n * exclusive.\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {Coordinate} The coordinate within the real world extent.\n */\nexport function wrapX(coordinate, projection) {\n if (projection.canWrapX()) {\n const worldWidth = getWidth(projection.getExtent());\n const worldsAway = getWorldsAway(coordinate, projection, worldWidth);\n if (worldsAway) {\n coordinate[0] -= worldsAway * worldWidth;\n }\n }\n return coordinate;\n}\n/**\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @param {number} [sourceExtentWidth] Width of the source extent.\n * @return {number} Offset in world widths.\n */\nexport function getWorldsAway(coordinate, projection, sourceExtentWidth) {\n const projectionExtent = projection.getExtent();\n let worldsAway = 0;\n if (\n projection.canWrapX() &&\n (coordinate[0] < projectionExtent[0] || coordinate[0] > projectionExtent[2])\n ) {\n sourceExtentWidth = sourceExtentWidth || getWidth(projectionExtent);\n worldsAway = Math.floor(\n (coordinate[0] - projectionExtent[0]) / sourceExtentWidth\n );\n }\n return worldsAway;\n}\n","/**\n * @module ol/sphere\n */\nimport {toDegrees, toRadians} from './math.js';\n\n/**\n * Object literal with options for the {@link getLength} or {@link getArea}\n * functions.\n * @typedef {Object} SphereMetricOptions\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857']\n * Projection of the geometry. By default, the geometry is assumed to be in\n * Web Mercator.\n * @property {number} [radius=6371008.8] Sphere radius. By default, the\n * [mean Earth radius](https://en.wikipedia.org/wiki/Earth_radius#Mean_radius)\n * for the WGS84 ellipsoid is used.\n */\n\n/**\n * The mean Earth radius (1/3 * (2a + b)) for the WGS84 ellipsoid.\n * https://en.wikipedia.org/wiki/Earth_radius#Mean_radius\n * @type {number}\n */\nexport const DEFAULT_RADIUS = 6371008.8;\n\n/**\n * Get the great circle distance (in meters) between two geographic coordinates.\n * @param {Array} c1 Starting coordinate.\n * @param {Array} c2 Ending coordinate.\n * @param {number} [radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {number} The great circle distance between the points (in meters).\n * @api\n */\nexport function getDistance(c1, c2, radius) {\n radius = radius || DEFAULT_RADIUS;\n const lat1 = toRadians(c1[1]);\n const lat2 = toRadians(c2[1]);\n const deltaLatBy2 = (lat2 - lat1) / 2;\n const deltaLonBy2 = toRadians(c2[0] - c1[0]) / 2;\n const a =\n Math.sin(deltaLatBy2) * Math.sin(deltaLatBy2) +\n Math.sin(deltaLonBy2) *\n Math.sin(deltaLonBy2) *\n Math.cos(lat1) *\n Math.cos(lat2);\n return 2 * radius * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n}\n\n/**\n * Get the cumulative great circle length of linestring coordinates (geographic).\n * @param {Array} coordinates Linestring coordinates.\n * @param {number} radius The sphere radius to use.\n * @return {number} The length (in meters).\n */\nfunction getLengthInternal(coordinates, radius) {\n let length = 0;\n for (let i = 0, ii = coordinates.length; i < ii - 1; ++i) {\n length += getDistance(coordinates[i], coordinates[i + 1], radius);\n }\n return length;\n}\n\n/**\n * Get the spherical length of a geometry. This length is the sum of the\n * great circle distances between coordinates. For polygons, the length is\n * the sum of all rings. For points, the length is zero. For multi-part\n * geometries, the length is the sum of the length of each part.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [options] Options for the\n * length calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical length (in meters).\n * @api\n */\nexport function getLength(geometry, options) {\n options = options || {};\n const radius = options.radius || DEFAULT_RADIUS;\n const projection = options.projection || 'EPSG:3857';\n const type = geometry.getType();\n if (type !== 'GeometryCollection') {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n let length = 0;\n let coordinates, coords, i, ii, j, jj;\n switch (type) {\n case 'Point':\n case 'MultiPoint': {\n break;\n }\n case 'LineString':\n case 'LinearRing': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n length = getLengthInternal(coordinates, radius);\n break;\n }\n case 'MultiLineString':\n case 'Polygon': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n length += getLengthInternal(coordinates[i], radius);\n }\n break;\n }\n case 'MultiPolygon': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n for (j = 0, jj = coords.length; j < jj; ++j) {\n length += getLengthInternal(coords[j], radius);\n }\n }\n break;\n }\n case 'GeometryCollection': {\n const geometries =\n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (\n geometry\n ).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n length += getLength(geometries[i], options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return length;\n}\n\n/**\n * Returns the spherical area for a list of coordinates.\n *\n * [Reference](https://trs.jpl.nasa.gov/handle/2014/40409)\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for\n * Polygons on a Sphere\", JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007\n *\n * @param {Array} coordinates List of coordinates of a linear\n * ring. If the ring is oriented clockwise, the area will be positive,\n * otherwise it will be negative.\n * @param {number} radius The sphere radius.\n * @return {number} Area (in square meters).\n */\nfunction getAreaInternal(coordinates, radius) {\n let area = 0;\n const len = coordinates.length;\n let x1 = coordinates[len - 1][0];\n let y1 = coordinates[len - 1][1];\n for (let i = 0; i < len; i++) {\n const x2 = coordinates[i][0];\n const y2 = coordinates[i][1];\n area +=\n toRadians(x2 - x1) *\n (2 + Math.sin(toRadians(y1)) + Math.sin(toRadians(y2)));\n x1 = x2;\n y1 = y2;\n }\n return (area * radius * radius) / 2.0;\n}\n\n/**\n * Get the spherical area of a geometry. This is the area (in meters) assuming\n * that polygon edges are segments of great circles on a sphere.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [options] Options for the area\n * calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical area (in square meters).\n * @api\n */\nexport function getArea(geometry, options) {\n options = options || {};\n const radius = options.radius || DEFAULT_RADIUS;\n const projection = options.projection || 'EPSG:3857';\n const type = geometry.getType();\n if (type !== 'GeometryCollection') {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n let area = 0;\n let coordinates, coords, i, ii, j, jj;\n switch (type) {\n case 'Point':\n case 'MultiPoint':\n case 'LineString':\n case 'MultiLineString':\n case 'LinearRing': {\n break;\n }\n case 'Polygon': {\n coordinates = /** @type {import(\"./geom/Polygon.js\").default} */ (\n geometry\n ).getCoordinates();\n area = Math.abs(getAreaInternal(coordinates[0], radius));\n for (i = 1, ii = coordinates.length; i < ii; ++i) {\n area -= Math.abs(getAreaInternal(coordinates[i], radius));\n }\n break;\n }\n case 'MultiPolygon': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n area += Math.abs(getAreaInternal(coords[0], radius));\n for (j = 1, jj = coords.length; j < jj; ++j) {\n area -= Math.abs(getAreaInternal(coords[j], radius));\n }\n }\n break;\n }\n case 'GeometryCollection': {\n const geometries =\n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (\n geometry\n ).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n area += getArea(geometries[i], options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return area;\n}\n\n/**\n * Returns the coordinate at the given distance and bearing from `c1`.\n *\n * @param {import(\"./coordinate.js\").Coordinate} c1 The origin point (`[lon, lat]` in degrees).\n * @param {number} distance The great-circle distance between the origin\n * point and the target point.\n * @param {number} bearing The bearing (in radians).\n * @param {number} [radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {import(\"./coordinate.js\").Coordinate} The target point.\n */\nexport function offset(c1, distance, bearing, radius) {\n radius = radius || DEFAULT_RADIUS;\n const lat1 = toRadians(c1[1]);\n const lon1 = toRadians(c1[0]);\n const dByR = distance / radius;\n const lat = Math.asin(\n Math.sin(lat1) * Math.cos(dByR) +\n Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing)\n );\n const lon =\n lon1 +\n Math.atan2(\n Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1),\n Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat)\n );\n return [toDegrees(lon), toDegrees(lat)];\n}\n","/**\n * @module ol/console\n */\n\n/**\n * @typedef {'info'|'warn'|'error'|'none'} Level\n */\n\n/**\n * @type {Object}\n */\nconst levels = {\n info: 1,\n warn: 2,\n error: 3,\n none: 4,\n};\n\n/**\n * @type {number}\n */\nlet level = levels.info;\n\n/**\n * Set the logging level. By default, the level is set to 'info' and all\n * messages will be logged. Set to 'warn' to only display warnings and errors.\n * Set to 'error' to only display errors. Set to 'none' to silence all messages.\n *\n * @param {Level} l The new level.\n */\nexport function setLevel(l) {\n level = levels[l];\n}\n\n/**\n * @param {...any} args Arguments to log\n */\nexport function log(...args) {\n if (level > levels.info) {\n return;\n }\n console.log(...args); // eslint-disable-line no-console\n}\n\n/**\n * @param {...any} args Arguments to log\n */\nexport function warn(...args) {\n if (level > levels.warn) {\n return;\n }\n console.warn(...args); // eslint-disable-line no-console\n}\n\n/**\n * @param {...any} args Arguments to log\n */\nexport function error(...args) {\n if (level > levels.error) {\n return;\n }\n console.error(...args); // eslint-disable-line no-console\n}\n","/**\n * @module ol/proj\n */\n\n/**\n * The ol/proj module stores:\n * * a list of {@link module:ol/proj/Projection~Projection}\n * objects, one for each projection supported by the application\n * * a list of transform functions needed to convert coordinates in one projection\n * into another.\n *\n * The static functions are the methods used to maintain these.\n * Each transform function can handle not only simple coordinate pairs, but also\n * large arrays of coordinates such as vector geometries.\n *\n * When loaded, the library adds projection objects for EPSG:4326 (WGS84\n * geographic coordinates) and EPSG:3857 (Web or Spherical Mercator, as used\n * for example by Bing Maps or OpenStreetMap), together with the relevant\n * transform functions.\n *\n * Additional transforms may be added by using the http://proj4js.org/\n * library (version 2.2 or later). You can use the full build supplied by\n * Proj4js, or create a custom build to support those projections you need; see\n * the Proj4js website for how to do this. You also need the Proj4js definitions\n * for the required projections. These definitions can be obtained from\n * https://epsg.io/, and are a JS function, so can be loaded in a script\n * tag (as in the examples) or pasted into your application.\n *\n * After all required projection definitions are added to proj4's registry (by\n * using `proj4.defs()`), simply call `register(proj4)` from the `ol/proj/proj4`\n * package. Existing transforms are not changed by this function. See\n * examples/wms-image-custom-proj for an example of this.\n *\n * Additional projection definitions can be registered with `proj4.defs()` any\n * time. Just make sure to call `register(proj4)` again; for example, with user-supplied data where you don't\n * know in advance what projections are needed, you can initially load minimal\n * support and then load whichever are requested.\n *\n * Note that Proj4js does not support projection extents. If you want to add\n * one for creating default tile grids, you can add it after the Projection\n * object has been created with `setExtent`, for example,\n * `get('EPSG:1234').setExtent(extent)`.\n *\n * In addition to Proj4js support, any transform functions can be added with\n * {@link module:ol/proj.addCoordinateTransforms}. To use this, you must first create\n * a {@link module:ol/proj/Projection~Projection} object for the new projection and add it with\n * {@link module:ol/proj.addProjection}. You can then add the forward and inverse\n * functions with {@link module:ol/proj.addCoordinateTransforms}. See\n * examples/wms-custom-proj for an example of this.\n *\n * Note that if no transforms are needed and you only need to define the\n * projection, just add a {@link module:ol/proj/Projection~Projection} with\n * {@link module:ol/proj.addProjection}. See examples/wms-no-proj for an example of\n * this.\n */\nimport Projection from './proj/Projection.js';\nimport {\n PROJECTIONS as EPSG3857_PROJECTIONS,\n fromEPSG4326,\n toEPSG4326,\n} from './proj/epsg3857.js';\nimport {PROJECTIONS as EPSG4326_PROJECTIONS} from './proj/epsg4326.js';\nimport {METERS_PER_UNIT} from './proj/Units.js';\nimport {\n add as addProj,\n clear as clearProj,\n get as getProj,\n} from './proj/projections.js';\nimport {\n add as addTransformFunc,\n clear as clearTransformFuncs,\n get as getTransformFunc,\n} from './proj/transforms.js';\nimport {applyTransform, getWidth} from './extent.js';\nimport {clamp, modulo} from './math.js';\nimport {equals, getWorldsAway} from './coordinate.js';\nimport {getDistance} from './sphere.js';\nimport {warn} from './console.js';\n\n/**\n * A projection as {@link module:ol/proj/Projection~Projection}, SRS identifier\n * string or undefined.\n * @typedef {Projection|string|undefined} ProjectionLike\n * @api\n */\n\n/**\n * A transform function accepts an array of input coordinate values, an optional\n * output array, and an optional dimension (default should be 2). The function\n * transforms the input coordinate values, populates the output array, and\n * returns the output array.\n *\n * @typedef {function(Array, Array=, number=): Array} TransformFunction\n * @api\n */\n\nexport {METERS_PER_UNIT};\n\nexport {Projection};\n\nlet showCoordinateWarning = true;\n\n/**\n * @param {boolean} [disable = true] Disable console info about `useGeographic()`\n */\nexport function disableCoordinateWarning(disable) {\n const hide = disable === undefined ? true : disable;\n showCoordinateWarning = !hide;\n}\n\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [output] Output array of coordinate values.\n * @return {Array} Output coordinate array (new array, same coordinate\n * values).\n */\nexport function cloneTransform(input, output) {\n if (output !== undefined) {\n for (let i = 0, ii = input.length; i < ii; ++i) {\n output[i] = input[i];\n }\n output = output;\n } else {\n output = input.slice();\n }\n return output;\n}\n\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [output] Output array of coordinate values.\n * @return {Array} Input coordinate array (same array as input).\n */\nexport function identityTransform(input, output) {\n if (output !== undefined && input !== output) {\n for (let i = 0, ii = input.length; i < ii; ++i) {\n output[i] = input[i];\n }\n input = output;\n }\n return input;\n}\n\n/**\n * Add a Projection object to the list of supported projections that can be\n * looked up by their code.\n *\n * @param {Projection} projection Projection instance.\n * @api\n */\nexport function addProjection(projection) {\n addProj(projection.getCode(), projection);\n addTransformFunc(projection, projection, cloneTransform);\n}\n\n/**\n * @param {Array} projections Projections.\n */\nexport function addProjections(projections) {\n projections.forEach(addProjection);\n}\n\n/**\n * Fetches a Projection object for the code specified.\n *\n * @param {ProjectionLike} projectionLike Either a code string which is\n * a combination of authority and identifier such as \"EPSG:4326\", or an\n * existing projection object, or undefined.\n * @return {Projection|null} Projection object, or null if not in list.\n * @api\n */\nexport function get(projectionLike) {\n return typeof projectionLike === 'string'\n ? getProj(/** @type {string} */ (projectionLike))\n : /** @type {Projection} */ (projectionLike) || null;\n}\n\n/**\n * Get the resolution of the point in degrees or distance units.\n * For projections with degrees as the unit this will simply return the\n * provided resolution. For other projections the point resolution is\n * by default estimated by transforming the `point` pixel to EPSG:4326,\n * measuring its width and height on the normal sphere,\n * and taking the average of the width and height.\n * A custom function can be provided for a specific projection, either\n * by setting the `getPointResolution` option in the\n * {@link module:ol/proj/Projection~Projection} constructor or by using\n * {@link module:ol/proj/Projection~Projection#setGetPointResolution} to change an existing\n * projection object.\n * @param {ProjectionLike} projection The projection.\n * @param {number} resolution Nominal resolution in projection units.\n * @param {import(\"./coordinate.js\").Coordinate} point Point to find adjusted resolution at.\n * @param {import(\"./proj/Units.js\").Units} [units] Units to get the point resolution in.\n * Default is the projection's units.\n * @return {number} Point resolution.\n * @api\n */\nexport function getPointResolution(projection, resolution, point, units) {\n projection = get(projection);\n let pointResolution;\n const getter = projection.getPointResolutionFunc();\n if (getter) {\n pointResolution = getter(resolution, point);\n if (units && units !== projection.getUnits()) {\n const metersPerUnit = projection.getMetersPerUnit();\n if (metersPerUnit) {\n pointResolution =\n (pointResolution * metersPerUnit) / METERS_PER_UNIT[units];\n }\n }\n } else {\n const projUnits = projection.getUnits();\n if ((projUnits == 'degrees' && !units) || units == 'degrees') {\n pointResolution = resolution;\n } else {\n // Estimate point resolution by transforming the center pixel to EPSG:4326,\n // measuring its width and height on the normal sphere, and taking the\n // average of the width and height.\n const toEPSG4326 = getTransformFromProjections(\n projection,\n get('EPSG:4326')\n );\n if (toEPSG4326 === identityTransform && projUnits !== 'degrees') {\n // no transform is available\n pointResolution = resolution * projection.getMetersPerUnit();\n } else {\n let vertices = [\n point[0] - resolution / 2,\n point[1],\n point[0] + resolution / 2,\n point[1],\n point[0],\n point[1] - resolution / 2,\n point[0],\n point[1] + resolution / 2,\n ];\n vertices = toEPSG4326(vertices, vertices, 2);\n const width = getDistance(vertices.slice(0, 2), vertices.slice(2, 4));\n const height = getDistance(vertices.slice(4, 6), vertices.slice(6, 8));\n pointResolution = (width + height) / 2;\n }\n const metersPerUnit = units\n ? METERS_PER_UNIT[units]\n : projection.getMetersPerUnit();\n if (metersPerUnit !== undefined) {\n pointResolution /= metersPerUnit;\n }\n }\n }\n return pointResolution;\n}\n\n/**\n * Registers transformation functions that don't alter coordinates. Those allow\n * to transform between projections with equal meaning.\n *\n * @param {Array} projections Projections.\n * @api\n */\nexport function addEquivalentProjections(projections) {\n addProjections(projections);\n projections.forEach(function (source) {\n projections.forEach(function (destination) {\n if (source !== destination) {\n addTransformFunc(source, destination, cloneTransform);\n }\n });\n });\n}\n\n/**\n * Registers transformation functions to convert coordinates in any projection\n * in projection1 to any projection in projection2.\n *\n * @param {Array} projections1 Projections with equal\n * meaning.\n * @param {Array} projections2 Projections with equal\n * meaning.\n * @param {TransformFunction} forwardTransform Transformation from any\n * projection in projection1 to any projection in projection2.\n * @param {TransformFunction} inverseTransform Transform from any projection\n * in projection2 to any projection in projection1..\n */\nexport function addEquivalentTransforms(\n projections1,\n projections2,\n forwardTransform,\n inverseTransform\n) {\n projections1.forEach(function (projection1) {\n projections2.forEach(function (projection2) {\n addTransformFunc(projection1, projection2, forwardTransform);\n addTransformFunc(projection2, projection1, inverseTransform);\n });\n });\n}\n\n/**\n * Clear all cached projections and transforms.\n */\nexport function clearAllProjections() {\n clearProj();\n clearTransformFuncs();\n}\n\n/**\n * @param {Projection|string|undefined} projection Projection.\n * @param {string} defaultCode Default code.\n * @return {Projection} Projection.\n */\nexport function createProjection(projection, defaultCode) {\n if (!projection) {\n return get(defaultCode);\n }\n if (typeof projection === 'string') {\n return get(projection);\n }\n return /** @type {Projection} */ (projection);\n}\n\n/**\n * Creates a {@link module:ol/proj~TransformFunction} from a simple 2D coordinate transform\n * function.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} coordTransform Coordinate\n * transform.\n * @return {TransformFunction} Transform function.\n */\nexport function createTransformFromCoordinateTransform(coordTransform) {\n return (\n /**\n * @param {Array} input Input.\n * @param {Array} [output] Output.\n * @param {number} [dimension] Dimension.\n * @return {Array} Output.\n */\n function (input, output, dimension) {\n const length = input.length;\n dimension = dimension !== undefined ? dimension : 2;\n output = output !== undefined ? output : new Array(length);\n for (let i = 0; i < length; i += dimension) {\n const point = coordTransform(input.slice(i, i + dimension));\n const pointLength = point.length;\n for (let j = 0, jj = dimension; j < jj; ++j) {\n output[i + j] = j >= pointLength ? input[i + j] : point[j];\n }\n }\n return output;\n }\n );\n}\n\n/**\n * Registers coordinate transform functions to convert coordinates between the\n * source projection and the destination projection.\n * The forward and inverse functions convert coordinate pairs; this function\n * converts these into the functions used internally which also handle\n * extents and coordinate arrays.\n *\n * @param {ProjectionLike} source Source projection.\n * @param {ProjectionLike} destination Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} forward The forward transform\n * function (that is, from the source projection to the destination\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} inverse The inverse transform\n * function (that is, from the destination projection to the source\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}. If the transform function can only\n * transform less dimensions than the input coordinate, it is supposeed to return a coordinate\n * with only the length it can transform. The other dimensions will be taken unchanged from the\n * source.\n * @api\n */\nexport function addCoordinateTransforms(source, destination, forward, inverse) {\n const sourceProj = get(source);\n const destProj = get(destination);\n addTransformFunc(\n sourceProj,\n destProj,\n createTransformFromCoordinateTransform(forward)\n );\n addTransformFunc(\n destProj,\n sourceProj,\n createTransformFromCoordinateTransform(inverse)\n );\n}\n\n/**\n * Transforms a coordinate from longitude/latitude to a different projection.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate as longitude and latitude, i.e.\n * an array with longitude as 1st and latitude as 2nd element.\n * @param {ProjectionLike} [projection] Target projection. The\n * default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate projected to the target projection.\n * @api\n */\nexport function fromLonLat(coordinate, projection) {\n disableCoordinateWarning();\n return transform(\n coordinate,\n 'EPSG:4326',\n projection !== undefined ? projection : 'EPSG:3857'\n );\n}\n\n/**\n * Transforms a coordinate to longitude/latitude.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Projected coordinate.\n * @param {ProjectionLike} [projection] Projection of the coordinate.\n * The default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate as longitude and latitude, i.e. an array\n * with longitude as 1st and latitude as 2nd element.\n * @api\n */\nexport function toLonLat(coordinate, projection) {\n const lonLat = transform(\n coordinate,\n projection !== undefined ? projection : 'EPSG:3857',\n 'EPSG:4326'\n );\n const lon = lonLat[0];\n if (lon < -180 || lon > 180) {\n lonLat[0] = modulo(lon + 180, 360) - 180;\n }\n return lonLat;\n}\n\n/**\n * Checks if two projections are the same, that is every coordinate in one\n * projection does represent the same geographic point as the same coordinate in\n * the other projection.\n *\n * @param {Projection} projection1 Projection 1.\n * @param {Projection} projection2 Projection 2.\n * @return {boolean} Equivalent.\n * @api\n */\nexport function equivalent(projection1, projection2) {\n if (projection1 === projection2) {\n return true;\n }\n const equalUnits = projection1.getUnits() === projection2.getUnits();\n if (projection1.getCode() === projection2.getCode()) {\n return equalUnits;\n }\n const transformFunc = getTransformFromProjections(projection1, projection2);\n return transformFunc === cloneTransform && equalUnits;\n}\n\n/**\n * Searches in the list of transform functions for the function for converting\n * coordinates from the source projection to the destination projection.\n *\n * @param {Projection} sourceProjection Source Projection object.\n * @param {Projection} destinationProjection Destination Projection\n * object.\n * @return {TransformFunction} Transform function.\n */\nexport function getTransformFromProjections(\n sourceProjection,\n destinationProjection\n) {\n const sourceCode = sourceProjection.getCode();\n const destinationCode = destinationProjection.getCode();\n let transformFunc = getTransformFunc(sourceCode, destinationCode);\n if (!transformFunc) {\n transformFunc = identityTransform;\n }\n return transformFunc;\n}\n\n/**\n * Given the projection-like objects, searches for a transformation\n * function to convert a coordinates array from the source projection to the\n * destination projection.\n *\n * @param {ProjectionLike} source Source.\n * @param {ProjectionLike} destination Destination.\n * @return {TransformFunction} Transform function.\n * @api\n */\nexport function getTransform(source, destination) {\n const sourceProjection = get(source);\n const destinationProjection = get(destination);\n return getTransformFromProjections(sourceProjection, destinationProjection);\n}\n\n/**\n * Transforms a coordinate from source projection to destination projection.\n * This returns a new coordinate (and does not modify the original).\n *\n * See {@link module:ol/proj.transformExtent} for extent transformation.\n * See the transform method of {@link module:ol/geom/Geometry~Geometry} and its\n * subclasses for geometry transforms.\n *\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\nexport function transform(coordinate, source, destination) {\n const transformFunc = getTransform(source, destination);\n return transformFunc(coordinate, undefined, coordinate.length);\n}\n\n/**\n * Transforms an extent from source projection to destination projection. This\n * returns a new extent (and does not modify the original).\n *\n * @param {import(\"./extent.js\").Extent} extent The extent to transform.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @param {number} [stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {import(\"./extent.js\").Extent} The transformed extent.\n * @api\n */\nexport function transformExtent(extent, source, destination, stops) {\n const transformFunc = getTransform(source, destination);\n return applyTransform(extent, transformFunc, undefined, stops);\n}\n\n/**\n * Transforms the given point to the destination projection.\n *\n * @param {import(\"./coordinate.js\").Coordinate} point Point.\n * @param {Projection} sourceProjection Source projection.\n * @param {Projection} destinationProjection Destination projection.\n * @return {import(\"./coordinate.js\").Coordinate} Point.\n */\nexport function transformWithProjections(\n point,\n sourceProjection,\n destinationProjection\n) {\n const transformFunc = getTransformFromProjections(\n sourceProjection,\n destinationProjection\n );\n return transformFunc(point);\n}\n\n/**\n * @type {Projection|null}\n */\nlet userProjection = null;\n\n/**\n * Set the projection for coordinates supplied from and returned by API methods.\n * This includes all API methods except for those interacting with tile grids,\n * plus {@link import(\"./Map.js\").FrameState} and {@link import(\"./View.js\").State}.\n * @param {ProjectionLike} projection The user projection.\n * @api\n */\nexport function setUserProjection(projection) {\n userProjection = get(projection);\n}\n\n/**\n * Clear the user projection if set.\n * @api\n */\nexport function clearUserProjection() {\n userProjection = null;\n}\n\n/**\n * Get the projection for coordinates supplied from and returned by API methods.\n * @return {Projection|null} The user projection (or null if not set).\n * @api\n */\nexport function getUserProjection() {\n return userProjection;\n}\n\n/**\n * Use geographic coordinates (WGS-84 datum) in API methods.\n * This includes all API methods except for those interacting with tile grids,\n * plus {@link import(\"./Map.js\").FrameState} and {@link import(\"./View.js\").State}.\n * @api\n */\nexport function useGeographic() {\n setUserProjection('EPSG:4326');\n}\n\n/**\n * Return a coordinate transformed into the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} sourceProjection The input coordinate projection.\n * @return {Array} The input coordinate in the user projection.\n */\nexport function toUserCoordinate(coordinate, sourceProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, sourceProjection, userProjection);\n}\n\n/**\n * Return a coordinate transformed from the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {Array} The input coordinate transformed.\n */\nexport function fromUserCoordinate(coordinate, destProjection) {\n if (!userProjection) {\n if (\n showCoordinateWarning &&\n !equals(coordinate, [0, 0]) &&\n coordinate[0] >= -180 &&\n coordinate[0] <= 180 &&\n coordinate[1] >= -90 &&\n coordinate[1] <= 90\n ) {\n showCoordinateWarning = false;\n warn(\n 'Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.'\n );\n }\n return coordinate;\n }\n return transform(coordinate, userProjection, destProjection);\n}\n\n/**\n * Return an extent transformed into the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} sourceProjection The input extent projection.\n * @return {import(\"./extent.js\").Extent} The input extent in the user projection.\n */\nexport function toUserExtent(extent, sourceProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, sourceProjection, userProjection);\n}\n\n/**\n * Return an extent transformed from the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {import(\"./extent.js\").Extent} The input extent transformed.\n */\nexport function fromUserExtent(extent, destProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, userProjection, destProjection);\n}\n\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in input projection units per pixel.\n * @param {ProjectionLike} sourceProjection The input projection.\n * @return {number} Resolution in user projection units per pixel.\n */\nexport function toUserResolution(resolution, sourceProjection) {\n if (!userProjection) {\n return resolution;\n }\n const sourceMetersPerUnit = get(sourceProjection).getMetersPerUnit();\n const userMetersPerUnit = userProjection.getMetersPerUnit();\n return sourceMetersPerUnit && userMetersPerUnit\n ? (resolution * sourceMetersPerUnit) / userMetersPerUnit\n : resolution;\n}\n\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in user projection units per pixel.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {number} Resolution in destination projection units per pixel.\n */\nexport function fromUserResolution(resolution, destProjection) {\n if (!userProjection) {\n return resolution;\n }\n const destMetersPerUnit = get(destProjection).getMetersPerUnit();\n const userMetersPerUnit = userProjection.getMetersPerUnit();\n return destMetersPerUnit && userMetersPerUnit\n ? (resolution * userMetersPerUnit) / destMetersPerUnit\n : resolution;\n}\n\n/**\n * Creates a safe coordinate transform function from a coordinate transform function.\n * \"Safe\" means that it can handle wrapping of x-coordinates for global projections,\n * and that coordinates exceeding the source projection validity extent's range will be\n * clamped to the validity range.\n * @param {Projection} sourceProj Source projection.\n * @param {Projection} destProj Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} transform Transform function (source to destination).\n * @return {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} Safe transform function (source to destination).\n */\nexport function createSafeCoordinateTransform(sourceProj, destProj, transform) {\n return function (coord) {\n let transformed, worldsAway;\n if (sourceProj.canWrapX()) {\n const sourceExtent = sourceProj.getExtent();\n const sourceExtentWidth = getWidth(sourceExtent);\n coord = coord.slice(0);\n worldsAway = getWorldsAway(coord, sourceProj, sourceExtentWidth);\n if (worldsAway) {\n // Move x to the real world\n coord[0] = coord[0] - worldsAway * sourceExtentWidth;\n }\n coord[0] = clamp(coord[0], sourceExtent[0], sourceExtent[2]);\n coord[1] = clamp(coord[1], sourceExtent[1], sourceExtent[3]);\n transformed = transform(coord);\n } else {\n transformed = transform(coord);\n }\n if (worldsAway && destProj.canWrapX()) {\n // Move transformed coordinate back to the offset world\n transformed[0] += worldsAway * getWidth(destProj.getExtent());\n }\n return transformed;\n };\n}\n\n/**\n * Add transforms to and from EPSG:4326 and EPSG:3857. This function is called\n * by when this module is executed and should only need to be called again after\n * `clearAllProjections()` is called (e.g. in tests).\n */\nexport function addCommon() {\n // Add transformations that don't alter coordinates to convert within set of\n // projections with equal meaning.\n addEquivalentProjections(EPSG3857_PROJECTIONS);\n addEquivalentProjections(EPSG4326_PROJECTIONS);\n // Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like\n // coordinates and back.\n addEquivalentTransforms(\n EPSG4326_PROJECTIONS,\n EPSG3857_PROJECTIONS,\n fromEPSG4326,\n toEPSG4326\n );\n}\n\naddCommon();\n","/**\n * @module ol/geom/flat/transform\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function transform2D(\n flatCoordinates,\n offset,\n end,\n stride,\n transform,\n dest\n) {\n dest = dest ? dest : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const x = flatCoordinates[j];\n const y = flatCoordinates[j + 1];\n dest[i++] = transform[0] * x + transform[2] * y + transform[4];\n dest[i++] = transform[1] * x + transform[3] * y + transform[5];\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} angle Angle.\n * @param {Array} anchor Rotation anchor point.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function rotate(\n flatCoordinates,\n offset,\n end,\n stride,\n angle,\n anchor,\n dest\n) {\n dest = dest ? dest : [];\n const cos = Math.cos(angle);\n const sin = Math.sin(angle);\n const anchorX = anchor[0];\n const anchorY = anchor[1];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const deltaX = flatCoordinates[j] - anchorX;\n const deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + deltaX * cos - deltaY * sin;\n dest[i++] = anchorY + deltaX * sin + deltaY * cos;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n/**\n * Scale the coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} sx Scale factor in the x-direction.\n * @param {number} sy Scale factor in the y-direction.\n * @param {Array} anchor Scale anchor point.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function scale(\n flatCoordinates,\n offset,\n end,\n stride,\n sx,\n sy,\n anchor,\n dest\n) {\n dest = dest ? dest : [];\n const anchorX = anchor[0];\n const anchorY = anchor[1];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const deltaX = flatCoordinates[j] - anchorX;\n const deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + sx * deltaX;\n dest[i++] = anchorY + sy * deltaY;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function translate(\n flatCoordinates,\n offset,\n end,\n stride,\n deltaX,\n deltaY,\n dest\n) {\n dest = dest ? dest : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n dest[i++] = flatCoordinates[j] + deltaX;\n dest[i++] = flatCoordinates[j + 1] + deltaY;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n","/**\n * @module ol/geom/Geometry\n */\nimport BaseObject from '../Object.js';\nimport {abstract} from '../util.js';\nimport {\n compose as composeTransform,\n create as createTransform,\n} from '../transform.js';\nimport {\n createEmpty,\n createOrUpdateEmpty,\n getHeight,\n returnOrUpdate,\n} from '../extent.js';\nimport {get as getProjection, getTransform} from '../proj.js';\nimport {memoizeOne} from '../functions.js';\nimport {transform2D} from './flat/transform.js';\n\n/**\n * @typedef {'XY' | 'XYZ' | 'XYM' | 'XYZM'} GeometryLayout\n * The coordinate layout for geometries, indicating whether a 3rd or 4th z ('Z')\n * or measure ('M') coordinate is available.\n */\n\n/**\n * @typedef {'Point' | 'LineString' | 'LinearRing' | 'Polygon' | 'MultiPoint' | 'MultiLineString' | 'MultiPolygon' | 'GeometryCollection' | 'Circle'} Type\n * The geometry type. One of `'Point'`, `'LineString'`, `'LinearRing'`,\n * `'Polygon'`, `'MultiPoint'`, `'MultiLineString'`, `'MultiPolygon'`,\n * `'GeometryCollection'`, or `'Circle'`.\n */\n\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nconst tmpTransform = createTransform();\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for vector geometries.\n *\n * To get notified of changes to the geometry, register a listener for the\n * generic `change` event on your geometry instance.\n *\n * @abstract\n * @api\n */\nclass Geometry extends BaseObject {\n constructor() {\n super();\n\n /**\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = createEmpty();\n\n /**\n * @private\n * @type {number}\n */\n this.extentRevision_ = -1;\n\n /**\n * @protected\n * @type {number}\n */\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n\n /**\n * @protected\n * @type {number}\n */\n this.simplifiedGeometryRevision = 0;\n\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} revision The geometry revision.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n this.simplifyTransformedInternal = memoizeOne(\n (revision, squaredTolerance, transform) => {\n if (!transform) {\n return this.getSimplifiedGeometry(squaredTolerance);\n }\n const clone = this.clone();\n clone.applyTransform(transform);\n return clone.getSimplifiedGeometry(squaredTolerance);\n }\n );\n }\n\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n simplifyTransformed(squaredTolerance, transform) {\n return this.simplifyTransformedInternal(\n this.getRevision(),\n squaredTolerance,\n transform\n );\n }\n\n /**\n * Make a complete copy of the geometry.\n * @abstract\n * @return {!Geometry} Clone.\n */\n clone() {\n return abstract();\n }\n\n /**\n * @abstract\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n return abstract();\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n containsXY(x, y) {\n const coord = this.getClosestPoint([x, y]);\n return coord[0] === x && coord[1] === y;\n }\n\n /**\n * Return the closest point of the geometry to the passed point as\n * {@link module:ol/coordinate~Coordinate coordinate}.\n * @param {import(\"../coordinate.js\").Coordinate} point Point.\n * @param {import(\"../coordinate.js\").Coordinate} [closestPoint] Closest point.\n * @return {import(\"../coordinate.js\").Coordinate} Closest point.\n * @api\n */\n getClosestPoint(point, closestPoint) {\n closestPoint = closestPoint ? closestPoint : [NaN, NaN];\n this.closestPointXY(point[0], point[1], closestPoint, Infinity);\n return closestPoint;\n }\n\n /**\n * Returns true if this geometry includes the specified coordinate. If the\n * coordinate is on the boundary of the geometry, returns false.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains coordinate.\n * @api\n */\n intersectsCoordinate(coordinate) {\n return this.containsXY(coordinate[0], coordinate[1]);\n }\n\n /**\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n return abstract();\n }\n\n /**\n * Get the extent of the geometry.\n * @param {import(\"../extent.js\").Extent} [extent] Extent.\n * @return {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n getExtent(extent) {\n if (this.extentRevision_ != this.getRevision()) {\n const extent = this.computeExtent(this.extent_);\n if (isNaN(extent[0]) || isNaN(extent[1])) {\n createOrUpdateEmpty(extent);\n }\n this.extentRevision_ = this.getRevision();\n }\n return returnOrUpdate(this.extent_, extent);\n }\n\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} angle Rotation angle in radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n rotate(angle, anchor) {\n abstract();\n }\n\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n scale(sx, sy, anchor) {\n abstract();\n }\n\n /**\n * Create a simplified version of this geometry. For linestrings, this uses\n * the [Douglas Peucker](https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm)\n * algorithm. For polygons, a quantization-based\n * simplification is used to preserve topology.\n * @param {number} tolerance The tolerance distance for simplification.\n * @return {Geometry} A new, simplified version of the original geometry.\n * @api\n */\n simplify(tolerance) {\n return this.getSimplifiedGeometry(tolerance * tolerance);\n }\n\n /**\n * Create a simplified version of this geometry using the Douglas Peucker\n * algorithm.\n * See https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Geometry} Simplified geometry.\n */\n getSimplifiedGeometry(squaredTolerance) {\n return abstract();\n }\n\n /**\n * Get the type of this geometry.\n * @abstract\n * @return {Type} Geometry type.\n */\n getType() {\n return abstract();\n }\n\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @abstract\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n */\n applyTransform(transformFn) {\n abstract();\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n */\n intersectsExtent(extent) {\n return abstract();\n }\n\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @abstract\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n translate(deltaX, deltaY) {\n abstract();\n }\n\n /**\n * Transform each coordinate of the geometry from one coordinate reference\n * system to another. The geometry is modified in place.\n * For example, a line will be transformed to a line and a circle to a circle.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n *\n * @param {import(\"../proj.js\").ProjectionLike} source The current projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @param {import(\"../proj.js\").ProjectionLike} destination The desired projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @return {Geometry} This geometry. Note that original geometry is\n * modified in place.\n * @api\n */\n transform(source, destination) {\n /** @type {import(\"../proj/Projection.js\").default} */\n const sourceProj = getProjection(source);\n const transformFn =\n sourceProj.getUnits() == 'tile-pixels'\n ? function (inCoordinates, outCoordinates, stride) {\n const pixelExtent = sourceProj.getExtent();\n const projectedExtent = sourceProj.getWorldExtent();\n const scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(\n tmpTransform,\n projectedExtent[0],\n projectedExtent[3],\n scale,\n -scale,\n 0,\n 0,\n 0\n );\n transform2D(\n inCoordinates,\n 0,\n inCoordinates.length,\n stride,\n tmpTransform,\n outCoordinates\n );\n return getTransform(sourceProj, destination)(\n inCoordinates,\n outCoordinates,\n stride\n );\n }\n : getTransform(sourceProj, destination);\n this.applyTransform(transformFn);\n return this;\n }\n}\n\nexport default Geometry;\n","/**\n * @module ol/geom/SimpleGeometry\n */\nimport Geometry from './Geometry.js';\nimport {abstract} from '../util.js';\nimport {createOrUpdateFromFlatCoordinates, getCenter} from '../extent.js';\nimport {rotate, scale, transform2D, translate} from './flat/transform.js';\n\n/**\n * @classdesc\n * Abstract base class; only used for creating subclasses; do not instantiate\n * in apps, as cannot be rendered.\n *\n * @abstract\n * @api\n */\nclass SimpleGeometry extends Geometry {\n constructor() {\n super();\n\n /**\n * @protected\n * @type {import(\"./Geometry.js\").GeometryLayout}\n */\n this.layout = 'XY';\n\n /**\n * @protected\n * @type {number}\n */\n this.stride = 2;\n\n /**\n * @protected\n * @type {Array}\n */\n this.flatCoordinates;\n }\n\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n return createOrUpdateFromFlatCoordinates(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n extent\n );\n }\n\n /**\n * @abstract\n * @return {Array<*> | null} Coordinates.\n */\n getCoordinates() {\n return abstract();\n }\n\n /**\n * Return the first coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} First coordinate.\n * @api\n */\n getFirstCoordinate() {\n return this.flatCoordinates.slice(0, this.stride);\n }\n\n /**\n * @return {Array} Flat coordinates.\n */\n getFlatCoordinates() {\n return this.flatCoordinates;\n }\n\n /**\n * Return the last coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} Last point.\n * @api\n */\n getLastCoordinate() {\n return this.flatCoordinates.slice(\n this.flatCoordinates.length - this.stride\n );\n }\n\n /**\n * Return the {@link import(\"./Geometry.js\").GeometryLayout layout} of the geometry.\n * @return {import(\"./Geometry.js\").GeometryLayout} Layout.\n * @api\n */\n getLayout() {\n return this.layout;\n }\n\n /**\n * Create a simplified version of this geometry using the Douglas Peucker algorithm.\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n */\n getSimplifiedGeometry(squaredTolerance) {\n if (this.simplifiedGeometryRevision !== this.getRevision()) {\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n this.simplifiedGeometryRevision = this.getRevision();\n }\n // If squaredTolerance is negative or if we know that simplification will not\n // have any effect then just return this.\n if (\n squaredTolerance < 0 ||\n (this.simplifiedGeometryMaxMinSquaredTolerance !== 0 &&\n squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance)\n ) {\n return this;\n }\n\n const simplifiedGeometry =\n this.getSimplifiedGeometryInternal(squaredTolerance);\n const simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates();\n if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) {\n return simplifiedGeometry;\n }\n // Simplification did not actually remove any coordinates. We now know\n // that any calls to getSimplifiedGeometry with a squaredTolerance less\n // than or equal to the current squaredTolerance will also not have any\n // effect. This allows us to short circuit simplification (saving CPU\n // cycles) and prevents the cache of simplified geometries from filling\n // up with useless identical copies of this geometry (saving memory).\n this.simplifiedGeometryMaxMinSquaredTolerance = squaredTolerance;\n return this;\n }\n\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n * @protected\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n return this;\n }\n\n /**\n * @return {number} Stride.\n */\n getStride() {\n return this.stride;\n }\n\n /**\n * @param {import(\"./Geometry.js\").GeometryLayout} layout Layout.\n * @param {Array} flatCoordinates Flat coordinates.\n */\n setFlatCoordinates(layout, flatCoordinates) {\n this.stride = getStrideForLayout(layout);\n this.layout = layout;\n this.flatCoordinates = flatCoordinates;\n }\n\n /**\n * @abstract\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n setCoordinates(coordinates, layout) {\n abstract();\n }\n\n /**\n * @param {import(\"./Geometry.js\").GeometryLayout|undefined} layout Layout.\n * @param {Array<*>} coordinates Coordinates.\n * @param {number} nesting Nesting.\n * @protected\n */\n setLayout(layout, coordinates, nesting) {\n let stride;\n if (layout) {\n stride = getStrideForLayout(layout);\n } else {\n for (let i = 0; i < nesting; ++i) {\n if (coordinates.length === 0) {\n this.layout = 'XY';\n this.stride = 2;\n return;\n }\n coordinates = /** @type {Array} */ (coordinates[0]);\n }\n stride = coordinates.length;\n layout = getLayoutForStride(stride);\n }\n this.layout = layout;\n this.stride = stride;\n }\n\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n * @api\n */\n applyTransform(transformFn) {\n if (this.flatCoordinates) {\n transformFn(this.flatCoordinates, this.flatCoordinates, this.stride);\n this.changed();\n }\n }\n\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @param {number} angle Rotation angle in counter-clockwise radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n rotate(angle, anchor) {\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n rotate(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n angle,\n anchor,\n flatCoordinates\n );\n this.changed();\n }\n }\n\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n scale(sx, sy, anchor) {\n if (sy === undefined) {\n sy = sx;\n }\n if (!anchor) {\n anchor = getCenter(this.getExtent());\n }\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n scale(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n sx,\n sy,\n anchor,\n flatCoordinates\n );\n this.changed();\n }\n }\n\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n translate(deltaX, deltaY) {\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n translate(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n deltaX,\n deltaY,\n flatCoordinates\n );\n this.changed();\n }\n }\n}\n\n/**\n * @param {number} stride Stride.\n * @return {import(\"./Geometry.js\").GeometryLayout} layout Layout.\n */\nexport function getLayoutForStride(stride) {\n let layout;\n if (stride == 2) {\n layout = 'XY';\n } else if (stride == 3) {\n layout = 'XYZ';\n } else if (stride == 4) {\n layout = 'XYZM';\n }\n return /** @type {import(\"./Geometry.js\").GeometryLayout} */ (layout);\n}\n\n/**\n * @param {import(\"./Geometry.js\").GeometryLayout} layout Layout.\n * @return {number} Stride.\n */\nexport function getStrideForLayout(layout) {\n let stride;\n if (layout == 'XY') {\n stride = 2;\n } else if (layout == 'XYZ' || layout == 'XYM') {\n stride = 3;\n } else if (layout == 'XYZM') {\n stride = 4;\n }\n return /** @type {number} */ (stride);\n}\n\n/**\n * @param {SimpleGeometry} simpleGeometry Simple geometry.\n * @param {import(\"../transform.js\").Transform} transform Transform.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed flat coordinates.\n */\nexport function transformGeom2D(simpleGeometry, transform, dest) {\n const flatCoordinates = simpleGeometry.getFlatCoordinates();\n if (!flatCoordinates) {\n return null;\n }\n const stride = simpleGeometry.getStride();\n return transform2D(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n transform,\n dest\n );\n}\n\nexport default SimpleGeometry;\n","/**\n * @module ol/geom/flat/closest\n */\nimport {lerp, squaredDistance as squaredDx} from '../../math.js';\n\n/**\n * Returns the point on the 2D line segment flatCoordinates[offset1] to\n * flatCoordinates[offset2] that is closest to the point (x, y). Extra\n * dimensions are linearly interpolated.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset1 Offset 1.\n * @param {number} offset2 Offset 2.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n */\nfunction assignClosest(\n flatCoordinates,\n offset1,\n offset2,\n stride,\n x,\n y,\n closestPoint\n) {\n const x1 = flatCoordinates[offset1];\n const y1 = flatCoordinates[offset1 + 1];\n const dx = flatCoordinates[offset2] - x1;\n const dy = flatCoordinates[offset2 + 1] - y1;\n let offset;\n if (dx === 0 && dy === 0) {\n offset = offset1;\n } else {\n const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n offset = offset2;\n } else if (t > 0) {\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = lerp(\n flatCoordinates[offset1 + i],\n flatCoordinates[offset2 + i],\n t\n );\n }\n closestPoint.length = stride;\n return;\n } else {\n offset = offset1;\n }\n }\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n}\n\n/**\n * Return the squared of the largest distance between any pair of consecutive\n * coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function maxSquaredDelta(flatCoordinates, offset, end, stride, max) {\n let x1 = flatCoordinates[offset];\n let y1 = flatCoordinates[offset + 1];\n for (offset += stride; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n const squaredDelta = squaredDx(x1, y1, x2, y2);\n if (squaredDelta > max) {\n max = squaredDelta;\n }\n x1 = x2;\n y1 = y2;\n }\n return max;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function arrayMaxSquaredDelta(\n flatCoordinates,\n offset,\n ends,\n stride,\n max\n) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n max = maxSquaredDelta(flatCoordinates, offset, end, stride, max);\n offset = end;\n }\n return max;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function multiArrayMaxSquaredDelta(\n flatCoordinates,\n offset,\n endss,\n stride,\n max\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n max = arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max);\n offset = ends[ends.length - 1];\n }\n return max;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestPoint(\n flatCoordinates,\n offset,\n end,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n) {\n if (offset == end) {\n return minSquaredDistance;\n }\n let i, squaredDistance;\n if (maxDelta === 0) {\n // All points are identical, so just test the first point.\n squaredDistance = squaredDx(\n x,\n y,\n flatCoordinates[offset],\n flatCoordinates[offset + 1]\n );\n if (squaredDistance < minSquaredDistance) {\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n return minSquaredDistance;\n }\n tmpPoint = tmpPoint ? tmpPoint : [NaN, NaN];\n let index = offset + stride;\n while (index < end) {\n assignClosest(\n flatCoordinates,\n index - stride,\n index,\n stride,\n x,\n y,\n tmpPoint\n );\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n index += stride;\n } else {\n // Skip ahead multiple points, because we know that all the skipped\n // points cannot be any closer than the closest point we have found so\n // far. We know this because we know how close the current point is, how\n // close the closest point we have found so far is, and the maximum\n // distance between consecutive points. For example, if we're currently\n // at distance 10, the best we've found so far is 3, and that the maximum\n // distance between consecutive points is 2, then we'll need to skip at\n // least (10 - 3) / 2 == 3 (rounded down) points to have any chance of\n // finding a closer point. We use Math.max(..., 1) to ensure that we\n // always advance at least one point, to avoid an infinite loop.\n index +=\n stride *\n Math.max(\n ((Math.sqrt(squaredDistance) - Math.sqrt(minSquaredDistance)) /\n maxDelta) |\n 0,\n 1\n );\n }\n }\n if (isRing) {\n // Check the closing segment.\n assignClosest(\n flatCoordinates,\n end - stride,\n offset,\n stride,\n x,\n y,\n tmpPoint\n );\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n }\n }\n return minSquaredDistance;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestArrayPoint(\n flatCoordinates,\n offset,\n ends,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n) {\n tmpPoint = tmpPoint ? tmpPoint : [NaN, NaN];\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n minSquaredDistance = assignClosestPoint(\n flatCoordinates,\n offset,\n end,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n );\n offset = end;\n }\n return minSquaredDistance;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestMultiArrayPoint(\n flatCoordinates,\n offset,\n endss,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n) {\n tmpPoint = tmpPoint ? tmpPoint : [NaN, NaN];\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n minSquaredDistance = assignClosestArrayPoint(\n flatCoordinates,\n offset,\n ends,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n );\n offset = ends[ends.length - 1];\n }\n return minSquaredDistance;\n}\n","/**\n * @module ol/geom/flat/deflate\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinate(flatCoordinates, offset, coordinate, stride) {\n for (let i = 0, ii = coordinate.length; i < ii; ++i) {\n flatCoordinates[offset++] = coordinate[i];\n }\n return offset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} coordinates Coordinates.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinates(\n flatCoordinates,\n offset,\n coordinates,\n stride\n) {\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n const coordinate = coordinates[i];\n for (let j = 0; j < stride; ++j) {\n flatCoordinates[offset++] = coordinate[j];\n }\n }\n return offset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} coordinatess Coordinatess.\n * @param {number} stride Stride.\n * @param {Array} [ends] Ends.\n * @return {Array} Ends.\n */\nexport function deflateCoordinatesArray(\n flatCoordinates,\n offset,\n coordinatess,\n stride,\n ends\n) {\n ends = ends ? ends : [];\n let i = 0;\n for (let j = 0, jj = coordinatess.length; j < jj; ++j) {\n const end = deflateCoordinates(\n flatCoordinates,\n offset,\n coordinatess[j],\n stride\n );\n ends[i++] = end;\n offset = end;\n }\n ends.length = i;\n return ends;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>>} coordinatesss Coordinatesss.\n * @param {number} stride Stride.\n * @param {Array>} [endss] Endss.\n * @return {Array>} Endss.\n */\nexport function deflateMultiCoordinatesArray(\n flatCoordinates,\n offset,\n coordinatesss,\n stride,\n endss\n) {\n endss = endss ? endss : [];\n let i = 0;\n for (let j = 0, jj = coordinatesss.length; j < jj; ++j) {\n const ends = deflateCoordinatesArray(\n flatCoordinates,\n offset,\n coordinatesss[j],\n stride,\n endss[i]\n );\n if (ends.length === 0) {\n ends[0] = offset;\n }\n endss[i++] = ends;\n offset = ends[ends.length - 1];\n }\n endss.length = i;\n return endss;\n}\n","/**\n * @module ol/geom/flat/simplify\n */\n// Based on simplify-js https://github.com/mourner/simplify-js\n// Copyright (c) 2012, Vladimir Agafonkin\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice,\n// this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n// POSSIBILITY OF SUCH DAMAGE.\n\nimport {squaredDistance, squaredSegmentDistance} from '../../math.js';\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {boolean} highQuality Highest quality.\n * @param {Array} [simplifiedFlatCoordinates] Simplified flat\n * coordinates.\n * @return {Array} Simplified line string.\n */\nexport function simplifyLineString(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n highQuality,\n simplifiedFlatCoordinates\n) {\n simplifiedFlatCoordinates =\n simplifiedFlatCoordinates !== undefined ? simplifiedFlatCoordinates : [];\n if (!highQuality) {\n end = radialDistance(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n 0\n );\n flatCoordinates = simplifiedFlatCoordinates;\n offset = 0;\n stride = 2;\n }\n simplifiedFlatCoordinates.length = douglasPeucker(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n 0\n );\n return simplifiedFlatCoordinates;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function douglasPeucker(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n) {\n const n = (end - offset) / stride;\n if (n < 3) {\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n /** @type {Array} */\n const markers = new Array(n);\n markers[0] = 1;\n markers[n - 1] = 1;\n /** @type {Array} */\n const stack = [offset, end - stride];\n let index = 0;\n while (stack.length > 0) {\n const last = stack.pop();\n const first = stack.pop();\n let maxSquaredDistance = 0;\n const x1 = flatCoordinates[first];\n const y1 = flatCoordinates[first + 1];\n const x2 = flatCoordinates[last];\n const y2 = flatCoordinates[last + 1];\n for (let i = first + stride; i < last; i += stride) {\n const x = flatCoordinates[i];\n const y = flatCoordinates[i + 1];\n const squaredDistance = squaredSegmentDistance(x, y, x1, y1, x2, y2);\n if (squaredDistance > maxSquaredDistance) {\n index = i;\n maxSquaredDistance = squaredDistance;\n }\n }\n if (maxSquaredDistance > squaredTolerance) {\n markers[(index - offset) / stride] = 1;\n if (first + stride < index) {\n stack.push(first, index);\n }\n if (index + stride < last) {\n stack.push(index, last);\n }\n }\n }\n for (let i = 0; i < n; ++i) {\n if (markers[i]) {\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride + 1];\n }\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEnds\n) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n simplifiedOffset = douglasPeucker(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n );\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerMultiArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEndss\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n /** @type {Array} */\n const simplifiedEnds = [];\n simplifiedOffset = douglasPeuckerArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEnds\n );\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function radialDistance(\n flatCoordinates,\n offset,\n end,\n stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n) {\n if (end <= offset + stride) {\n // zero or one point, no simplification possible, so copy and return\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n let x1 = flatCoordinates[offset];\n let y1 = flatCoordinates[offset + 1];\n // copy first point\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n let x2 = x1;\n let y2 = y1;\n for (offset += stride; offset < end; offset += stride) {\n x2 = flatCoordinates[offset];\n y2 = flatCoordinates[offset + 1];\n if (squaredDistance(x1, y1, x2, y2) > squaredTolerance) {\n // copy point at offset\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n }\n }\n if (x2 != x1 || y2 != y1) {\n // copy last point\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {number} value Value.\n * @param {number} tolerance Tolerance.\n * @return {number} Rounded value.\n */\nexport function snap(value, tolerance) {\n return tolerance * Math.round(value / tolerance);\n}\n\n/**\n * Simplifies a line string using an algorithm designed by Tim Schaub.\n * Coordinates are snapped to the nearest value in a virtual grid and\n * consecutive duplicate coordinates are discarded. This effectively preserves\n * topology as the simplification of any subsection of a line string is\n * independent of the rest of the line string. This means that, for examples,\n * the common edge between two polygons will be simplified to the same line\n * string independently in both polygons. This implementation uses a single\n * pass over the coordinates and eliminates intermediate collinear points.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function quantize(\n flatCoordinates,\n offset,\n end,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n) {\n // do nothing if the line is empty\n if (offset == end) {\n return simplifiedOffset;\n }\n // snap the first coordinate (P1)\n let x1 = snap(flatCoordinates[offset], tolerance);\n let y1 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // add the first coordinate to the output\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n // find the next coordinate that does not snap to the same value as the first\n // coordinate (P2)\n let x2, y2;\n do {\n x2 = snap(flatCoordinates[offset], tolerance);\n y2 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n if (offset == end) {\n // all coordinates snap to the same value, the line collapses to a point\n // push the last snapped value anyway to ensure that the output contains\n // at least two points\n // FIXME should we really return at least two points anyway?\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n }\n } while (x2 == x1 && y2 == y1);\n while (offset < end) {\n // snap the next coordinate (P3)\n const x3 = snap(flatCoordinates[offset], tolerance);\n const y3 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // skip P3 if it is equal to P2\n if (x3 == x2 && y3 == y2) {\n continue;\n }\n // calculate the delta between P1 and P2\n const dx1 = x2 - x1;\n const dy1 = y2 - y1;\n // calculate the delta between P3 and P1\n const dx2 = x3 - x1;\n const dy2 = y3 - y1;\n // if P1, P2, and P3 are colinear and P3 is further from P1 than P2 is from\n // P1 in the same direction then P2 is on the straight line between P1 and\n // P3\n if (\n dx1 * dy2 == dy1 * dx2 &&\n ((dx1 < 0 && dx2 < dx1) || dx1 == dx2 || (dx1 > 0 && dx2 > dx1)) &&\n ((dy1 < 0 && dy2 < dy1) || dy1 == dy2 || (dy1 > 0 && dy2 > dy1))\n ) {\n // discard P2 and set P2 = P3\n x2 = x3;\n y2 = y3;\n continue;\n }\n // either P1, P2, and P3 are not colinear, or they are colinear but P3 is\n // between P3 and P1 or on the opposite half of the line to P2. add P2,\n // and continue with P1 = P2 and P2 = P3\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n x2 = x3;\n y2 = y3;\n }\n // add the last point (P2)\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function quantizeArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEnds\n) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n simplifiedOffset = quantize(\n flatCoordinates,\n offset,\n end,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset\n );\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function quantizeMultiArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEndss\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n /** @type {Array} */\n const simplifiedEnds = [];\n simplifiedOffset = quantizeArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n tolerance,\n simplifiedFlatCoordinates,\n simplifiedOffset,\n simplifiedEnds\n );\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n","/**\n * @module ol/geom/flat/inflate\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Array} [coordinates] Coordinates.\n * @return {Array} Coordinates.\n */\nexport function inflateCoordinates(\n flatCoordinates,\n offset,\n end,\n stride,\n coordinates\n) {\n coordinates = coordinates !== undefined ? coordinates : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n coordinates[i++] = flatCoordinates.slice(j, j + stride);\n }\n coordinates.length = i;\n return coordinates;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array>} [coordinatess] Coordinatess.\n * @return {Array>} Coordinatess.\n */\nexport function inflateCoordinatesArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n coordinatess\n) {\n coordinatess = coordinatess !== undefined ? coordinatess : [];\n let i = 0;\n for (let j = 0, jj = ends.length; j < jj; ++j) {\n const end = ends[j];\n coordinatess[i++] = inflateCoordinates(\n flatCoordinates,\n offset,\n end,\n stride,\n coordinatess[i]\n );\n offset = end;\n }\n coordinatess.length = i;\n return coordinatess;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array>>} [coordinatesss]\n * Coordinatesss.\n * @return {Array>>} Coordinatesss.\n */\nexport function inflateMultiCoordinatesArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n coordinatesss\n) {\n coordinatesss = coordinatesss !== undefined ? coordinatesss : [];\n let i = 0;\n for (let j = 0, jj = endss.length; j < jj; ++j) {\n const ends = endss[j];\n coordinatesss[i++] =\n ends.length === 1 && ends[0] === offset\n ? []\n : inflateCoordinatesArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n coordinatesss[i]\n );\n offset = ends[ends.length - 1];\n }\n coordinatesss.length = i;\n return coordinatesss;\n}\n","/**\n * @module ol/geom/flat/area\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRing(flatCoordinates, offset, end, stride) {\n let twiceArea = 0;\n let x1 = flatCoordinates[end - stride];\n let y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n twiceArea += y1 * x2 - x1 * y2;\n x1 = x2;\n y1 = y2;\n }\n return twiceArea / 2;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRings(flatCoordinates, offset, ends, stride) {\n let area = 0;\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n area += linearRing(flatCoordinates, offset, end, stride);\n offset = end;\n }\n return area;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRingss(flatCoordinates, offset, endss, stride) {\n let area = 0;\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n area += linearRings(flatCoordinates, offset, ends, stride);\n offset = ends[ends.length - 1];\n }\n return area;\n}\n","/**\n * @module ol/geom/LinearRing\n */\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {assignClosestPoint, maxSquaredDelta} from './flat/closest.js';\nimport {closestSquaredDistanceXY} from '../extent.js';\nimport {deflateCoordinates} from './flat/deflate.js';\nimport {douglasPeucker} from './flat/simplify.js';\nimport {inflateCoordinates} from './flat/inflate.js';\nimport {linearRing as linearRingArea} from './flat/area.js';\n\n/**\n * @classdesc\n * Linear ring geometry. Only used as part of polygon; cannot be rendered\n * on its own.\n *\n * @api\n */\nclass LinearRing extends SimpleGeometry {\n /**\n * @param {Array|Array} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `layout` are also accepted.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n constructor(coordinates, layout) {\n super();\n\n /**\n * @private\n * @type {number}\n */\n this.maxDelta_ = -1;\n\n /**\n * @private\n * @type {number}\n */\n this.maxDeltaRevision_ = -1;\n\n if (layout !== undefined && !Array.isArray(coordinates[0])) {\n this.setFlatCoordinates(\n layout,\n /** @type {Array} */ (coordinates)\n );\n } else {\n this.setCoordinates(\n /** @type {Array} */ (\n coordinates\n ),\n layout\n );\n }\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!LinearRing} Clone.\n * @api\n */\n clone() {\n return new LinearRing(this.flatCoordinates.slice(), this.layout);\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(\n maxSquaredDelta(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n 0\n )\n );\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestPoint(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n this.maxDelta_,\n true,\n x,\n y,\n closestPoint,\n minSquaredDistance\n );\n }\n\n /**\n * Return the area of the linear ring on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n getArea() {\n return linearRingArea(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride\n );\n }\n\n /**\n * Return the coordinates of the linear ring.\n * @return {Array} Coordinates.\n * @api\n */\n getCoordinates() {\n return inflateCoordinates(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride\n );\n }\n\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {LinearRing} Simplified LinearRing.\n * @protected\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n /** @type {Array} */\n const simplifiedFlatCoordinates = [];\n simplifiedFlatCoordinates.length = douglasPeucker(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n 0\n );\n return new LinearRing(simplifiedFlatCoordinates, 'XY');\n }\n\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n */\n getType() {\n return 'LinearRing';\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n intersectsExtent(extent) {\n return false;\n }\n\n /**\n * Set the coordinates of the linear ring.\n * @param {!Array} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n * @api\n */\n setCoordinates(coordinates, layout) {\n this.setLayout(layout, coordinates, 1);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinates(\n this.flatCoordinates,\n 0,\n coordinates,\n this.stride\n );\n this.changed();\n }\n}\n\nexport default LinearRing;\n","/**\n * @module ol/geom/Point\n */\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {containsXY, createOrUpdateFromCoordinate} from '../extent.js';\nimport {deflateCoordinate} from './flat/deflate.js';\nimport {squaredDistance as squaredDx} from '../math.js';\n\n/**\n * @classdesc\n * Point geometry.\n *\n * @api\n */\nclass Point extends SimpleGeometry {\n /**\n * @param {import(\"../coordinate.js\").Coordinate} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n constructor(coordinates, layout) {\n super();\n this.setCoordinates(coordinates, layout);\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!Point} Clone.\n * @api\n */\n clone() {\n const point = new Point(this.flatCoordinates.slice(), this.layout);\n point.applyProperties(this);\n return point;\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n const flatCoordinates = this.flatCoordinates;\n const squaredDistance = squaredDx(\n x,\n y,\n flatCoordinates[0],\n flatCoordinates[1]\n );\n if (squaredDistance < minSquaredDistance) {\n const stride = this.stride;\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n return minSquaredDistance;\n }\n\n /**\n * Return the coordinate of the point.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinates.\n * @api\n */\n getCoordinates() {\n return this.flatCoordinates.slice();\n }\n\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n return createOrUpdateFromCoordinate(this.flatCoordinates, extent);\n }\n\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n */\n getType() {\n return 'Point';\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n intersectsExtent(extent) {\n return containsXY(extent, this.flatCoordinates[0], this.flatCoordinates[1]);\n }\n\n /**\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n * @api\n */\n setCoordinates(coordinates, layout) {\n this.setLayout(layout, coordinates, 0);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinate(\n this.flatCoordinates,\n 0,\n coordinates,\n this.stride\n );\n this.changed();\n }\n}\n\nexport default Point;\n","/**\n * @module ol/geom/flat/contains\n */\nimport {forEachCorner} from '../../extent.js';\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} Contains extent.\n */\nexport function linearRingContainsExtent(\n flatCoordinates,\n offset,\n end,\n stride,\n extent\n) {\n const outside = forEachCorner(\n extent,\n /**\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains (x, y).\n */\n function (coordinate) {\n return !linearRingContainsXY(\n flatCoordinates,\n offset,\n end,\n stride,\n coordinate[0],\n coordinate[1]\n );\n }\n );\n return !outside;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingContainsXY(\n flatCoordinates,\n offset,\n end,\n stride,\n x,\n y\n) {\n // https://geomalgorithms.com/a03-_inclusion.html\n // Copyright 2000 softSurfer, 2012 Dan Sunday\n // This code may be freely used and modified for any purpose\n // providing that this copyright notice is included with it.\n // SoftSurfer makes no warranty for this code, and cannot be held\n // liable for any real or imagined damage resulting from its use.\n // Users of this code must verify correctness for their application.\n let wn = 0;\n let x1 = flatCoordinates[end - stride];\n let y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n if (y1 <= y) {\n if (y2 > y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) > 0) {\n wn++;\n }\n } else if (y2 <= y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) < 0) {\n wn--;\n }\n x1 = x2;\n y1 = y2;\n }\n return wn !== 0;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingsContainsXY(\n flatCoordinates,\n offset,\n ends,\n stride,\n x,\n y\n) {\n if (ends.length === 0) {\n return false;\n }\n if (!linearRingContainsXY(flatCoordinates, offset, ends[0], stride, x, y)) {\n return false;\n }\n for (let i = 1, ii = ends.length; i < ii; ++i) {\n if (\n linearRingContainsXY(flatCoordinates, ends[i - 1], ends[i], stride, x, y)\n ) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingssContainsXY(\n flatCoordinates,\n offset,\n endss,\n stride,\n x,\n y\n) {\n if (endss.length === 0) {\n return false;\n }\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n","/**\n * @module ol/geom/flat/interiorpoint\n */\nimport {ascending} from '../../array.js';\nimport {linearRingsContainsXY} from './contains.js';\n\n/**\n * Calculates a point that is likely to lie in the interior of the linear rings.\n * Inspired by JTS's com.vividsolutions.jts.geom.Geometry#getInteriorPoint.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @param {number} flatCentersOffset Flat center offset.\n * @param {Array} [dest] Destination.\n * @return {Array} Destination point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointOfArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n flatCenters,\n flatCentersOffset,\n dest\n) {\n let i, ii, x, x1, x2, y1, y2;\n const y = flatCenters[flatCentersOffset + 1];\n /** @type {Array} */\n const intersections = [];\n // Calculate intersections with the horizontal line\n for (let r = 0, rr = ends.length; r < rr; ++r) {\n const end = ends[r];\n x1 = flatCoordinates[end - stride];\n y1 = flatCoordinates[end - stride + 1];\n for (i = offset; i < end; i += stride) {\n x2 = flatCoordinates[i];\n y2 = flatCoordinates[i + 1];\n if ((y <= y1 && y2 <= y) || (y1 <= y && y <= y2)) {\n x = ((y - y1) / (y2 - y1)) * (x2 - x1) + x1;\n intersections.push(x);\n }\n x1 = x2;\n y1 = y2;\n }\n }\n // Find the longest segment of the horizontal line that has its center point\n // inside the linear ring.\n let pointX = NaN;\n let maxSegmentLength = -Infinity;\n intersections.sort(ascending);\n x1 = intersections[0];\n for (i = 1, ii = intersections.length; i < ii; ++i) {\n x2 = intersections[i];\n const segmentLength = Math.abs(x2 - x1);\n if (segmentLength > maxSegmentLength) {\n x = (x1 + x2) / 2;\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n pointX = x;\n maxSegmentLength = segmentLength;\n }\n }\n x1 = x2;\n }\n if (isNaN(pointX)) {\n // There is no horizontal line that has its center point inside the linear\n // ring. Use the center of the the linear ring's extent.\n pointX = flatCenters[flatCentersOffset];\n }\n if (dest) {\n dest.push(pointX, y, maxSegmentLength);\n return dest;\n }\n return [pointX, y, maxSegmentLength];\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @return {Array} Interior points as XYM coordinates, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointsOfMultiArray(\n flatCoordinates,\n offset,\n endss,\n stride,\n flatCenters\n) {\n /** @type {Array} */\n let interiorPoints = [];\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n interiorPoints = getInteriorPointOfArray(\n flatCoordinates,\n offset,\n ends,\n stride,\n flatCenters,\n 2 * i,\n interiorPoints\n );\n offset = ends[ends.length - 1];\n }\n return interiorPoints;\n}\n","/**\n * @module ol/geom/flat/segments\n */\n\n/**\n * This function calls `callback` for each segment of the flat coordinates\n * array. If the callback returns a truthy value the function returns that\n * value immediately. Otherwise the function returns `false`.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {function(import(\"../../coordinate.js\").Coordinate, import(\"../../coordinate.js\").Coordinate): T} callback Function\n * called for each segment.\n * @return {T|boolean} Value.\n * @template T\n */\nexport function forEach(flatCoordinates, offset, end, stride, callback) {\n let ret;\n offset += stride;\n for (; offset < end; offset += stride) {\n ret = callback(\n flatCoordinates.slice(offset - stride, offset),\n flatCoordinates.slice(offset, offset + stride)\n );\n if (ret) {\n return ret;\n }\n }\n return false;\n}\n","/**\n * @module ol/geom/flat/intersectsextent\n */\nimport {\n containsExtent,\n createEmpty,\n extendFlatCoordinates,\n intersects,\n intersectsSegment,\n} from '../../extent.js';\nimport {forEach as forEachSegment} from './segments.js';\nimport {linearRingContainsExtent, linearRingContainsXY} from './contains.js';\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineString(\n flatCoordinates,\n offset,\n end,\n stride,\n extent\n) {\n const coordinatesExtent = extendFlatCoordinates(\n createEmpty(),\n flatCoordinates,\n offset,\n end,\n stride\n );\n if (!intersects(extent, coordinatesExtent)) {\n return false;\n }\n if (containsExtent(extent, coordinatesExtent)) {\n return true;\n }\n if (coordinatesExtent[0] >= extent[0] && coordinatesExtent[2] <= extent[2]) {\n return true;\n }\n if (coordinatesExtent[1] >= extent[1] && coordinatesExtent[3] <= extent[3]) {\n return true;\n }\n return forEachSegment(\n flatCoordinates,\n offset,\n end,\n stride,\n /**\n * @param {import(\"../../coordinate.js\").Coordinate} point1 Start point.\n * @param {import(\"../../coordinate.js\").Coordinate} point2 End point.\n * @return {boolean} `true` if the segment and the extent intersect,\n * `false` otherwise.\n */\n function (point1, point2) {\n return intersectsSegment(extent, point1, point2);\n }\n );\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array