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想看到的问题。需要更多的努力,比如,你是如何尝试自己解决的?你的研究结果是什么?你尝试了什么解决方案?为什么不起作用?你犯了什么错误?等等。花几分钟时间阅读以下内容:然后回来看看编辑你的问题。