2012-05-03 22 views
10

¿Qué representa exactamente un layer en el Leaflet Mapping Library?Definición de una capa de folleto

Conceptualmente, para mí, una capa representaría un nivel único de algún tipo de característica u objeto; por ejemplo, todos los mosaicos de imágenes que representan el mapa de nivel base se representarán en una sola capa, un conjunto de polígonos que representan estados en los EE. UU. puede estar en su propia capa separada.

Mirando específicamente a L.GeoJSON.addGeoJSON(geojson), se lee que cada nuevo polígono creado se coloca en su propia capa (y luego tal vez se fusionó con la capa que está llamando al método?). Mi caso de uso es que necesito agregar muchos objetos geoJSON uno a la vez y quiero asegurarme de no crear muchas capas innecesarias (o si lo estoy, si esto es realmente malo).

Gracias.

Respuesta

25

En el folleto, todo lo que se puede agregar al mapa es una capa. Entonces, los polígonos, círculos, marcadores, ventanas emergentes, mosaicos son todas capas. Puede combinar capas en un L.LayerGroup (o FeatureGroup) si, por ejemplo, desea tratar un conjunto de polígonos como una sola capa. De modo que tal vez su interpretación de las capas coincide mejor con lo que está modelado por L.LayerGroup en el prospecto.

L.GeoJSON es un LayerGroup (específicamente un FeatureGroup) que se inicializa desde GeoJSON. Cada polígono nuevo se agrega al L.GeoJSON LayerGroup usando addLayer, que es el método para agregar cualquier cosa (es decir, una capa) a LayerGroup. No crea una nueva capa para cada polígono (que no sea el L.Polygon que ya se considera una capa). Solo crea nuevos FeatureGroups (LayerGroups) para GeometryCollection y MultiPoints, que (supongo) es para preservar la estructura de GeoJSON.

Si desea agregar objetos geoJSON al mismo LayerGroup uno a la vez, puede simplemente llamar al L.GeoJSON.geometryToLayer para convertir su objeto GeoJSON, y luego agregarlo a su LayerGroup usando L.LayerGroup.addLayer.

+0

Esta es una gran respuesta, gracias. Para que quede claro, 'L.GeoJSON' es en realidad un grupo de capas (un grupo de otras capas) en lugar de una capa en sí misma. Nit picky, pero para mayor claridad si otros leen esto. – oli

+0

@oli gracias y tienes razón, L.GeoJSON es un LayerGroup, pero creo que un LayerGroup también podría considerarse una capa (según la definición). De todos modos, actualicé la respuesta para mayor claridad. –

Cuestiones relacionadas