2012-05-03 6 views
10

Что именно представляет layer в Leaflet Mapping Library?Определение слоя листовок

Концептуально, для меня слой будет представлять собой один уровень определенного типа объекта или объекта; например, все плитки изображения, представляющие карту базового уровня, будут представлены на одном уровне, множество полигонов, представляющих состояния в США, может находиться на отдельном отдельном уровне.

В частности, глядя на L.GeoJSON.addGeoJSON(geojson), он пишет, что каждый созданный новый многоугольник помещается в собственный слой (а затем, возможно, сливается со слоем, на который вы вызываете метод?). Мой вариант использования заключается в том, что мне нужно добавить много объектов geoJSON по одному за раз, и я хочу, чтобы я не создавал много ненужных слоев (или, если да, если это действительно плохо).

спасибо.

ответ

25

В листе все, что может быть добавлено к карте, является слоем. Таким образом, полигоны, круги, маркеры, всплывающие окна, плитки - это все слои. Вы можете комбинировать слои в L.LayerGroup (или FeatureGroup), если вы, например, хотите обрабатывать множество полигонов как один слой. Так что, может быть, ваша интерпретация слоев лучше соответствует тому, что моделируется L.LayerGroup в «Листочке».

L.GeoJSON - LayerGroup (в частности FeatureGroup), которая инициализируется GeoJSON. Каждый новый многоугольник добавляется в группу LayerGroup с использованием addLayer, который является методом добавления чего-либо (слоя) к LayerGroup. Он не создает новый слой для каждого многоугольника (кроме L.Polygon, который уже считается слоем). Он создает только новые FeatureGroups (LayerGroups) для GeometryCollection и MultiPoints, которые (я полагаю), чтобы сохранить структуру из GeoJSON.

Если вы хотите добавить объекты geoJSON в одну группу LayerGroup по одному, вы можете просто позвонить L.GeoJSON.geometryToLayer, чтобы преобразовать объект GeoJSON, а затем добавить его в свою LayerGroup, используя L.LayerGroup.addLayer.

+0

Это отличный ответ, спасибо. Чтобы быть понятным, 'L.GeoJSON' на самом деле представляет собой группу слоев (группу других слоев), в отличие от самого слоя? Нит придирчивый, но просто для полной ясности, если другие прочтут это. – oli

+0

@oli спасибо, и вы правы, L.GeoJSON - группа LayerGroup, но я думаю, что LayerGroup также можно считать слоем (в зависимости от определения). Во всяком случае, я уточнил ответ для ясности. –