Flutter 离线地图路由
Posted
技术标签:
【中文标题】Flutter 离线地图路由【英文标题】:Flutter offline map routing 【发布时间】:2021-01-10 23:56:48 【问题描述】:在开发我的 Flutter 应用程序时(仅限 android,不支持 ios)我遇到了一个问题。
用例是用户在线从 Google Maps API/MapBox(尚未确定最终构建中使用哪个)以 JSON/XML 格式下载地图路线方向并保存在设备上。然后在离线时使用此路线导航。
应用程序针对徒步旅行者、跑步者、骑自行车者等,因此如果用户预先下载了路线,则需要能够正确导航用户。
我的问题是我找不到适合 Flutter 进行导航的插件。该应用程序是我大学学习的期末论文,因此要求仅使用 Flutter 和 Flutter 插件来完成工作,并且不要编写或使用任何 Android 原生代码/SDK/插件。
【问题讨论】:
离线使用 Maps API 可能需要下载一些 API 结果。您看不到很多类似搜索结果的原因是因为它们实际上不允许离线使用他们的 API。根据 Google Maps Terms of service 在 3.2.3 (a) No Scraping 下,客户不得:(i) 在服务之外预取、索引、存储、转发或重新托管 Google Maps 内容 但是,有些数据您可以临时存储/缓存。见他们的service specific terms 只是补充一下,实际上有一个关于您关注的现有功能请求。见issuetracker.google.com/111972765。我建议您对此加注星标,它将订阅您接收有关该问题的技术更新。 我已经检查了它并挖掘了更多信息。我们决定改变应用程序的工作流程。感谢您的帮助。 【参考方案1】:由于 Google 不允许下载离线地图,而且 Mapbox 是一项预先打包的服务,因此使用其中任何一个都不太可能。但是,您可以使用 Mapbox 来显示您的地图。然后使用 OpenStreetMap 数据做导航部分。两者将具有相同的地图数据,因为 Mapbox 使用 OpenStreetMap 数据。您可以从planet.openstreetmap.org 下载 OpenStreetMap 数据。还有一些其他来源,您可以在其中下载较小部分的地图数据(单个国家/地区)。 Mapbox 会兑现用户导航过的所有地图数据。
虽然这种方法可行,但相当困难。使用像 Mapbox Navigation 这样的服务会更有意义,并且会为您节省大量时间。
【讨论】:
以上是关于Flutter 离线地图路由的主要内容,如果未能解决你的问题,请参考以下文章