有没有办法调整 map 的边界,使俄罗斯的右边缘不会出现在左边?您可以在图像中看到我有一个覆盖俄罗斯的多多边形区域,但 map 和覆盖层是分开的。如果可能的话,我希望这个国家的一小部分位于右侧!
俄罗斯边缘在 map 的错误一侧:
最佳答案
欢迎来到SO!
如果您的多多边形是蓝色区域,那么恐怕您必须重构数据才能实现您想要的效果(将左侧区域移到右侧,就好像它被缝合回俄罗斯大陆一样)。
您的数据(可能是 GeoJSON?)包含一个单独的多边形,其经度在 [-180, -120] 范围内。 Leaflet别无选择,只能将其显示在 map 的左侧,独立于 noWrap
选项。
因此,您需要深入研究数据,并向该多边形的每个节点添加 360 度经度,以便它们现在位于 [180, 300] 范围内。
或者以某种方式在代码中引入“检测”,该检测将自动对边界和/或中心较远的形状执行经度添加(假设在 [-180, -120] 经度范围内)。 Leaflet 不会立即自动执行该操作。注意:noWrap
选项用于让您的图 block 层不加载“中心”世界之外的图 block (以避免显示世界的多个副本)。但就您而言,您想要在“世界的相邻副本”上显示俄罗斯/西伯利亚的一部分,因此您可能需要删除该选项,否则您的多边形将不会位于上方任何 basemap 。
关于leaflet - 当 nowrap 启用时设置 map 边界/边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38530637/