4

我正在使用传单 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]]);

任何帮助都会得到帮助。阿尼尔

4

1 回答 1

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. 然后地图将能够自由平移和缩放。

于 2013-05-15T14:04:54.460 回答