0

運行我的API後,我得到如下圖所示的Geo點。藍色的點在正確的路線,但紅色的路線離開路線。我需要加入積分才能獲得最終路線。如何消除這些紅點?使用谷歌apis消除越野點

我有關於這些點的信息是緯度,經度,他們所在的道路(這些點已反向地理編碼)。

A,B,C是不同名稱的道路。要根據「道路」名稱過濾掉,我們最終可能會消除道路B上的藍色點。

任何Google API都可以提供幫助嗎? Google Directions API?

route

回答

3

我能想到的最好的事情(除了手動滾動自己distanceToPolyline算法)使用google.maps.geometry.poly.isLocationOnEdge(documentation),然後你可以問所有的點,如果他們的路線附近,並採取相應的行動。

Here's an example I made,嘗試添加標記,然後隱藏越野路線(建議使用公差變量播放)。

+0

謝謝!任何可以幫助我在Ruby中實現這些Java方法的鏈接? – Kavya

+0

@Kavya好吧,http://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line(假設路徑足夠小,aprox。coplanarity)是一個很好的開始,因爲你可以分解多重摺線(或任何路線)線,基本上'設置is_near爲假;取兩條路線的座標,找到距被評估點的距離,如果它小於你的公差設置is_near爲真,則返回;否則選擇下一個coord(與上一次選擇的第二個coord配對)並繼續迭代,如果它的末尾是「is_inside」是假的,那麼它離開道路,否則它在裏面。 – lccarrasco

+0

也檢查其他答案,因爲它可能在這種情況下更有用 – lccarrasco