我需要找到从一个地方到另一个地方的最短路径。
例如,当我进入一个特定的购物中心时,我必须在离线模式下找到从当前商店到同一购物中心内目标商店的最短路径。
根据我的搜索,我最终确定在 A* 算法中实现这个概念。谁能告诉我这是否是正确的方法?除此之外,还有其他方法可以实现吗?
我需要找到从一个地方到另一个地方的最短路径。
例如,当我进入一个特定的购物中心时,我必须在离线模式下找到从当前商店到同一购物中心内目标商店的最短路径。
根据我的搜索,我最终确定在 A* 算法中实现这个概念。谁能告诉我这是否是正确的方法?除此之外,还有其他方法可以实现吗?
您可以为此使用 dijkstra 算法,虽然 A* 有优势,但 dijkstra 有更多资源。A* 对我来说更难理解。
您可以创建静态节点或顶点并将它们用于 dijkstra。只需遍历节点,并确保您可以测量每个节点或顶点的距离,以便您可以比较较短的一个,最终您可以获得最短路径。您可以创建一个地图,其中包含节点或顶点以及每个相关顶点的距离,以帮助您进行编程。这有点挑战。
我现在没有我的代码,但我想网络可以更好地帮助你。祝你好运。快乐编码。
只需检查这些链接以获取离线地图库。
1)Osmdroid。 2)教程 3) Mapsforge 4)使用 mapsforge 的离线地图
通过使用以下方法,您可以在不使用互联网的情况下计算两个 Geopoint 之间的最短距离。
/******** 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
}