2011-10-18 58 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