谷歌地图API - 如何删除位置峰值



我正在尝试创建一个位置跟踪应用程序,其中移动应用程序每 10 秒发送一次当前的纬度和时间戳。 当移动设备移动时,它可以正常工作。

但是当移动设备静止一段时间~1分钟时,它开始发送不同位置的位置,从而导致位置峰值并降低位置精度和其他取决于它的因素, 有什么方法可以最小化或取消这些虚假位置,我也没有找到任何适用于移动端的解决方案。

附言我,正在使用安卓应用程序将信息发送到Firebase,然后在浏览器上从那里检索它

这是绘制路径的示例代码

/* 
history contains all the location traces in lat-long
*/
var linePath = [];
for (var i = 0; i < history.length; i++) {
var tempLatLng = new google.maps.LatLng(history[i]['lat'], history[i]['long']);
linePath.push(tempLatLng);
}
var line = new google.maps.Polyline({
path: linePath,
geodesic: true,
strokeColor: '#669DF6',
strokeOpacity: 1.0,
strokeWeight: 6
});
line.setMap(map)

设备静止时出现峰值

设备移动时的正确位置

您看到的效果几乎可以肯定只是设备GPS和位置服务不准确。 这是很常见的,尤其是在室内。

如果您不想记录这些不准确的读数,则必须自己检测它们,或者找到一个可以平滑一系列读数的库。 据我所知,谷歌地图没有提供的API可以为您做到这一点。

最新更新