Flutter如何调起高德路线规划

在Flutter应用中如何调用高德地图的路线规划功能?需要集成哪些SDK或插件,有没有具体的代码示例?调用过程中需要注意哪些参数和权限配置?

2 回复

使用Flutter调起高德路线规划,可通过url_launcher插件调用高德地图App的URL Scheme。示例代码:

import 'package:url_launcher/url_launcher.dart';

void openAmapRoute(double startLat, double startLng, double endLat, double endLng) async {
  final String url = 'amapuri://route/plan/?slat=$startLat&slon=$startLng&dlat=$endLat&dlon=$endLng&dev=0&t=0';
  if (await canLaunch(url)) {
    await launch(url);
  }
}

需在pubspec.yaml添加url_launcher依赖,并在Android/iOS配置高德白名单。

更多关于Flutter如何调起高德路线规划的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中调起高德地图进行路线规划,可以通过以下两种方式实现:

方法一:使用URL Scheme调起高德地图App

import 'package:url_launcher/url_launcher.dart';

void launchAmapRoutePlan({
  required double startLat,
  required double startLng,
  required double endLat,
  required double endLng,
  String startName = '起点',
  String endName = '终点',
}) async {
  // 构建高德地图URL
  final String url = 'amapuri://route/plan/?'
      'slat=$startLat&slon=$startLng&sname=$startName&'
      'dlat=$endLat&dlon=$endLng&dname=$endName&'
      'dev=0&t=0';
  
  if (await canLaunch(url)) {
    await launch(url);
  } else {
    // 如果高德地图未安装,可以跳转到应用商店或使用网页版
    final String webUrl = 'https://uri.amap.com/navigation?'
        'from=$startLng,$startLat,$startName&'
        'to=$endLng,$endLat,$endName&'
        'mode=car&src=mypage';
    
    if (await canLaunch(webUrl)) {
      await launch(webUrl);
    }
  }
}

方法二:使用高德地图Flutter插件

首先在 pubspec.yaml 中添加依赖:

dependencies:
  amap_flutter_map: ^x.x.x
  amap_flutter_location: ^x.x.x

然后使用插件进行路线规划:

import 'package:amap_flutter_map/amap_flutter_map.dart';

void navigateWithAmap() {
  // 使用AMapNavigation打开路线规划
  // 注意:需要先配置Android和iOS的key
  AMapNavigation.navigate(
    NaviPara(
      lat: endLat,    // 终点纬度
      lon: endLng,    // 终点经度
      target: endName,// 终点名称
    ),
  );
}

使用示例

// 调用示例
launchAmapRoutePlan(
  startLat: 39.90960,
  startLng: 116.397228,
  endLat: 39.90816,
  endLng: 116.47433,
  startName: '当前位置',
  endName: '目的地',
);

注意事项

  1. URL Scheme参数说明

    • slat/slon: 起点经纬度
    • dlat/dlon: 终点经纬度
    • sname/dname: 起点/终点名称
    • t=0: 驾车模式(0-驾车,1-公交,2-步行)
  2. 平台配置

    • iOS需要在 Info.plist 中添加URL Scheme白名单
    • Android需要在 AndroidManifest.xml 中添加intent-filter
  3. 备用方案:建议同时提供网页版高德地图作为备用方案,确保用户在任何情况下都能使用路线规划功能。

选择哪种方式取决于你的具体需求:如果只是简单调起App,使用URL Scheme更轻量;如果需要更复杂的交互,建议使用官方Flutter插件。

回到顶部