Le dépliant JS ajoute la forme GeoJSON comme trou dans un polygone

9

J'ai un jeu de données qui contient déjà geojson. Je peux l'ajouter à ma carte avec la ligne de code suivante.

L.geoJson(data.geojson).addTo(map);

Et je comprends ça geojson tracé sur la carte

Mais je veux y arriver, où la zone environnante est recouverte et ma forme geojson est un trou au milieu.

geojson comme un trou sur la carte

Selon la documentation de la brochure

Vous pouvez également créer un polygone avec des trous en passant un tableau de tableaux de latlngs, le premier tableau latlngs représentant l'anneau extérieur tandis que les autres représentent les trous à l'intérieur.

Donc, en théorie, quelque chose comme:

var scotland = [[60,-13],[60,0],[50,4],[50,-13]];
L.Polygon([scotland,coordinatesOfShapeHole].addTo(map);

Mon problème est que cette fonction ne semble pas aimer que je passe data.geojson ou data.geojson.coordinates comme deuxième paramètre (coordonnéesOfShapeHole);

Existe-t-il un moyen de convertir data.geojson dans un format dont la fonction L.Polygon est satisfaite?

Ou bien faire la même chose mais avec L.geoJson?

elMarquis
la source

Réponses:

7

Cela devrait fonctionner. Quelle version de Leaflet utilisez-vous?

Ici, jetez un œil à ce jsFiddle.

Il est important que vous obteniez les bons tableaux.

Le premier tableau est l'objet polygone [ici l'anneau extérieur [ici certains [lat, lon], [,] ferme l'anneau extérieur], puis l'anneau intérieur [ici certains [lat, lon], [,] ferme le anneau intérieur] ferme le polygone].

scotland = L.polygon([[[60,-13],[60,0],[50,4],[50,-13]],
                  [[55.7,-4.5],[56,-4.5],[56,-4],[55.7,-4]]]);
scotland.addTo(map);
Dennis Bauszus
la source
1
Salut merci. Cela fonctionne très bien si j'ai affaire à un polygone simple, mais mes données sont au format geojson. Savez-vous s'il existe un moyen de convertir le geojson en coordonnées polygonales. Ou le réaliser en utilisant L.geoJson?
elMarquis
Ça ne devrait pas être un problème. J'ai bifurqué le jsFiddle pour utiliser L.geoJson. jsfiddle.net/goldrydigital/xa6vg5zj
Dennis Bauszus
Un grand merci. Je n'avais pas réalisé que le geojson contenait une définition de polygone à laquelle on peut passer un multi-tableau similaire au polygone standard.
elMarquis