【问题标题】:Match GPS track polyline to existing polyline on Leaflet Map将 GPS 轨迹折线与传单地图上的现有折线匹配
【发布时间】:2020-11-30 15:50:53
【问题描述】:

我被一个问题难住了,我很好奇是否有人可以指导我正确的方向。

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

  1. 遵循预设轨迹的平滑折线
  2. GPS 跟踪器折线遵循相同的轨迹,但由于 GPS 信号不平滑。

我在截图的前半部分展示了当前的情况。

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

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

有什么建议吗?

非常感谢! Screenshot of my issue

【问题讨论】:

    标签: leaflet gps polyline


    【解决方案1】:

    这并不完全是您想要的,但这是一种如何在线上添加 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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-13
      • 2016-08-16
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 2021-03-16
      相关资源
      最近更新 更多