我将与我的 friend 一起开发一个 Android 应用程序。该应用程序将大量使用 map 、查找路线、放置标记、绘制预定义路线等。
有这个 Google Maps APIv2。所以我试了一下,写了一些代码,看起来不错。我能够放置标记并绘制多段线,但是我的应用程序将有一些预定义的路线。一条路线是一组 LatLng 点。所以我只是将这些点添加到 PolylineOptions 并将其添加到 map 。很好,很管用。
但是这些预定义的路线将在基于网络的应用程序中创建,也使用谷歌地图 APIv2 或类似的 api/库。有些街道不是直的,而是弯曲的,因此您需要创建很多 LatLng 点以使其看起来漂亮,这非常重要。我可以这样做,但我只想放置两个 LatLng 点 - 在街道的起点和终点。
在左侧,路线只有两个 LatLng 点(红点),这是所需的线形。在具有 2 个 LatLng 点的正确路线上,路线颜色为浅蓝色,这就是我将多段线添加到 GoogleMap 对象时实际发生的情况。为了创建与左图中相同的效果,我需要创建许多 LatLng(红点)点,这不适合那些将创建这些路线的人。所以这导致我们遇到路由问题,可以使用 Google Directions API 解决。这解决了用较少标记绘制路线的问题。基本上我的理解是,这个用于方向的 API 实际上创建了很多我使用 for-each 循环绘制的 LatLng 点,如上图右侧所示。我需要为此联系 Google Web 服务,所以我需要有 Internet 连接 - 这就是问题所在。
有时互联网不可用,因此我需要一些替代解决方案。我听说过 Open Street Maps,但我不确定如何使用它,它是否需要互联网连接才能创建这些路线。
有没有提供离线路线和离线显示 map 的免费图书馆?基本上所有 map 交互都必须在不使用互联网的情况下完成。 但是如果仅在第一次运行应用程序时需要互联网连接是可以理解的,因为它是谷歌地图 APIv2 所需要的,那么应用程序崩溃直到我打开互联网,之后任何下一次运行我都不需要互联网..
将创建一个基于 Web 的应用程序来创建这些路线,路线将由我们为其开发此应用程序的用户创建。由于用户可能非常烦人,因此他们会需要一些用户友好且简单的界面来创建路线。告诉他们需要为每条路线创建 100 到 500 个积分,如果有 60-70 条路线,他们会很高兴地拒绝我们的申请。
有什么建议吗?如果可能的话,我可以为谷歌地图编写自己的路由算法以离线工作,我非常擅长“算法和数据结构”——有这方面的指南/教程吗?但我猜这张 map 只是一组图 block ,并没有找到路线所需的信息……所以如果我弄错了什么,请更正。
最佳答案
您可以使用 Scout SDK (提供免费使用配额)因为它提供完整的离线 map 、路线和导航。
关于android - 带 map 和路线的 Android 项目要使用哪些库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32341216/