gpt4 book ai didi

leaflet - leaflet Marker和mapbox featureLayer的区别

转载 作者:行者123 更新时间:2023-12-02 15:55:26 30 4
gpt4 key购买 nike

我明白我可以使用通用Leaflet layer ,以及更高级的 map 框 featureLayer ,它提供了作为过滤器的有用功能。但是,我不明白两者之间的区别

marker = L.Marker (new L.LatLng(lat, lng), 
{
icon: L.mapbox.marker.icon(
{'marker-color': 'fc4353'
'marker-size': 'large'
}),
title: name,
});
map.addLayer(marker);

     var poijson =  {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [lng, lat]
},
"properties": {
"title": poi.name,
"marker-color": "#fc4353",
"marker-size": "large"
}
};
map.featureLayer.setGeoJSON(geojson);

是一样的吗?

[更新]

此外,如果我有很多标记,是否应该为每个标记添加一个新图层?对于性能来说似乎不是一件好事。例如,如果我这样做:

 var pois; //loaded with pois info
var geojson=[]; //will contain geojson data
for (p=0; p< pois.length; p++)
{
var poi = pois[p];
var poijson =
{
"type": "Feature",
"geometry":
{
"type": "Point",
"coordinates": [poi.lng, poi.lat]
}
};
geojson.push(poijson);
}
map.featureLayer.setGeoJSON(geojson);

它会为每个 poi 创建许多层吗? ,还是只有一层包含所有标记?

谢谢

最佳答案

当您通过 map.addLayer(marker); 将标记添加到 Leaflet map 时,该标记将添加到“leaflet-maker-pane”。标记是纯图像/图标。

您可以使用geoJSON图层来绘制GIS要素:点、线、多边形等。参见这里:http://leafletjs.com/examples/geojson.html

Mapbox 的 featureLayers只是 Leaflet geoJSONLayer 的扩展

要添加多个标记,请多次调用addMarker。 Leaflet 将为每个标记创建一个新图层。每个标记都将作为图像元素添加到 leaflet-marker-pane div 中: http://bl.ocks.org/d3noob/9150014

更新回复:

如果您添加具有多个要素的 GeoJSON 图层,Leaflet 将为每个要素创建单独的图层。添加 GeoJSON 图层后,您可以通过调用 map._layers 检查 map 的图层。

marker.addTo(map)map.addLayer(marker) 正在做同样的事情。这是来自 the sourceaddTo 函数

addTo: function (map) {
map.addLayer(this);
return this;
},

关于leaflet - leaflet Marker和mapbox featureLayer的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29881786/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com