9 votos

Leaflet JS añadir forma GeoJSON como un agujero en un polígono

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

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

Y me sale esto geojson plotted on map

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

geojson as a hole in the map

Según 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 las restantes representan los agujeros del interior.

Así que 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 a esta función no parece gustarle que le pase data.geojson o data.geojson.coordinates como segundo parámetro (coordinatesOfShapeHole);

¿Hay alguna manera de convertir data.geojson en un formato que la función L.Polygon pueda utilizar?

¿O hacer lo mismo pero con L.geoJson?

7voto

xElx Puntos 21

Esto debería funcionar. ¿Qué versión de Leaflet utiliza?

Eche un vistazo a este jsFiddle.

Es importante que hagas bien las matrices.

El primer array es el objeto polígono [ aquí el anillo exterior [ aquí algunos [lat,lon],[,] cierran el anillo exterior], luego el anillo interior [ aquí algunos [lat,lon],[,] cierran el anillo interior ] cierran 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);

1 votos

Hola, gracias. Eso funciona muy bien si se trata de un polígono sencillo, pero mis datos están en formato geojson. Sabes si hay alguna forma de convertir el geojson en coordenadas poligonales. ¿O conseguirlo usando L.geoJson?

0 votos

Eso no debería ser un problema. He bifurcado el jsFiddle para utilizar L.geoJson. jsfiddle.net/goldrydigital/xa6vg5zj

0 votos

Brillante, gracias. No me había dado cuenta de que el geojson contiene una definición de polígono que se puede pasar un multi-array similar al polígono estándar.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X