在 Leaflet.js 地图周围包裹 GeoJSON 对象

Posted

技术标签:

【中文标题】在 Leaflet.js 地图周围包裹 GeoJSON 对象【英文标题】:Wrap GeoJSON objects around Leaflet.js map 【发布时间】:2018-02-26 18:32:30 【问题描述】:

我有一个由 MarkerGeoJSON 对象组成的 Leaflet.js 映射。有没有一种简单的方法来包装这些,以便它们每隔 360 度周期性地出现?基本上,我希望整个地图成为周期性的。

这是我拥有的对象类型的插图(不包括背景TileLayer,我没有):

我怎样才能定期重复这些数据,这样大圆圈就不会被破坏,而是在地图向左或向右滚动时每 360 度都完好无损?

【问题讨论】:

【参考方案1】:

一种方法是利用Leaflet.VectorGrid。正如您在Leaflet.VectorGrid GeoJSON example 中看到的,数据将换行。 (在架构上,这是因为 VectorGrid 在环绕时加载了具有相同坐标的矢量图块)。请注意,可能会出现一些伪影。

另一种方法是简单地复制您的数据(将 360 添加到每个经度)。每侧执行几次,并使用WorldCopyJump 选项来防止用户滚动太远。

【讨论】:

以上是关于在 Leaflet.js 地图周围包裹 GeoJSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

Leaflet.js 地图不占用全宽 [React.js]

Leaflet.js 将地图集中在一组标记上

如何在 iframe 中使用 Leaflet.js 中的地图

Leaflet.js:检测地图何时完成缩放

前端学习-使用JS库Leaflet.js生成世界地图并获取标注地址经纬度。

在 Knockout 中调整 Leaflet JS 地图的大小