map - Leafletjs setMaxBounds 不会让缩小看到整个世界

标签 map leaflet cloudmade

我正在使用传单 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/

相关文章:

java - 如何获取 Java 中 HashMap 的相同值多次出现的次数?

java - 如何使用 JPA 存储 Map<String, List<String>>

javascript - 在其他标记之上显示传单circleMarker?

ios - 路由 HTTP API 示例的问题

jquery - 传单 map 网址被禁止

python - 为什么 lambda 要求 2 个参数,尽管给出了 2 个参数?

map 内的 Mongodb $elemMatch 查询

leaflet - 如何为传单下载 map 图 block ?

传单:map.locate 动态设置 maxZoom