El folleto JS agrega la forma GeoJSON como un agujero en un polígono

9

Tengo un conjunto de datos que ya contiene geojson. Puedo agregarlo a mi mapa con la siguiente línea de código.

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

Y entiendo esto Geojson trazado en el mapa

Pero quiero lograr esto, donde el área circundante está cubierta y mi forma de geojson es un agujero en el medio.

Geojson como un agujero en el mapa

De acuerdo con la documentación del folleto

También puede crear un polígono con agujeros pasando una matriz de matrices de latlngs, con la primera matriz de latlngs representando el anillo exterior mientras que el resto representa los agujeros en el interior.

Entonces, en teoría, algo como:

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

Mi problema es que esta función no parece que me guste pasar data.geojson o data.geojson.coordinates como el segundo parámetro (coordenadasOfShapeHole);

¿Hay alguna forma de convertir data.geojson en un formato con el que la función L.Polygon esté contenta?

¿O, alternativamente, hacer lo mismo pero con L.geoJson?

elMarquis
fuente

Respuestas:

7

Esto debería funcionar. ¿Qué versión de Leaflet estás usando?

Aquí, eche un vistazo a este jsFiddle.

Es importante que obtenga las matrices correctas.

La primera matriz es el objeto poligonal [aquí el anillo externo [aquí algunos [lat, lon], [,] cerrar el anillo externo], luego el anillo interno [aquí algunos [lat, lon], [,] cerrar el anillo interior] cierra el polígono].

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
fuente
1
Hola Gracias. Eso funciona muy bien si estoy tratando con un polígono directo, pero mis datos están en formato geojson. ¿Sabes si hay una manera de convertir el geojson en coordenadas poligonales? ¿O lograrlo usando L.geoJson?
elMarquis
Eso no debería ser un problema. Bifurqué el jsFiddle para usar L.geoJson. jsfiddle.net/goldrydigital/xa6vg5zj
Dennis Bauszus
Brillantes gracias. No me había dado cuenta de que el geojson contenía una definición de polígono que se puede pasar a una matriz múltiple similar al polígono estándar.
elMarquis