2010-07-05 118 views
0

我正在C#中編寫一個Windows應用程序,該應用程序應該在城市中的兩個點之間找到最近的路徑(道路)。我需要訪問道路數據,例如道路的起點和終點的座標,可能是一個完整的數據庫。我們如何才能知道某條經緯線上的點是否位於道路圖上?

我不知道如何才能訪問這樣的信息或文件。所以爲了簡單,我假設了一些頂點和邊(頂點之間的連接)。現在我有一個點(特定位置的座標)。我想看看這一點所在的邊緣。我通過查看有關頂點起點和終點的信息以及它們之間的連接(邊緣=道路),我無法找到道路上某個點的位置。我需要知道是否有任何方法可以確定具有特定座標的點是否位於特定道路上。我也想知道通常地圖數據包含的是什麼樣的信息 - 它只是道路兩端的座標,還是更多關於道路的信息?

回答

0

您需要計算位置和道路之間的距離,然後查看距離並確定距離是否足夠近。對於從點a到線b的距離,需要計算b上的點c,其中c與a垂直於b。要實際計算這些距離,你需要做相當多的數學計算(考慮地球的四捨五入),所以我希望你在那裏有一些技巧。關於如何計算distances between座標和between a line and a point的說明。

我寫了一個GPS應用程序,其中當前位置在點上的距離必須是25米。這個額外的空間非常重要,因爲GPS在設計上是10米不準確的,所以如果你從GPS得到你的數據,並且你必須靠近你的目標1米,那麼即使你站在它旁邊,你也不可能達到它。

+0

感謝您的指導,但重點是在我的文件中,我只有座標的頂點,我只知道頂點之間的連接,如頂點A連接到頂點B.我沒有關於道路,即時通訊不知道如果我應該有所有的道路點(邊緣)的座標,但我仍然知道只有頂點座標ñ他們的連接是不夠的,任何線索? – user383240 2010-07-05 12:18:32

相關問題