Flutter 调用百度地图APP实现位置搜索路线规划

Posted 早起的年轻人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter 调用百度地图APP实现位置搜索路线规划相关的知识,希望对你有一定的参考价值。

志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。

1 开发准备

pubspec.yaml 配置文件中添加插件

dependencies:
  flutter:
    sdk: flutter
  url_launcher: ^6.1.2

ios 配置 info.plist

<key>LSApplicationQueriesSchemes</key>
<array>
	<string>iosamap</string>
	<string>baidumap</string>
</array>

2 Flutter 调起百度地图 - 搜索位置

百度地图开发文档

  /// 百度地图
  static Future<bool> openBaiduMap(
    double longitude,
    double latitude, 
    String? address,
    bool showErr = true,
    String? title,
  ) async 
    String url =
        "bdapp://map/geocoder?location=$latitude,$longitude&src=$title&coord_type=gcj02";
    if (Platform.isIOS) url = Uri.encodeFull(url);
    try 
      if (await canLaunchUrlString(url)) 
        await launchUrlString(url);
        return true;
       else 
        if (showErr) showToastCommon('无法调起百度地图');
        return false;
      
     on Exception catch (e) 
      if (showErr) showToastCommon('无法调起百度地图');
      return false;
    
  

实际上是调用的百度地图开放api 反向地址解析

调起的结果如下 :

3 坐标类型选择

需要注意的是 coord_type 坐标类型的取值

  • bd09ll(百度经纬度坐标)
  • bd09mc(百度墨卡托坐标)
  • gcj02(经国测局加密的坐标)
  • wgs84(gps获取的原始坐标)

如果不传递正确的坐标类型参数,会导致地点坐标位置偏移。默认为bd09经纬度坐标。

4 Flutter 调起百度地图 - 导航 路线规划

百度地图开发文档

 static Future<bool> openBaiduMapNav(
    double longitude,
    double latitude, 
    String? address,
    bool showErr = true,
    String? title,
  ) async 
    String url =
        'baidumap://map/direction?destination=name:$address ?? ''|latlng:$latitude,$longitude&coord_type=bd09ll&mode=driving';
    if (Platform.isIOS) url = Uri.encodeFull(url);
    try 
      if (await canLaunchUrlString(url)) 
        await launchUrlString(url);
      
     on Exception catch (e) 
      if (showErr) showToastCommon('无法调起百度地图');
      return false;
    
    return true;
  

实际上是调用的

以上是关于Flutter 调用百度地图APP实现位置搜索路线规划的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 调用高德地图APP实现位置搜索路线规划逆地理编码

Flutter 调用高德地图APP实现位置搜索路线规划逆地理编码

如何使用百度地图查询出行路线

如何使用百度地图查询出行路线

百度地图怎么设置起点和终点

百度地图怎么报错