将GPS轨迹折线与传单地图上的现有折线匹配

问题描述

我对一个问题感到困惑,我很好奇是否有人可以引导我朝正确的方向前进。

我在传单地图上有两条折线。

  1. 遵循预设轨迹的平滑多段线
  2. 一条GPS跟踪器折线,它遵循相同的轨迹,但是由于GPS信号而变得不平滑。

我在屏幕快照的上半部分显示了当前情况。

我要弄清楚的是这个。如何:

a)将GPS追踪器与预设的折线匹配(如屏幕截图第二部分中的绘图)
b)当GPS跟踪器经过时,将变量传递给预设折线。

有什么建议吗?

非常感谢! Screenshot of my issue

解决方法

这并不是您想要的,但是这是一种可以在行上添加GPSMarker的方法:

smoothLine是正确的行L.polyline()


var GPSmarker = L.marker([0,0]).addTo(map)
var GPSmarkerOnLine = L.marker([0,0]).addTo(map)
map.on('click',function(e){
    GPSmarker.setLatLng(e.latlng);
  var x = smoothLine.closestLayerPoint(map.latLngToLayerPoint(e.latlng)) // convert latlng to point and get closest point on the line
  var ll = map.layerPointToLatLng(x); // convert back to latlng
  GPSmarkerOnLine.setLatLng(ll);
  if(x.distance < 5){ // Distance lower then 5px or ll.distanceTo(e.latlng) < 5 --> Lower then 5 Meters
    console.log('MATCHED')
    L.marker(ll).addTo(map);
  }
})

使用此代码,您将拥有一个GPS标记而不是一条GPS线

https://jsfiddle.net/falkedesign/tpogj6wb/

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...