谷歌地图的自定义路线规划

4
我有一个Google地图区域,其中的路线未定义。它是我大学校园的地图。我想要添加两座建筑和一些折线来定义道路,因为道路在地图上没有显示。然后我将应用A*算法在两个折线之间找到最短路径。该地图将可供移动端的Android应用使用。在其基本状态下,该应用会更新用户位置。用户可以请求前往工程系。现在问题是,我将如何知道他在哪里,我的意思是路径的源头是什么,最近的折线?这是否是处理这些事情的方法?谢谢。
3个回答

2
  1. 使用OpenStreetMap数据;您可以加入OSM作为贡献者,并向地图中添加建筑物、道路和其他内容。OpenStreetMap类似于维基百科,但它是关于地图的,而不是百科全书文章。

  2. 下载并处理您校园的OpenStreetMap数据:获取所有可用作路线的折线;对它们的点进行排序;确定多个折线共有的点-它们是节点;创建连接这些节点的弧的有向图。

  3. 使用有向图实现A*算法。A*算法绝对是最好的算法;快速、正确且文档完善。

  4. 使用GPS设备(在其上运行您的代码)查找用户所在位置。GPS以纬度/经度给出位置;OpenStreetMap数据也是以纬度/经度给出的,因此应该能正常工作。

这自然会涉及一些研究和辛勤工作。我保证它会做到您想要的,因为我自己也做过(商业性质的-我不会链接到我的产品,因为我曾因此受到警告;但我自然声称商业化做某件事情会有一定的纪律性)。有许多开源软件可以帮助处理这些事情。特别是,A*算法在维基百科上解释得非常好。


0
如果您的问题是找到用户的位置,则可以使用GPS。 关于获取最短路径:A*比dijkestra更快,因此它是一个不错的选择,但获取结果可能需要从多边形线的节点而不是从一条多边形线到另一条多边形线。

0

我认为A*算法不是正确的算法。对于最短路径问题,Dijkstra算法更好。根据维基百科,A*算法只是更快,但结果相同。除此之外,其他方面都非常合理。


我感谢您的回答,但是您知道用于获取最接近折线的算法是什么吗?这将是我Dijkistra算法的来源。 - user1066429
“closest polyline” 是什么意思? - Micromega

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接