传单setMaxBounds不会让缩小以查看整个世界

时间:2013-05-15 06:27:12

标签: map leaflet cloudmade

我正在使用传单js来显示使用cloudmade磁贴的世界地图。当我setMaxBounds到地图时,除了北方之外,界限很有效。然而,这不是我最关心的问题。我担心的是,当我使用maxBounds时,我无法缩小以查看任何屏幕尺寸的整个世界。

我使用的界限从加拿大的东北角到澳大利亚的西南一直到达。我可以平移到达边界但不能缩小以查看整个地图。我将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]]);

任何帮助都是适当的。 阿尼尔

1 个答案:

答案 0 :(得分:7)

如果我理解正确,您的问题是您希望能够在视图中看到整个世界,但您希望能够限制用户看到包裹的图块。

首先,Leaflet正在做你正在告诉它的事情。看看我用你的代码创建的这个JSFiddle。 http://jsfiddle.net/zF6bf/我可以缩小以查看整个世界,但前提是我将结果窗格调整为足以显示整个世界,而不会违反您的maxBounds规则。这对我来说似乎是正确的行为。

其次,如果您真的不想让世界换行,您还可以在创建图层时将noWrap选项设置为true

var osmLayer = new L.TileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { noWrap: true}).addTo(map);

这将阻止该图层环绕地图。如果这个包装是你首先创建边界的东西,那么删除包装将消除你设置maxBounds的需要。然后地图就可以自由平移和缩放。