Javascript 缩放后删除自定义geojson标记(加载传单)

Javascript 缩放后删除自定义geojson标记(加载传单),javascript,google-maps,leaflet,geojson,Javascript,Google Maps,Leaflet,Geojson,我正在使用下面的代码向地图添加一些点,它们看起来很棒。我还添加了一些json多边形,没有问题 当达到某个缩放级别时,我希望点和多边形关闭。使用map.removeLayer(多边形名称)完美地关闭多边形,然后缩小。我使用map.addLayer(多边形名称),它们会回来(使用“zoomend”和if-else语句) 点要素不会像多边形那样对removeLayer函数作出反应。我还尝试了harvestPoints.setOpacity(0),它也不起作用。我应该使用什么代码来像多边形功能一样“打开

我正在使用下面的代码向地图添加一些点,它们看起来很棒。我还添加了一些json多边形,没有问题

当达到某个缩放级别时,我希望点和多边形关闭。使用map.removeLayer(多边形名称)完美地关闭多边形,然后缩小。我使用map.addLayer(多边形名称),它们会回来(使用“zoomend”和if-else语句)

点要素不会像多边形那样对removeLayer函数作出反应。我还尝试了harvestPoints.setOpacity(0),它也不起作用。我应该使用什么代码来像多边形功能一样“打开”和“关闭”这些geojson标记

function onEachPoint(feature, layer) {            
    layer.bindPopup(feature.properties.MGNT_AREA.toString());
    layer.on('click', function (e) { layer.openPopup(); });
    layer.bindLabel(feature.properties.MGNT_AREA.toString(), {
        noHide: true,
        className: "my-label",
        offset: [-2, -25]
    }).addTo(map);
};

var areaIcon = {
    icon: L.icon({ 
        iconUrl: 'labels/MonitoringIcon.png',
        iconAnchor: [20, 24]
    })
};

var harvestPoints = new L.GeoJSON.AJAX('labels/dfo_areas_point.json', {
    onEachFeature: onEachPoint,
    pointToLayer: function (feature, latlng) {
        return L.marker(latlng, areaIcon);
    }
}); 

不确定您的问题的根本原因是什么,因为我们不知道您在尝试从地图中删除点(标记)时如何准确地引用它们

通常情况下,多边形和点(标记)之间应该没有区别,以实现您所描述的效果(在特定缩放级别从地图中删除图层,然后在其他缩放级别将其添加回)

请注意,尽管您将其应用于geoJson图层组的
harvestPoints

可能发生的情况是将各个点(标记)添加到地图(onEachPoint函数中的最后一条指令),但尝试从地图中删除图层组
HarvedPoints
。因为它似乎从未被添加到地图中,所以什么也没有发生

如果要同时打开/关闭
harvestPoints
图层组中的所有点,只需将该图层组添加到地图或从地图中删除,而不是添加单个标记:

var harvestPoints=L.geoJson.ajax('labels/dfo\u areas\u point.json'{
onEachFeature:onEachPoint,
pointToLayer:功能(特性、latlng){
//确保'areaIcon'是一个选项对象
返回L.标记(板条、区域图标);
}
}).addTo(映射);//将整个geoJson层添加到地图。
map.on(“zoomend”,函数(){
var newMapZoom=map.getZoom();
如果(newMapZoom>=13){
map.addLayer(收获点);
}否则{
//删除包含点的整个geoJson层。
地图移除层(收获点);
}
});
旁注:默认情况下,弹出窗口在单击时打开,您不需要为此添加单击侦听器吗


演示:

只需将.addTo(map)添加到geojson层的末尾即可。非常感谢你。我希望这能帮助别人。