layer
在Leaflet Mapping Library中的确切含义是什么?
从概念上讲,对我来说,一个层将代表某种类型的特征或对象的单层;例如,表示基础水平图的所有图像区块将在单个图层上表示,表示美国状态的一组多边形可能位于各自的单独图层上。
具体来看L.GeoJSON.addGeoJSON(geojson)
,它会读出创建的每个新多边形都放在它自己的图层中(然后可能与你调用方法的图层合并?)。我的用例是我需要一次添加一个geoJSON对象,并希望确保我不会创建许多不必要的层(或者如果我是,如果这实际上是一件坏事)。
谢谢。
答案 0 :(得分:27)
在Leaflet中,可以添加到地图的任何内容都是图层。所以多边形,圆形,标记,弹出窗口,瓷砖都是层。如果您希望将一组多边形视为单个图层,则可以在L.LayerGroup
(或FeatureGroup)中组合图层。因此,您对图层的解释可能与Leaflet中L.LayerGroup
建模的内容更好地匹配。
L.GeoJSON
是一个从GeoJSON初始化的LayerGroup(特别是一个FeatureGroup)。使用addLayer将每个新多边形添加到L.GeoJSON
LayerGroup,这是向LayerGroup
添加任何内容(即图层)的方法。它不会为每个多边形创建新图层(除了已被视为图层的L.Polygon
之外)。它只为GeometryCollection和MultiPoints创建新的FeatureGroups(LayerGroups),(我假设)是为了保留GeoJSON的结构。
如果要一次将geoJSON对象添加到同一个LayerGroup,只需调用L.GeoJSON.geometryToLayer
转换GeoJSON对象,然后使用L.LayerGroup.addLayer
将其添加到LayerGroup。