Leafletjs显示一个包裹的地图

时间:2018-03-27 13:23:08

标签: leaflet openstreetmap

我想显示一个世界地图并将其环绕,以便每个区域仅在屏幕上显示一次。请参阅小提琴http://jsfiddle.net/8m13d6vs/

var osmUrl = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png',
    osm = L.tileLayer(osmUrl, {
            noWrap: false,
            attribution: "<a href='http://openstreetmap.org'>OpenStreetMap</a>"
          });

var map = L.map('map').setView([0, 0], 1).addLayer(osm);

在上面的小提琴中,换行,但世界地图是重复的。我想要一个单独的世界地图,并且在左/右鼠标拖动时,它应该环绕。它也应该响应该地区。有没有办法实现这个目标?希望我的问题陈述是可以理解的。

2 个答案:

答案 0 :(得分:0)

这听起来像是对#34; wrap &#34;的定义的误解:

在Leaflet的Tile Layer / Grid Layer选项noWrap的上下文中,它说:

  

该层是否缠绕在antimeridian周围。如果true,GridLayer只会以低缩放级别显示一次。

所以听起来简单noWrap: true应该达到你的目标。

更新了JSFiddle:http://jsfiddle.net/8m13d6vs/3/

(顺便说一句,你应该考虑将Leaflet版本升级到1+,当前最新版本为1.3.1)

答案 1 :(得分:0)

有一个传单地图选项&#34; worldCopyJump&#34;接受布尔值。

var map = L.map('map', {worldCopyJump: true}).setView([0, 0], 1).addLayer(osm);

默认值为false,但将此设置为true将在用户平移超出地图边界时复制地图的内容。 (Leaflet Documentation for worldCopyJump)