Leaflet 地图框、传单:放大时增加标记大小

Leaflet 地图框、传单:放大时增加标记大小,leaflet,mapbox,Leaflet,Mapbox,当我们放大地图时,如何增加所有标记的大小? 我知道我们可以使用map.on('zoomend',function(){})和更改函数内的图标大小。但是我有很多标记,循环遍历所有标记,单独更改它们似乎不是一个好主意 在每个zoomend事件上循环通过一组标记没有什么错。为什么听起来不是个好主意 循环遍历标记的另一种方法是扩展L.Marker类来为您完成工作,例如: L.Marker.Autoresizable = L.Marker.extend({ onAdd: { ma

当我们放大地图时,如何增加所有标记的大小?
我知道我们可以使用
map.on('zoomend',function(){})和更改函数内的图标大小。但是我有很多标记,循环遍历所有标记,单独更改它们似乎不是一个好主意

在每个
zoomend
事件上循环通过一组标记没有什么错。为什么听起来不是个好主意

循环遍历标记的另一种方法是扩展
L.Marker
类来为您完成工作,例如:

L.Marker.Autoresizable = L.Marker.extend({

    onAdd: {
        map.on('zoomend', this._changeIcon, this);
    },

    onRemove: function(map) {
        map.off('zoomend', this._changeIcon, this);
    },

    _changeIcon: function(ev) {
        var zoom = this._map.getZoom();

        if (zoom <= 10) {
            this.setIcon(...);
        } elseif (zoom > 10 && zoom <= 15) {
            this.setIcon(...);
        } else {
            this.setIcon(...);
        }

    }

});

L.marker.autoresizable = function(latlng, options) {
    return new L.Marker.Autoresizable(latlng, options);
}
L.Marker.Autoresizable=L.Marker.extend({
onAdd:{
地图上('zoomend',this.\u changeIcon,this);
},
onRemove:函数(映射){
地图关闭('zoomend',this.\u changeIcon,this);
},
_更改图标:功能(ev){
var zoom=this.\u map.getZoom();

如果(zoom 10&&zoom LOL@IvanSanchez.Deepak,这不是Stackoverflow想看到的问题。需要更多的努力,比如,你是如何尝试自己解决的?你的研究结果是什么?你尝试了什么解决方案?为什么不起作用?你犯了什么错误?等等。花几分钟时间阅读以下内容:然后回来看看编辑你的问题。