Il volantino JS aggiunge la forma GeoJSON come un buco in un poligono


9

Ho un set di dati che contiene già geojson. Posso aggiungerlo alla mia mappa con la seguente riga di codice.

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

E ho capito geojson tracciato sulla mappa

Ma voglio raggiungere questo obiettivo, in cui l'area circostante è coperta e la mia forma geojson è un buco nel mezzo.

geojson come un buco nella mappa

Secondo la documentazione del volantino

Puoi anche creare un poligono con buchi passando una matrice di matrici di latlng, con la prima matrice di latlng che rappresenta l'anello esterno mentre i rimanenti rappresentano i buchi all'interno.

Quindi in teoria qualcosa di simile:

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

Il mio problema è che questa funzione non sembra che mi piaccia passare in data.geojson o data.geojson.coordinates come secondo parametro (coordinateOfShapeHole);

C'è un modo per convertire data.geojson in un formato di cui la funzione L.Polygon è soddisfatta?

O in alternativa fare la stessa cosa ma con L.geoJson?

Risposte:


7

Questo dovrebbe funzionare. Quale versione di Leaflet stai usando?

Ecco, dai un'occhiata a questo jsFiddle.

È importante ottenere le matrici giuste.

Il primo array è l'oggetto poligonale [qui l'anello esterno [qui alcuni [lat, lon], [,] chiude l'anello esterno], quindi l'anello interno [dentro qui alcuni [lat, lon], [,] chiude il anello interno] chiude il poligono].

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);

1
Ciao grazie. Funziona benissimo se ho a che fare con un poligono semplice, ma i miei dati sono in formato geojson. Sai se c'è un modo per convertire il geojson in coordinate poligonali. O realizzarlo usando L.geoJson?
elMarquis,

Questo non dovrebbe essere un problema. Ho lasciato il jsFiddle per usare L.geoJson. jsfiddle.net/goldrydigital/xa6vg5zj
Dennis Bauszus

Grazie brillante. Non mi ero reso conto che il geojson contenesse una definizione di poligono a cui può essere passato un multi-array simile al poligono standard.
elMarquis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.