有没有办法调整地图的边界,以便俄罗斯的右边缘不会出现在左边?您可以在图像中看到我有一个覆盖俄罗斯的MultiPolygon区域,但地图和叠加层是分开的。如果可能的话,我希望这个国家的那一小块能够在右边!
俄罗斯边缘地图的错误一面:
答案 0 :(得分:1)
我能想到的解决方法是使用maxBounds
属性,您可以将默认边界稍微向右移动,同时使用minZoom: 1
。如果在外面缩小远/平移,这不会阻止用户在短时间内多次看到这个世界,正如它所说的那样:
...当他试图在视图外平移时将用户弹回
var map = L.map('map',{
maxBounds:[ [-90, -160], [90, 200] ],
minZoom: 1
}).setView([66.058, 189.459], 4);
答案 1 :(得分:0)
欢迎来到SO!
如果您的多边形是蓝色区域,那么我恐怕您必须重构您的数据才能达到您想要的效果(将左侧区域移到右侧,就像它被缝合回俄罗斯主要土地一样)。
您的数据(可能是GeoJSON?)包含一个单独的多边形,其经度在[-180,-120]范围内。 Leaflet别无选择,只能将其显示在地图的左侧,与noWrap
选项无关。
因此,您需要深入挖掘数据,并将360度经度添加到此多边形的每个节点,以便它们现在位于[180,300]范围内。
或以某种方式介绍"检测"在你的代码中,对于边界和/或中心很远的形状自动执行经度加法(让我们说在[-180,-120]经度范围内)。 Leaflet不会自动开箱即用。
注意:noWrap
选项适用于您的图块层,不能在其外部加载图块" central"世界(为了避免显示世界的多个副本)。但是在你的情况下,你想要在世界的相邻副本上显示俄罗斯/西伯利亚的一部分",所以你可能想要删除该选项,或者你将拥有您的多边形不会位于任何底图上。