javascript - Leaflet.js - 如果所有弹出窗口都关闭,则将视图返回到起始位置
问题描述
我已经设法在工作地图和弹出窗口等上获得自定义图标标记。
但是,有一件事我无法解决。我目前有地图可以在打开时放大并以弹出窗口为中心。我想要的是地图在所有弹出窗口都关闭时返回到起始位置。
我确实找到了一个片段,它在关闭时将地图返回到起始位置,但是当您从一个弹出窗口单击到另一个弹出窗口时它会触发。我猜它按照我的要求做了,但它的可用性并不好。
我有一个标准设置,但添加了以下内容:
function markerOnClick(e) {
var latLngs = [e.target.getLatLng()];
var markerBounds = L.latLngBounds(latLngs);
maphitchin.fitBounds(markerBounds);
}
解决方案
一种方法是计算地图中打开了多少弹出窗口,popupopen
以及popupclose
L.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);
}
});
推荐阅读
- sql - 如何正确返回特定/每列的最大值
- jenkins - 如何访问 Jenkins 模板中的参数?
- swift - 为什么我的代码不显示谷歌广告并且无法与另一个 viewController 通信?
- javascript - 托管站点缺少本地 html 文件中的元素
- java - android - 无法从资产文件夹复制数据库:API < 24
- php - 恢复会话密钥,然后将其删除。(php5.6)(解决方法)
- apache-flink - Apache Flink DataStream - 翻滚窗口中的元素计数
- javascript - 谷歌云平台中的多图表选择
- django - 如何在 Django 中加载与选定的多个选项相关的值
- racket - 初学者问题:不能在定义之前引用标识符