Javascript 在传单.js中,有没有一种方法可以遍历所有当前存在的标记?
我试图让我的地图图标随着缩放而缩放,而不是静态的38x38。如果有任何方法可以用CSS做到这一点,我也会同意的。我认为这还包括能够遍历所有标记,但我找不到方法Javascript 在传单.js中,有没有一种方法可以遍历所有当前存在的标记?,javascript,leaflet,Javascript,Leaflet,我试图让我的地图图标随着缩放而缩放,而不是静态的38x38。如果有任何方法可以用CSS做到这一点,我也会同意的。我认为这还包括能够遍历所有标记,但我找不到方法 提前感谢。标记应该都在DOM中可用,它们有自己的带有类名的“窗格”传单窗格传单标记窗格。他们自己的标记至少有传单标记图标类 您可以使用“标准”DOM查询来访问它们(例如querySelectorAll)。您可能需要检查是否有适用于您的用例的插件,传单中有丰富的插件生态系统。这是一个示例。你想用缩放级别改变标记的大小,你想“我知道!我会遍历
提前感谢。标记应该都在DOM中可用,它们有自己的带有类名的“窗格”
传单窗格传单标记窗格
。他们自己的标记至少有传单标记图标
类
您可以使用“标准”DOM查询来访问它们(例如querySelectorAll)。您可能需要检查是否有适用于您的用例的插件,传单中有丰富的插件生态系统。这是一个示例。你想用缩放级别改变标记的大小,你想“我知道!我会遍历标记!”,但你不知道怎么做,所以你要求解决第二个问题
如何根据缩放级别更改标记图标的大小
有几种方法
一种是将事件处理程序附加到映射的zoomend
事件,并在该事件处理程序中迭代每个标记。您可以通过调用、检查层是否是标记(lyr instanceof L.marker
)并重新指定其L.Icon
)来实现这一点
另一种方法是根据标记将事件处理程序附加到映射的zoomend事件,类似于:
另一种方法是使用,它将根据地图的缩放级别更改地图的CSS类,允许您在那里处理样式。只需保留每个标记的引用?或者把它们放在图层组中?我仍在试图找出使用标记并尝试使用缩放缩放缩放其图标的用例是什么?另请参见我对使用传单.ZoomCSS感兴趣,但它显然会在更改缩放级别时保留旧类(请参见此处:),这似乎。。。我不知道,像一个巨大的混乱?无意冒犯,但我不认为DOM操纵应该是必要的(或用于)传单。传单可以让你做任何你能想到的事情。如果它不这样做,最好要求它这样做。我可能会快速地进行一些DOM操作,但我不允许它进入生产代码(YkMMV)。
for (i in data) {
...
var marker = L.marker(data[i].coords, ...);
map.on('zoomend', function(){
if (map.getZoom() > 15) {
marker.setIcon(...);
} else {
marker.setIcon(...);
}
});
}