flutter 第三方地图导航实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter 第三方地图导航实现相关的知识,希望对你有一定的参考价值。

参考技术A 这里实现flutter第三方地图导航,选用最简单的方式--调用第三方地图客户端;但各种地图客户端用的坐标系不一定相同,先了解下常见的坐标系:

地图应用api坐标系:

在 pubspec.yaml 文件中添加依赖插件:

一般androidios调起第三方应用是通过scheme方式,这里调起第三方地图客户端导航也一样,如高德地图,ios scheme为iosamap,android scheme为androidamap; 所以flutter需要引用url_launcher;

未完待续~~

打开谷歌地图应用并在flutter webview中显示逐向导航

【中文标题】打开谷歌地图应用并在flutter webview中显示逐向导航【英文标题】:Open Google Maps app and display turn-by-turn navigation inside flutter webview 【发布时间】:2019-12-25 15:05:36 【问题描述】:

我想在我的 Flutter 应用中显示带有逐步导航的 Google 地图应用。

我正在开发一个 Flutter 应用程序,该应用程序可以安排路线、监控驾驶员的进展(在后台)并能够根据用户输入(例如路障)重新安排路线。我想在底部显示一个应用栏,其中包含有关进度的信息以及一些用于启动或通知应用程序障碍的按钮。在此栏上方,我想要一个窗口显示基于当前日程安排的逐向导航。我希望所有这些都自动运行,以将用户输入量减少到最低限度(因为用户正在开车)。


Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter demo'),
      ),
      body: Center(
        child: WebView(
          initialUrl: 'https://www.google.com/maps/dir/?api=1&destination=Madrid,Spain&origin=Barcelona,Spain&waypoints=Zaragoza|Huesca&travelmode=driving&dir_action=navigate',
          javascriptMode: JavascriptMode.unrestricted,
        ),
      ),
      bottomNavigationBar: BottomAppBar(
        color: Colors.blueGrey,
        child: Text('Dashboard'),
      ),
    );
  

我能够使用此示例 url 设置 WebView:

https://www.google.com/maps/dir/?api=1&destination=Madrid,Spain&origin=Barcelona,Spain&waypoints=Zaragoza|Huesca&travelmode=driving&dir_action=navigate

它会显示带有所需路线和“导航”按钮的 Google 地图网络应用程序。但是,当我按下导航按钮时,一个 net:ERR_UNKNOWN_URL_SCHEME 被丢弃,因为它想要触发一个意图。我有一种感觉,即使我能够解决这个错误,我也只能在新屏幕/页面上打开逐向导航,而不是嵌入到 WebView 中(或我的应用程序中的其他位置) )。

这有可能吗,还是我在浪费时间试图找到一种方法来完成这项工作?

【问题讨论】:

目前,我们已经开始使用 Sygic(基于 HERE 地图)。 Google 有一个 Navigation SDK,但它不会很快发布。 Waze 和 Uber 正在使用它。 您找到解决方案了吗?我陷入了类似的情况 嗨萨尔塔克!这个问题有两个方面:1)移动设备上的轮流和 2)应用程序中的应用程序(可能使用 Webview)。目前,我们仍在为这个项目努力工作,并从 Flutter 转向纯 Java Android。我们无法在应用程序中获取应用程序,也无法从 Google 获得逐步导航。 Sygic 不符合我们的业务要求(即使他们在其他方面做广告,所以要小心!)所以我们探索了 MapBox 和 BeNav 等其他供应商。现在我们的应用会触发打开另一个导航应用的意图,开始导航预先计算的路线。 【参考方案1】:

我认为不可能在 WebView 中强制进行逐向 Google 地图导航。此外,在您的应用中使用 Google Maps API 创建您自己的逐向导航也可能违反Google Maps Platform's Terms of Service - 请参阅 3.2.3.d:“不得重新创建 Google 产品或功能”。

我可以建议让其他应用程序处理广播的意图,以启动外部地图应用程序来处理导航。您可以查看post,了解如何过滤意图 URL 并让它们在外部处理。

【讨论】:

以上是关于flutter 第三方地图导航实现的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 中的谷歌地图导航

Android开发 PopupWindow弹窗调用第三方地图(百度,高德)实现导航功能

Flutter页面导航

Android仿微信调用第三方地图应用导航(高德百度腾讯)

Flutter如何跳转外部地图app导航

Android 打开第三方地图App进行导航