2011-10-18 55 views
5

我是新來的android和我正在做一些項目規劃。在android中找到最短路徑/距離的算法?

要完成規劃,我必須知道我將在我的項目中使用哪些算法或技術。這個想法很簡單。我只想確定我目前的位置和幾個超市位置之間的最短路徑/距離。

我可以申請任何算法或Android API嗎?

回答

11

我不知道Android API,但如果有什麼東西你應該能夠在谷歌上找到它。例如,嘗試查看「google map api」,並且如果可以輕鬆獲取api的方向和距離。

Google direction API

甚至更​​好查找爲例:google distance matrix api它可以讓你任意給定的一組點的距離。(例如矩陣,在每行:你的位置,一個超市)

例如:如果我20通道德拉保姆graine在巴黎,我 想多遠檢查是monoprix(超市5街 德弗裏卡芬雅克)我可以要求這樣的事情: http://maps.googleapis.com/maps/api/distancematrix/json?origins=20%20passage%20de%20la%20bonne%20graine&destinations=45%20Rue%20Godefroy%20Cavaignac,%2075011%20Paris,%20France&mode=walking&language=fr-FR&sensor=false

在算法的期限可以如下處理:

創建一個圖表:

  • 每條道路是一個邊緣
  • 每個suppermarket是節點
  • 你的位置是節點

然後申請Dijktra's algorithm找到你的位置和各大賣場之間的最短路徑

這裏是一個很好的例子(來自維基百科)上Dijktra算法如何工作的:

enter image description here

希望它有助於

+0

使用Disktra的算法,最短路徑是指當前位置與每個超市之間的距離,或者指當前位置 - >超市A - >超市B - >超市C? – red23jordan

+1

@ red23jordan它只是2點之間:當前位置和超市A,當前位置和超市B ...等等。 (當前位置和每個超市)。但老實說,谷歌API似乎很完整,所以你可能不需要這個算法。 –

+0

thx非常多,如果google API足夠好,那麼可能不需要使用Dijktra的算法。 – red23jordan