Android-室内寻路建议

时间:2019-01-04 17:10:40

标签: android path-finding a-star

我目前正在从事室内寻路项目。您可以这样想象: enter image description here

在我的应用程序中,我已经实现了起始房间和目标房间的两个搜索视图。进入两个房间之后,应用程序应启动一个算法,例如A *,以计算这两个房间之间的最短路径。突然,用户可以看到这两个房间之间的画线。

您对我如何在Android上实现A *算法(如图片所示)有任何建议吗?

1 个答案:

答案 0 :(得分:0)

A *算法依靠图论

因此,首先,您应该将房间绘制为图形(每个房间/楼层是一个顶点或节点,每个门都是一个边)。我建议您为此使用众所周知的实现(here是一个示例)。

根据您的架构,您的图形应如下图所示

enter image description here

保留HashMap(或其他内容)以跟踪哪个房间映射到哪个节点,以及哪个走廊链接到哪个边缘。

然后,当您的使用要求路径时,请计算A *算法。我链接到的示例看起来像这样

List<Node> path = aStar.findPath();

将节点列表重新映射回房间列表,并显示给您的用户。

注意:如果您想使其非常整洁,可以重写AStar.java以接受Room的列表,并使其吐出另一个Room的列表