我有一个未定义路由的谷歌 map 区域。这是我大学的校园。我想要另外两座建筑物和一些折线来定义道路,因为 map 上没有显示道路。然后我将应用 A* 算法来找到一条折线到另一条折线之间的最短路线。该 map 将可用于移动的 android 应用程序。在其基本状态下,应用程序更新用户的位置。例如,用户可以请求去工程学院。现在我怎么知道他在哪里,我的意思是路线的来源,最近的折线?这是做事的方式吗?谢谢你。

最佳答案

  • 使用 OpenStreetMap 数据;您可以作为贡献者加入 OSM,并在 map 上添加建筑物、道路和其他事物。 OpenStreetMap 是一种维基百科,但有 map ,而不是百科全书文章。
  • 下载并处理校园的 OpenStreetMap 数据:获取所有可用作路线的折线;对他们的点进行排序;识别多条折线共有的点——它们是节点;创建连接这些节点的弧的有向图。
  • 使用有向图实现 A* 算法。 A* 绝对是最好用的算法;快速、正确且有据可查。
  • 使用 GPS 设备(您的代码在其上运行)找出您的用户所在的位置。 GPS 以纬度/经度给出位置; OpenStreetMap 数据也是经纬度的;所以应该可以正常工作。

  • 这自然会涉及一些研究和努力。我保证它会做你想做的事,因为我自己做了这件事(商业上 - 我不会链接到我的产品,因为我为此受到了指关节的敲击;但我自然地声称,做一些商业上的事情会施加一定的纪律) .有很多开源软件可以帮助解决这些问题。特别是,A* 算法在维基百科上有很好的解释。

    10-08 13:40