javascript - 如何在 180° 子午线附近显示传单标记?

标签 javascript leaflet

我正在使用 Leaflet 1.0.0-rc.2+e02b5c9。我知道默认是渲染所有标记,多段线......从经度 -180 到 180 作为屏幕截图:

Default rendering image

但是,我想将 map 显示为我此时要显示的经度(这是日本和美国之间的中海):

I want to show at this point

但是您看到所有标记都没有在右侧呈现。即使,如果我设置

worldCopyJump: true

当我向右拖动时,所有标记都出现在右侧,但它们在左侧消失,反之亦然。实际上,我希望它们同时出现。

有什么解决办法吗??

最佳答案

只需确保标记的经度在 0..360 范围内,而不是在 -180..180 范围内。 See a working example .

即而不是

L.marker([0,170]).addTo(map);
L.marker([0,-180]).addTo(map);
L.marker([0,-170]).addTo(map);

做类似的事情

L.marker([0,170]).addTo(map);
L.marker([0,180]).addTo(map);
L.marker([0,190]).addTo(map);

换句话说,如果经度小于零,则加上 360。如果您打算一次过滤所有经度,您可能想要使用 L.Util.wrapNum(lng, [0,360], true)

关于javascript - 如何在 180° 子午线附近显示传单标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38820724/

相关文章:

javascript - 为什么 document.getElementsByClassName 除了第一次之外没有准确获取所有元素?

javascript - JQuery动画中div元素向上跳几个像素的问题

javascript - Leaflet 标记弹出窗口中的缓存破坏

javascript - 传单 map 单击更改颜色,然后再次单击时删除

r - 根据用户输入选择fillColor

javascript - AngularJS:使用 ng-repeat 制作复选框

javascript - ChartJS饼图如何默认只显示2个图例数据

javascript - Leaflet:单击时将标记置于前面

css - 使其他标记位于自定义 divIcon 弹出窗口下方,而不是位于顶部

javascript - 插值时 LessCss 重复域?