我试图制作它,所以我的地图图标缩放尺寸,而不是静态38x38。如果有任何方法可以用CSS做到这一点,我也可以。我认为这也包括能够遍历所有标记,但我无法找到方法。
提前致谢。
答案 0 :(得分:0)
标记应该在DOM中都可用,它们有自己的“窗格”,类名为leaflet-pane leaflet-marker-pane
。他们自己的标记至少有leaflet-marker-icon
类。
您可以使用“标准”DOM查询来访问它们(例如querySelectorAll)。您可能想要检查是否有适用于您的用例的插件,传单具有丰富的插件生态系统。
答案 1 :(得分:0)
这是XY problem。你想用缩放级别改变标记的大小,你想“我知道!我会遍历标记!”,你不知道怎么做,所以你要求一个解决方案第二个问题。
请问,如何根据缩放级别更改标记图标的大小?
有几种方法。
一种是将事件处理程序附加到地图的zoomend
事件,并在该事件处理程序内迭代每个标记。您可以致电map.eachLayer(...)
,检查图层是否为标记(lyr instanceof L.Marker
),并重新分配其L.Icon
。
另一种方法是将事件处理程序附加到地图每个标记的zoomend事件中,有点:
for (i in data) {
...
var marker = L.marker(data[i].coords, ...);
map.on('zoomend', function(){
if (map.getZoom() > 15) {
marker.setIcon(...);
} else {
marker.setIcon(...);
}
});
}
另一种方法是使用Leaflet.ZoomCSS
,它将根据缩放级别更改地图的CSS类,允许您在那里处理样式。