更新记录

1.1(2026-08-21)

  • 初始版本发布
  • 实现 chooseLocation 地图选点功能
  • 支持传入初始位置(经纬度)
  • 支持自动获取当前位置作为初始位置
  • 支持搜索附近 POI(Point of Interest)
  • 返回详细的位置信息(纬度、经度、名称、地址)

平台兼容性

uni-app(5.23)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × × × × × 24
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(5.24)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × × × 24 ×

华为花瓣地图插件 (petal-map)

简介

petal-map 是一个专为鸿蒙端设计的华为花瓣地图选点插件,基于华为 MapKit 的 sceneMap.chooseLocation 能力实现,用于在地图上选择位置点。

功能特性

  • ✅ 支持地图选点功能
  • ✅ 支持传入初始位置(经纬度)
  • ✅ 支持自动获取当前位置
  • ✅ 支持搜索附近 POI
  • ✅ 返回详细的位置信息(经纬度、名称、地址)

安装

插件已集成在项目的 uni_modules/petal-map 目录下,无需额外安装。

API 说明

chooseLocation(options, callback)

打开地图选择位置。

参数说明

options (PetalMapOptions | null)

  • latitude (number, 可选): 初始纬度
  • longitude (number, 可选): 初始经度
  • 如果不传入 options 或 options 为 null,插件会自动获取当前位置作为初始位置

callback (function) 回调函数,接收两个参数:

  • result (PetalMapResult | null): 选择结果
    • latitude (number): 纬度
    • longitude (number): 经度
    • name (string): 位置名称
    • address (string): 详细地址
  • error (string | null): 错误信息

类型定义

type PetalMapResult = {
  latitude: number
  longitude: number
  name: string
  address: string
}

type PetalMapOptions = {
  latitude?: number
  longitude?: number
}

使用示例

基础用法(自动获取当前位置)

import { chooseLocation } from '@/uni_modules/petal-map'

// #ifdef APP-HARMONY
chooseLocation(null, (result, error) => {
  if (error != null) {
    uni.showToast({ title: '位置选择失败', icon: 'none' })
    console.error('选择位置失败:', error)
    return
  }

  if (result != null) {
    console.log('选择的位置:', result)
    console.log('纬度:', result.latitude)
    console.log('经度:', result.longitude)
    console.log('名称:', result.name)
    console.log('地址:', result.address)
  }
})
// #endif

指定初始位置

import { chooseLocation } from '@/uni_modules/petal-map'

// #ifdef APP-HARMONY
chooseLocation({
  latitude: 39.9042,
  longitude: 116.4074
}, (result, error) => {
  if (error != null) {
    console.error('选择位置失败:', error)
    return
  }

  if (result != null) {
    console.log('选择的位置:', result)
    // 处理选择结果...
  }
})
// #endif

平台支持

平台 支持情况 说明
HarmonyOS ✅ 支持 使用华为花瓣地图
微信小程序 ❌ 不支持 请使用 uni.chooseLocation
其他平台 ❌ 不支持 请使用对应平台的地图 API

技术实现

插件基于华为 MapKit 的 sceneMap.chooseLocation API 实现:

  1. 如果传入了经纬度,直接使用传入的位置打开地图
  2. 如果未传入经纬度,先调用 uni.getLocation 获取当前位置
  3. 如果获取当前位置失败,则打开地图但不设置初始位置

注意事项

  1. 仅支持鸿蒙端:此插件专为 HarmonyOS 设计,其他平台请使用对应的地图 API
  2. 需要地图权限:确保应用已申请并获得地图相关权限
  3. 条件编译:建议使用 // #ifdef APP-HARMONY 进行条件编译,确保代码只在鸿蒙端执行
  4. 错误处理:务必处理 callback 中的 error 参数,避免用户取消选择时出现异常

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。