android - 带 map 和路线的 Android 项目要使用哪些库?

标签 android google-maps routing openstreetmap android-library

我将与我的 friend 一起开发一个 Android 应用程序。该应用程序将大量使用 map 、查找路线、放置标记、绘制预定义路线等。

有这个 Google Maps APIv2。所以我试了一下,写了一些代码,看起来不错。我能够放置标记并绘制多段线,但是我的应用程序将有一些预定义的路线。一条路线是一组 LatLng 点。所以我只是将这些点添加到 PolylineOptions 并将其添加到 map 。很好,很管用。

但是这些预定义的路线将在基于网络的应用程序中创建,也使用谷歌地图 APIv2 或类似的 api/库。有些街道不是直的,而是弯曲的,因此您需要创建很多 LatLng 点以使其看起来漂亮,这非常重要。我可以这样做,但我只想放置两个 LatLng 点 - 在街道的起点和终点。

这是图片: enter image description here

在左侧,路线只有两个 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/

相关文章:

android - 如何以编程方式在 admob 上使用文字广告?

javascript - Google 标记管理器未定义

asp.net-mvc - 如何更改 MVC5 中的默认 URL

url - Spring Boot 和 Angular 2 的 URL 处理问题

Android 蓝牙在方向改变后崩溃

android - BLE 扫描中未显示蓝牙耳机

android - 将具有空值的字符串作为参数传递时, Volley 字符串请求错误

google-maps - 有没有办法从电子表格中的地址检索 Google map 经度和纬度?

javascript - 为什么谷歌地图不显示在动态生成的 div 中?

ruby-on-rails - "Rails Way"的 `update` 是否存在根本缺陷?