如何在Android应用程序的离线模式下找到最短路径?

时间:2013-08-01 09:21:50

标签: android path-finding offline-mode

我需要找到从一个地方到另一个地方的最短路径。

例如,当我进入某个特定的购物中心时,我必须在离线模式下找到从当前商店到同一商城内目的地商店的最短路径。

根据我的搜索,我最终在A *算法中实现了这个概念。谁能告诉我这是否是正确的方法?除此之外,还有其他方法可以实现吗?

3 个答案:

答案 0 :(得分:3)

你可以使用dijkstra算法,虽然A *有优势,但dijkstra有更多的资源。对我来说A *更难理解。

您可以创建静态节点或顶点并将其用于dijkstra。只需遍历节点,并确保您可以测量每个节点或顶点的距离,以便您可以比较较短的节点,然后最终可以获得最短路径。您可以创建一个包含节点或顶点的地图,每个相关顶点的距离可以帮助您进行编程。这是一个挑战。

我现在没有我的代码,但我猜网可以更好地帮助你。祝你好运。快乐的编码。

enter image description here

Dijkstra's algorithm

答案 1 :(得分:2)

只需查看离线地图库的这些链接。

1)Osmdroid. 2)Tutorial 3)Mapsforge 4)Offline map using mapsforge

答案 2 :(得分:1)

通过使用以下方法,您可以在不使用互联网的情况下计算两个地理位置之间的最短距离。

/******** Method for Calculating distance between two locations *******/
public float DistanceBetweenPlaces(double lat1, double lon1, double lat2, double lon2)
{
    float[] results = new float[1];
    Location.distanceBetween(lat1, lon1, lat2, lon2, results);
    return results[0]; // Returns the shortest distance between two Geopoints
}