1. 插件介绍

map_launcher_ohos 是一个专为鸿蒙系统适配的 Flutter 地图启动插件,基于 map_launcher 开发。该插件允许您在 Flutter 应用中轻松调用设备上已安装的地图应用(如高德地图、Google 地图、花瓣地图等),实现地图标记显示和导航路线规划功能。

1.1 主要功能

  • 多地图应用支持:支持高德地图、Google 地图、Google Go、花瓣地图等多种主流地图应用
  • 地图标记显示:在指定位置显示标记点,支持自定义标题和缩放级别
  • 导航路线规划:支持驾车、步行、公共交通、骑自行车四种导航模式
  • 途经点设置:支持添加多个途经点进行路线规划
  • 地图可用性检查:可检查指定地图应用是否在设备上可用
  • 地图选择弹窗:提供默认的地图选择弹窗,方便用户选择偏好的地图应用

1.2 应用场景

  • 旅游类应用:显示景点位置标记
  • 导航类应用:规划出行路线
  • 生活服务应用:显示商家位置
  • 物流配送应用:显示配送点位置和路线

2. 安装与配置

2.1 Git 依赖配置

在项目的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  map_launcher_ohos:
    git:
      url: "https://gitcode.com/openharmony-sig/fluttertpc_map_launcher.git"
      path: "ohos"

添加依赖后,执行以下命令获取依赖包:

flutter pub get

2.2 配置 querySchemes

在鸿蒙应用的 entry/src/main/module.json5 文件中添加 querySchemes 配置,以支持地图应用的调用:

{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "",
    "mainElement": "EntryAbility",
    "deviceTypes": ["phone", "tablet"],
    "distro": {
      "deliveryWithInstall": true,
      "moduleName": "entry",
      "moduleType": "entry"
    },
    "abilities": [
      // 能力配置
    ],
    "querySchemes": [
      "alipays",
      "amapuri",
      "zhihu",
      "baidumap",
      "maps"
    ]
  }
}

3. API 使用示例

3.1 导入依赖

import 'package:map_launcher_ohos/map_launcher_ohos.dart';

3.2 显示地图标记

以下示例展示如何在地图上显示一个标记点:

// 显示地图选择弹窗
MapsSheet.show(
  context: context,
  onMapTap: (map) {
    map.showMarker(
      coords: Coords(22.592429967609824, 114.30795419058587), // 坐标(纬度, 经度)
      title: '大梅沙海滨公园', // 标记标题
      zoom: 18, // 缩放级别(可选)
    );
  },
);

3.3 显示导航路线

以下示例展示如何规划从起点到终点的导航路线:

// 显示地图选择弹窗
MapsSheet.show(
  context: context,
  onMapTap: (map) {
    map.showDirections(
      // 终点坐标
      destination: Coords(22.592429967609824, 114.30795419058587),
      destinationTitle: '大梅沙海滨公园',
      // 起点坐标(可选,不提供则使用当前位置)
      origin: Coords(22.60211, 114.32841),
      originTitle: '小梅沙海洋公园',
      // 途经点(可选)
      waypoints: [
        Waypoint(22.60211, 114.34841),
      ],
      // 导航模式(可选,默认为驾车模式)
      directionsMode: DirectionsMode.driving,
    );
  },
);

3.4 检查地图应用可用性

// 检查高德地图是否可用
bool? isAmapAvailable = await MapLauncher.isMapAvailable(MapType.amap);

// 检查 Google 地图是否可用
bool? isGoogleAvailable = await MapLauncher.isMapAvailable(MapType.google);

3.5 获取已安装的地图应用列表

// 获取设备上已安装的地图应用列表
List<AvailableMap> maps = await MapLauncher.installedMaps;

// 遍历并使用地图应用
for (var map in maps) {
  // 可以直接使用 map.showMarker 或 map.showDirections
}

4. 导航模式说明

map_launcher_ohos 支持以下四种导航模式:

导航模式 描述
DirectionsMode.driving 驾车模式
DirectionsMode.walking 步行模式
DirectionsMode.transit 公共交通模式
DirectionsMode.bicycling 骑自行车模式

5. 兼容性

该插件已在以下环境中测试通过:

  1. Flutter: 3.7.12-ohos-1.0.6; SDK: 5.0.0(12); IDE: DevEco Studio: 5.0.13.200; ROM: 5.1.0.120 SP3
  2. Flutter: 3.22.1-ohos-1.0.1; SDK: 5.0.0(12); IDE: DevEco Studio: 5.0.13.200; ROM: 5.1.0.120 SP3

6. 总结

map_launcher_ohos 是一个功能强大的地图启动插件,为 Flutter 开发者提供了在鸿蒙系统上集成多种地图应用的便捷方式。通过简单的 API 调用,开发者可以实现地图标记显示和导航路线规划等功能,提升应用的实用性和用户体验。

该插件具有以下特点:

  • 支持多种主流地图应用
  • 提供简洁易用的 API 接口
  • 支持多种导航模式
  • 提供地图选择弹窗
  • 适配鸿蒙系统的特性和限制

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐