Maps 是否有办法根据缩放级别更改图标图像?(传单.js)

Maps 是否有办法根据缩放级别更改图标图像?(传单.js),maps,marker,leaflet,Maps,Marker,Leaflet,我正在为web应用程序制作一个区域绘制工具,我正在使用标记作为锚,用户可以使用它来更改多边形的形状 这就是我目前所拥有的 回购协议正在生效 $(文档).ready(函数(){ var图,CloudMake,圣安东尼奥,polygonPoints 地图=新的L.map(“地图”); cloudmake=new L.TileLayer('http://{s}.tile.cloudmake.com/d434cd6077140e3b92ccfae2b363070/997/256/{z}/{x}/{y}.

我正在为web应用程序制作一个区域绘制工具,我正在使用标记作为锚,用户可以使用它来更改多边形的形状

这就是我目前所拥有的

回购协议正在生效

$(文档).ready(函数(){
var图,CloudMake,圣安东尼奥,polygonPoints
地图=新的L.map(“地图”);
cloudmake=new L.TileLayer('http://{s}.tile.cloudmake.com/d434cd6077140e3b92ccfae2b363070/997/256/{z}/{x}/{y}.png'{
属性:“地图数据©;贡献者,图像©”,
最大缩放:18
});
圣安东尼奥=新L.LatLng(29.4238889,-98.4933333);//地理点(经度和纬度)
setView(sanAntonio,13),addLayer(CloudMake);
多边形点=[];
var多边形=新的L多边形(多边形点);
添加图层(多边形);
在('click',函数(e){
var marker=新的L.marker(e.latlng,{draggable:true});
polygonPoints.push(如板条);
var markerId=polygonPoints.length-1
添加图层(标记);
多边形设置点(多边形点);
marker.on('drag',function(){
var locationWhileDrag=marker.getLatLng();
$('first#u marker').val(locationWhileDrag);
多点拼接(markerId,1,位置whiledrag);
多边形设置点(多边形点);
});      
});
});
我只希望当用户放大到街道级别时,标记的大小是正常的。缩小时,正常大小的标记会完全淹没多边形。我查阅了文件,但找不到关于这个的任何信息


我主要是寻求建议/头脑风暴。我在想也许有一种方法可以检测出你当前处于哪种缩放状态?如果是这样,我可以使用If语句来更改图标。

好的,所以我找到了一些方法,并提出了以下方法:

//这将设置一个图标,以便在重画时替换。
var MyIcon=L.Icon.extend({
iconUrl:'marker.png',
iconSize:新的L点(10,16),
阴影大小:新的L点(10,16),
iconAnchor:新的L点(10,16)
});
var icon=new MyIcon();
//当视图重置时,如果缩放级别小于13,则使用较小的图标
map.on('viewset',function(){
if(map.getZoom()<13){
marker.setIcon(图标);
}
});
setIcon()方法不在文档中,我在谷歌论坛中找到了它,它起了作用。我制作了一个较小的图标,当缩放级别小于13时,我基本上只是替换了原来的图标。我现在要为不同的缩放级别实现不同的标记,以使标记“更远”的效果

这是修改后的代码

$(文档).ready(函数(){
var图,CloudMake,圣安东尼奥,polygonPoints
地图=新的L.map(“地图”);
cloudmake=new L.TileLayer('http://{s}.tile.cloudmake.com/d434cd6077140e3b92ccfae2b363070/997/256/{z}/{x}/{y}.png'{
属性:“地图数据©;贡献者,图像©”,
最大缩放:18
});
圣安东尼奥=新L.LatLng(29.4238889,-98.4933333);//地理点(经度和纬度)
setView(sanAntonio,13),addLayer(CloudMake);
多边形点=[];
var多边形=新的L多边形(多边形点);
添加图层(多边形);
在('click',函数(e){
//这将设置重新绘制时要替换的图标。
var MyIcon=L.Icon.extend({
iconUrl:'marker.png',
iconSize:新的L点(10,16),
阴影大小:新的L点(10,16),
iconAnchor:新的L点(10,16)
});
var icon=new MyIcon();
//这将设置重新绘制时要替换的图标。
var marker=新的L.marker(e.latlng,{draggable:true});
polygonPoints.push(如板条);
var markerId=polygonPoints.length-1
添加图层(标记);
多边形设置点(多边形点);
marker.on('drag',function(){
var locationWhileDrag=marker.getLatLng();
$('first#u marker').val(locationWhileDrag);
多点拼接(markerId,1,位置whiledrag);
多边形设置点(多边形点);
});      
//当视图重置时,如果缩放级别小于13,则使用小图标
map.on('viewset',function(){
if(map.getZoom()<13){
marker.setIcon(图标);
}
});
});
});
以下是演示:

您还可以在zoom上更改泛型类,并使用CSS进行更改

map.on('zoomend', function(event) {
    document.body.className = "zoom"+map.getZoom();
});
那么您的CSS将是:

.myIcon{background:red;}
.zoom4 .myIcon{background:pint;}
我用它来隐藏我的标记的名称,直到你放大到10级

.myIcon{background:red;}
.zoom4 .myIcon{background:pint;}