首页 > 解决方案 > Leaflet.js - 如果所有弹出窗口都关闭,则将视图返回到起始位置

问题描述

我已经设法在工作地图和弹出窗口等上获得自定义图标标记。

但是,有一件事我无法解决。我目前有地图可以在打开时放大并以弹出窗口为中心。我想要的是地图在所有弹出窗口都关闭时返回到起始位置。

我确实找到了一个片段,它在关闭时将地图返回到起始位置,但是当您从一个弹出窗口单击到另一个弹出窗口时它会触发。我猜它按照我的要求做了,但它的可用性并不好。

我有一个标准设置,但添加了以下内容:

function markerOnClick(e) {
    var latLngs = [e.target.getLatLng()];
    var markerBounds = L.latLngBounds(latLngs);
    maphitchin.fitBounds(markerBounds);
}

标签: javascriptleaflet

解决方案


一种方法是计算地图中打开了多少弹出窗口,popupopen以及popupcloseL.Map...的事件。

var openPopupsCount = 0;
map.on('popupopen',  function(){ openPopupsCount++; });
map.on('popupclose', function(){ openPopupsCount--; });

popupclose...并在此类事件期间当该计数达到零时运行您想要的任何内容:

map.on('popupclose', function(){ 
    openPopupsCount--;
    if (openPopupsCount === 0) {
        map.fitBounds(initialBounds);
    }
});

推荐阅读