我正在使用传单 js 来显示使用 cloudmade 瓷砖的世界地图。当我setMaxBounds
在 map 上,除了北边之外,边界都很好。然而,这不是我最关心的问题。我担心的是,当我使用 maxBounds
我无法缩小以查看任何屏幕尺寸的整个世界。
我使用的边界从加拿大的东北角一直延伸到澳大利亚的西南角。我可以平移以达到边界,但无法缩小以查看整个 map 。我设置minZoom
为 0。没有 maxBound
,它被缩小得太远,你可以在大屏幕上看到世界重复三次。
map = L.map('canvas',{zoomControl: false}).setView([38.82259, -2.8125], 0);
map.setMaxBounds([[84.67351256610522, -174.0234375], [-58.995311187950925, 223.2421875]]);
任何帮助都会得到帮助。
阿尼尔
最佳答案
如果我理解正确,您的问题是您希望能够在您的视野中看到整个世界,但您希望能够限制用户看到包裹的瓷砖。
首先,Leaflet 正在做你告诉它做的事情。看看我用你的代码创建的这个 JSFiddle。 http://jsfiddle.net/zF6bf/我可以缩小以查看整个世界,但前提是我将结果 Pane 调整为足够大以显示整个世界,而不会违反您的 maxBounds 规则。这对我来说似乎是正确的行为。
二、如果实在不想让世界换行,也可以设置noWrap
true
的选项创建图层时。
var osmLayer = new L.TileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { noWrap: true}).addTo(map);
这将防止该图层环绕 map 。如果这个包装是让你首先创建边界的原因,那么删除包装可能会消除你设置
maxBounds
的需要。 .然后 map 将能够自由平移和缩放。
关于map - Leafletjs setMaxBounds 不会让缩小看到整个世界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16558231/