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: '目的地',
);
注意事项
-
URL Scheme参数说明:
slat/slon: 起点经纬度dlat/dlon: 终点经纬度sname/dname: 起点/终点名称t=0: 驾车模式(0-驾车,1-公交,2-步行)
-
平台配置:
- iOS需要在
Info.plist中添加URL Scheme白名单 - Android需要在
AndroidManifest.xml中添加intent-filter
- iOS需要在
-
备用方案:建议同时提供网页版高德地图作为备用方案,确保用户在任何情况下都能使用路线规划功能。
选择哪种方式取决于你的具体需求:如果只是简单调起App,使用URL Scheme更轻量;如果需要更复杂的交互,建议使用官方Flutter插件。

