2014-03-14 120 views
1

我想映射路線應該匹配谷歌地圖街道網絡。谷歌路線API編碼折線

我知道如何從Google Maps Directions API序列化JSON結果。

我現在正在尋找編碼從各個路由步驟的多義線。

我在這裏找到了一些解碼器算法在stackoverflow,但首先測試谷歌自己的Interactive Polyline Encoder。我期望編碼的行匹配谷歌地圖,但它沒有。

該屏幕截圖顯示左側交互式折線編碼器中編碼段的結果以及右側Google Maps路由的結果。

enter image description here

編碼折線是 「uxhuBxrc?|?QPA @ B B @@乙@ d @ HDFD @乙@ H + @ JBB DBFJ」

難道算法在Google的交互式折線編碼器中是錯誤的?

是否有人測試Jeffrey Sambells algorithm並知道結果是否與Google交互式解碼器的結果相匹配?

乾杯, 丹尼斯

編輯:問題是與返回的折線段和未編碼算法。即使Google在路線API頁面上的示例回覆中提供的示例片段也非常適合底層道路幾何圖形。

enter image description here

+0

[從Google地圖方向V3獲取多段線]的可能重複(http://stackoverflow.com/questions/16180104/get-a-polyline-from-google-maps-directions-v3) – geocodezip

+0

不是重複的上述問題。我同時運行該算法來自己解碼折線,結果與交互式折線編碼器中顯示的相同。問題是爲什麼方向API的結果與谷歌地圖應用程序中顯示的折線結果不同? –

+0

,因爲正如我在答案(你聲稱你閱讀並且不是重複)中所說的那樣,overview_path編碼多段線被簡化了。 – geocodezip

回答

2

我有一個很難與這一點。我設法提出的唯一解決方案(效果很好)是使用Google的道路API。將不準確的多段線的座標發送到API,它將返回更正後的座標。

希望這會有所幫助。

+0

哇。聽起來很酷。我停止使用Google地圖來支持OpenStreetMap。但我會將此標記爲正確答案,因爲我相信這會起作用。 –

+0

我試過這個,它很好地工作,但是,對齊只適用於彼此相對接近的點(~300米)。方向api給我的距離超過幾公里,當它穿過直道時,這就是道路API斷裂並且出現壞點的時候。出於想法如何對付它。我需要路線API來返回更多積分,但是沒有這樣的設置「步驟之間的最大距離」 – Starwave

+1

@Starwave回到我使用Google地圖時,我寫了一個快速課程,爲您處理所有這些問題。看看[BVAccurateRoutePlot](https://github.com/vinczebalazs/BVAccurateRoutePlot) –

0

幾個月後,我終於得到了來自谷歌的答覆。不幸的是,他們無法理解問題和幫助。我再次考慮瞭解碼算法,現在我可以自己回答這個問題。

算法將座標調整爲1e5。

Google Polyline algorithm

因此,它將是不可能的編碼與它在最高縮放級別更高的精度底層道路網絡的渲染適合折線。

該圖顯示了座標四捨五入到1e5時的最大位置精度。

enter image description here

+0

嗨!您是否設法解決此問題或找到解決方法?或者你剛剛解決了看起來不好看的多段線? –

+0

從未找到解決方案,然後完全停止使用Google地圖,因爲我們希望成爲100%OpenSource/OpenData。 –