首页 > 解决方案 > Leaflet js 在接收来自 GPS 设备的实时更新并在地图上移动时“跟随”一个标记。还可以停止跟踪标记

问题描述

当 GPS 设备以随机间隔发布其纬度和经度时,我有一张带有标记的传单地图。

问题是我必须手动拖动地图以跟随标记,因为它接收更新并在地图上移动。

几个小时后和大量的研究工作:

我使用一个捕捉到标记当前位置的按钮实现了一个半解决方案,但是我每次移动时都必须单击该按钮以使标记保持在视线范围内。

onclick="mymap.fitBounds(gotomarker1.getBounds());"

有没有办法我可以单击标记本身,然后将标记保持在地图的中心,因为它接收纬度和日志更新并四处移动?*理想情况下不是按钮,因为可能有很多标记,我不想要一个充满按钮的页面。

我已经尝试应用一个 on.click 函数来循环上面的 gotomarker1 代码,但是一旦它开始我就无法停止它,这是一个问题,因为我可能想要遵循或不遵循多个标记(澄清我只想要一次跟随一个标记)。

标签: javascriptleaflet

解决方案


我解决类似问题的方法是将被跟踪的标记存储到变量中

onclick="selectedMarker = myMarker"

每当您收到位置更新时,只需将地图聚焦在 selectedMarker 上

// update all locations
// ...
// focus selected marker
mymap.fitBounds(selectedMarker.getBounds());

推荐阅读