如何通过单击标记隐藏标记并放大指定的地图位置?

时间:2019-05-13 13:11:10

标签: javascript leaflet zoom openstreetmap marker

我有一个项目要完成,还有一个月的时间要完成,我来晚了…… 我曾尝试做自己想做的事,但没有成功,我是Java语言的初学者…… 这是我想要继续我的项目所需要的。抱歉,我的英语...

我想要的是,当我单击一个国家/地区时,会出现标记(它起作用),但是当我单击一个标记时,我也希望该标记消失并放大到指定的位置(在河边精确)。 而且我还希望标记的弹出窗口在鼠标悬停时显示,但我没有成功。

我不知道javascript的所有功能。但是,如果我缩小,是否可以看到这些东西? (例如:我看到了河流,将其缩小到了国家/地区级别,并且出现了标记)

帮助会对我的项目有很大帮助,并希望我能及时完成。

感谢您的关注,

这是我的完整代码的链接,该链接在我最后一次更改之前有效: https://jsfiddle.net/Gio687351/cj9bvrg7/1/

这是我测试过的代码之一:

function toggleLayerVisibility(map, selectedLayer) {
    if (selectedLayerId && selectedLayerId !== selectedLayer._leaflet_id) {
        map.eachLayer(layer => {
            if (layer._leaflet_id === selectedLayerId) geojson.resetStyle(layer);
        });
    }
    selectedLayer.setStyle({
        opacity: 0,
        fillOpacity: 0.0
        

    });
      
    selectedLayerId = selectedLayer._leaflet_id; //save identifier of a selected layer
    
map.on('zoomend', function() {
    if (map.getZoom() < 8 && map.getZoom() > 6){
            map.removemarker;
    }
    else {
        map.on('zoomend', {
          marker.on('mouseover', function(e) {  
L.marker([52.7472, -8.5087]).bindPopup('Limerick, Shannon River').addTo(map);
L.marker([53.34565, -6.32105]).bindPopup('Dublin, River Liffey').addTo(map);
L.marker([47.88363, 7.22444]).bindPopup('Soultz-Haut-Rhin, Le Rimbach').addTo(map);        }
});  }  
        
    });

1 个答案:

答案 0 :(得分:0)

我找到了解决方案: enter image description here