leaflet - 当 nowrap 启用时设置 map 边界/边缘

标签 leaflet bounds

有没有办法调整 map 的边界,使俄罗斯的右边缘不会出现在左边?您可以在图像中看到我有一个覆盖俄罗斯的多多边形区域,但 map 和覆盖层是分开的。如果可能的话,我希望这个国家的一小部分位于右侧!

俄罗斯边缘在 map 的错误一侧:

enter image description here

最佳答案

欢迎来到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/

相关文章:

multidimensional-array - 复制到另一个可分配数组后,Fortran 不会保留数组的下界/上界

javascript - "map.getBounds()"结果在 leaflet.js 中聚焦输入表单后发生变化

html - Flexbox 布局中的传单 map

javascript - 如何在添加新标记和图层之前清除所有标记和图层的传单 map ?

Swift SpriteKit 获取可见帧大小

Rust 特征与类型限制

ios - 状态栏阻塞 UI

javascript - 来自 REST 服务的传单 map 添加自定义标记

javascript - 如何保存传单 map ?

java - 线程中的异常 "main"java.lang.StringIndexOutOfBoundsException : String index out of range: 1