当我设置选项continuousWorld=true
标记未显示在克隆的图块上时,仅在主要世界上显示。它是设计行为吗?可能是其他选项,我没有注意到,显示这些标记存在?
UPD:我的目标是在每个世界重复标记,如下图所示。
我调查过continuousWorld
和worldcopyjump
不适合这种情况。这样可以使传单在图片上工作吗?
答案 0 :(得分:5)
不幸的是,我所知道的没有自动和开箱即用的解决方案可以复制Leaflet中相邻世界副本上的所有内容(标记,载体等)。
Tomislav提出的最简单的技巧是手动生成内容的额外副本,偏移360度经度的倍数。我认为continuousWorld
tileLayer选项必须留在false
。结合worldCopyJump
地图选项,您可以实现所需的效果,但必须多次克隆您的内容。
话虽这么说,这可能只是你目标的一个可能的解决方案,你还没有真正解释过?
如果您想避免用户看到空白的世界,也许您可能根本无法显示世界的相邻副本。您可以通过多种方式实现这一目标,并且可以将它们结合使用:
noWrap
tileLayer option不显示相邻副本。maxBounds
map option将平移限制为1个世界边界(或任何其他指定边界)。minZoom
map option以防止过度缩小,以便视图端口中没有空间可供多个世界副本使用。演示:http://jsfiddle.net/ve2huzxw/20/
注意:如果将minZoom
设置得足够高,则使用worldCopyJump
map option会产生与Google地图非常相似的效果,即您认为自己正在全世界范围内滚动并再次找到您的内容。只是你永远不会有机会在同一个屏幕上两次看到完全相同的位置,并且地图会自动回滚360度以保留在内容上。这在-180 / +180度经度边界仍然很明显,因为左边或右边有内容,但从不同时出现。
答案 1 :(得分:2)
当使用连续世界并希望标记出现在其他"副本"你应该将该标记的坐标设置为该世界"的坐标。
只有"中心"世界的坐标范围为-180到180和-90到90
因此,对于世界来说,正确的经度将从180开始,因为世界-180。 与其他方面相似。
基本上你可以为每个"复制"添加一个经度增加/减少360度的新标记。