【问题标题】:How to find shortest path in offline mode for android application?如何在离线模式下为android应用程序找到最短路径?
【发布时间】:2013-08-01 09:21:49
【问题描述】:

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

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

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

【问题讨论】:

  • 地点是指地图上的地点吗?
  • 如果我选择源和目标意味着我必须找到最短路径。
  • support.google.com/gmm/answer/2650218?hl=en Android 版 Google 地图上的离线地图。
  • @asha:这是什么地图。是自定义地图还是您使用的 google 或 bing 地图?
  • @karthick 我将使用我自己的那个购物中心的自定义地图。

标签: android path-finding offline-mode


【解决方案1】:

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

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

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

Dijkstra's algorithm

【讨论】:

    【解决方案2】:

    只需检查这些链接以获取离线地图库。

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

    【讨论】:

    • 我对此表示怀疑。在 manifest.xml 文件中添加了 internet 权限。那你怎么知道这是离线模式?
    • Stack Overflow 不赞成仅链接的答案,好像链接已经死了,答案将变得无用。请在答案中包含链接的重要部分,并提供链接作为进一步参考。如果是产品或服务的链接,请说明您如何使用该产品或服务来回答问题,而不是仅提供链接。
    【解决方案3】:

    通过使用以下方法,您可以在不使用互联网的情况下计算两个 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
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多