flutter_amap_navi 1.0.2 copy "flutter_amap_navi: ^1.0.2" to clipboard
flutter_amap_navi: ^1.0.2 copied to clipboard

A Flutter plugin for AMap drive, walk, ride navigation and cruise events.

flutter_amap_navi #

面向 Android、iOS 的 Flutter 高德导航插件,支持驾车、步行、骑行导航,路线规划页面、智能巡航与导航事件流。

本包可独立使用,不依赖 flutter_amap_plus。如果应用同时需要地图,请分别初始化两个插件,并向两边传入相同的平台 Key 与隐私授权状态。

安装 #

dependencies:
  flutter_amap_navi: ^1.0.0

初始化与启动导航 #

import 'package:flutter_amap_navi/flutter_amap_navi.dart';

await AMapNavi.init(
  config: const NaviSdkConfig(
    apiKey: NaviApiKey(
      iosKey: 'your-ios-key',
      androidKey: 'your-android-key',
    ),
    agreePrivacy: true,
    preloadNaviIcons: true,
  ),
);

await AMapNavi.startNavigation(
  config: NaviConfig(
    naviType: NaviType.driver,
    start: NaviPoint(
      name: '起点',
      position: NaviPosition(latitude: 39.9841, longitude: 116.3075),
    ),
    end: NaviPoint(
      name: '终点',
      position: NaviPosition(latitude: 39.9087, longitude: 116.3975),
    ),
    drivingStrategy: NaviDrivingStrategy.drivingMultipleRoutesDefault,
  ),
);

AMapNavi.init 可重复调用,后一次配置会重新应用。未初始化就启动导航或巡航会抛出 StateError;插件不会替应用静默同意隐私协议。

Android 自定义导航 Activity #

自定义容器需继承 AMapFlutterRouteActivity(间接继承高德 AmapRouteActivity)并在宿主 Manifest 注册,然后传入完整类名:

await AMapNavi.startNavigation(
  config: NaviConfig(
    end: destination,
    androidActivityClassName: 'com.example.app.CustomNaviActivity',
  ),
);

插件会在启动前检查类是否存在、是否继承正确且已启用。该参数仅在 Android 生效;为空时继续使用插件默认容器。

与地图包联合使用 #

两个包刻意不共享 Dart 模型。请在应用边界显式转换:

NaviPosition toNaviPosition(Position value) => NaviPosition(
  latitude: value.latitude,
  longitude: value.longitude,
);

final naviStrategy = NaviDrivingStrategy.fromId(mapStrategy.id);

平台配置 #

Android #

  • minSdk 24,Java/JVM 17。
  • 宿主按业务声明网络、粗略/精确定位、前后台定位和 WAKE_LOCK 权限,并在运行时请求定位权限。
  • 插件 Manifest 自动合并 AMapFlutterRouteActivity 及导航主题。
  • 导航 SDK 作为 Android API 依赖暴露,以便宿主实现自定义 AmapRouteActivity 容器。
  • 本包固定使用 com.amap.api:navi-3dmap-location-search:11.2.100_3dmap11.2.100_loc11.2.100_sea9.8.1
  • flutter_amap 联合使用时,插件会自动用该导航合包替换纯地图合包,防止重复类。

iOS #

  • 最低 iOS 12.0。
  • Info.plist 中声明定位用途;巡航或导航需要后台定位时,再启用 Location Background Mode 并提供 Always 权限说明。
  • Pod 固定使用 AMapNavi 11.2.100
  • flutter_amap 联合使用时,在宿主 Podfileflutter_ios_podfile_setup 之前设置 ENV['FLUTTER_AMAP_USE_NAVI_SDK'] = 'true',避免同时引入 AMap3DMap

可运行的最小工程见 example。从原单包 API 迁移请阅读 2.0 迁移指南

License #

LICENSE

1
likes
145
points
116
downloads

Documentation

API reference

Publisher

verified publisherdev.cquni.com

Weekly Downloads

A Flutter plugin for AMap drive, walk, ride navigation and cruise events.

Repository (GitHub)
View/report issues

License

BSD-3-Clause (license)

Dependencies

flutter, plugin_platform_interface, stream_transform

More

Packages that depend on flutter_amap_navi

Packages that implement flutter_amap_navi