2008-12-23 51 views
0

我有一個點列表,以及外部提供程序通過這些點生成的路線。ArcGIS Server - 比較路線

我想用自己的道路網絡使用這些相同的點生成路線。

然後我想能夠檢測兩條路線之間是否有顯着差異。

一個建議是,對於2條路線,我們找出他們穿過哪些路段,並比較路段列表?

這是一個有效的方法嗎? 我們如何獲取路線列表中的路段?

我使用的ArcGis服務器9.3與Java 5和Oracle 10g。我通過java api使用ST函數和NetworkAnalyst。

謝謝。

回答

1

使用你的積分和道路網絡計算路線。然後將結果路線緩衝到一個多邊形中(緩衝半徑應該是您的「容差」)。然後使用您的多邊形剪輯外部路線。如果生成的折線不是空的,那麼在你的容差之外有一個偏差。

該方法不計算任何「重大」偏差,如回溯,U-Turns或採取附近的平行道路。

或者,您可以比較產生的「方向」並檢查那裏的偏差 - 特別是使用街道名稱。這樣可以避免檢查每個路段。如果您對道路名稱有任何偏差,請檢查每個路段的各個路段。

0

我剛剛在我的應用程序中實現了類似的東西。我有一個從GPS設備經緯度座標列表,並需要創建一個基於這些數據的路線。

我開始時將每個GPS位置與我街道網絡中的一個節點進行匹配。然後,我刪除了「連續重複」節點,以過濾出位於同一節點的連續位置。然後,我開始通過我的街道網絡「行走」,從第一個節點開始。我檢查了第一個節點和第二個節點並檢查了一個普通的街道段。如果我找到一個,太好了。如果不是,我創建了2個節點之間的最短路徑,然後使用這些道路。我繼續這樣做直到我檢查了所有節點。在這個過程的最後,我也列出了車輛行駛的路段以及他們的行駛順序。

不幸的是,我使用了不同的地圖,不同的編程語言和不同的數據庫。因此,共享代碼對您根本沒有任何幫助。希望我上面描述的過程能夠幫助你完成任務。