2012-05-03 12 views
10

Che cosa rappresenta esattamente unonello Leaflet Mapping Library?Definizione di uno strato di volantini

Concettualmente, per me un livello rappresenterebbe un singolo livello di un tipo di funzionalità o oggetto; per esempio tutte le tessere dell'immagine che rappresentano la mappa del livello di base sarebbero rappresentate su un singolo livello, un insieme di poligoni che rappresentano stati negli Stati Uniti potrebbe essere sul proprio livello separato.

Specificamente guardando L.GeoJSON.addGeoJSON(geojson), si legge che ogni nuovo poligono creato viene inserito nel proprio livello (e quindi può essere unito al livello su cui si sta chiamando il metodo?). Il mio caso d'uso è che ho bisogno di aggiungere molti oggetti geoJSON uno alla volta e voglio assicurarmi che non sto creando molti livelli non necessari (o se lo sono, se questo è in realtà una cosa negativa).

Grazie.

risposta

25

In Leaflet tutto ciò che può essere aggiunto alla mappa è un livello. Quindi i poligoni, i cerchi, i marcatori, i popup, le tessere sono tutti livelli. È possibile combinare i livelli in un L.LayerGroup (o FeatureGroup), se si desidera ad esempio trattare un set di poligoni come un singolo livello. Quindi forse la tua interpretazione degli strati corrisponde meglio a ciò che è modellato da L.LayerGroup in Leaflet.

L.GeoJSON è un LayerGroup (in particolare un FeatureGroup) inizializzato da GeoJSON. Ogni nuovo poligono viene aggiunto al gruppo di layer L.GeoJSON utilizzando addLayer, che è il metodo per aggiungere qualsiasi cosa (ovvero un livello) a LayerGroup. Non crea un nuovo livello per ogni poligono (diverso dallo L.Polygon che è già considerato un livello). Crea solo nuovi FeatureGroup (LayerGroups) per una GeometryCollection e MultiPoints, che (presumo) è al fine di preservare la struttura da GeoJSON.

Se si desidera aggiungere oggetti geoJSON allo stesso LayerGroup uno alla volta, è sufficiente chiamare lo L.GeoJSON.geometryToLayer per convertire l'oggetto GeoJSON, quindi aggiungerlo al LayerGroup utilizzando L.LayerGroup.addLayer.

+0

Questa è una grande risposta, grazie. Per essere chiari, 'L.GeoJSON' è in realtà un gruppo di livelli (un gruppo di altri livelli) rispetto a uno strato in sé stesso? Nit schizzinoso, ma solo per completa chiarezza se altri lo leggono. – oli

+0

@oli grazie e hai ragione, L.GeoJSON è un LayerGroup, ma immagino che un LayerGroup possa anche essere considerato un livello (a seconda della definizione). Ad ogni modo, ho aggiornato la risposta per chiarezza. –

Problemi correlati