Javascript 使用传单检测用户何时达到maxBounds
我使用传单向用户展示交互式地图。 我们希望让他们浏览有限的区域,并通知他们必须订阅,以防他们想看到太远的东西(使用弹出窗口或等效窗口) 到目前为止,我已经看到传单支持一个选项。 这是一个很好的开始,可以防止用户看到更大的区域 现在,我希望能够检测到maxBounds“事件”,向用户显示一个弹出窗口 我一直在研究传单的源代码,但找不到一个明显的方法 到目前为止,我发现maxBounds选项被输入到setView方法中。 此方法本身使用\u limitCenter方法定义中心。 这将深入到最后使用边界的\u getBoundsOffset方法Javascript 使用传单检测用户何时达到maxBounds,javascript,leaflet,Javascript,Leaflet,我使用传单向用户展示交互式地图。 我们希望让他们浏览有限的区域,并通知他们必须订阅,以防他们想看到太远的东西(使用弹出窗口或等效窗口) 到目前为止,我已经看到传单支持一个选项。 这是一个很好的开始,可以防止用户看到更大的区域 现在,我希望能够检测到maxBounds“事件”,向用户显示一个弹出窗口 我一直在研究传单的源代码,但找不到一个明显的方法 到目前为止,我发现maxBounds选项被输入到setView方法中。 此方法本身使用\u limitCenter方法定义中心。 这将深入到最后使用边
_getBoundsOffset: function (pxBounds, maxBounds, zoom) {
var projectedMaxBounds = toBounds(
this.project(maxBounds.getNorthEast(), zoom),
this.project(maxBounds.getSouthWest(), zoom)
),
minOffset = projectedMaxBounds.min.subtract(pxBounds.min),
maxOffset = projectedMaxBounds.max.subtract(pxBounds.max),
dx = this._rebound(minOffset.x, -maxOffset.x),
dy = this._rebound(minOffset.y, -maxOffset.y);
return new Point(dx, dy);
},
到目前为止,我能找到的最接近的方法是挂接事件并手动检查中心是否超出我的界限。
然而,这似乎与传单已经在做的事情是多余的
是否有更好的方法利用传单来实现这一目标
谢谢请检查您定义的边界是否包含地图边界。只要贴图边界在定义的边界内,这将不起任何作用:
var myBounds = L.latLngBounds(...)
map.on('move moveend zoomend', function(){
if (!myBounds.contains(map.getBounds())) {
// Display popup or whatever
}
});
这似乎与传单已经在做的事情是多余的
别担心。这个用例的开销可以忽略不计。另外一个问题:这听起来像是一个有用的特性?我是唯一一个这么想的人吗?好吧,听起来不错。这就是我的想法。我想我干得太多了:)。谢谢