更新记录
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 实现:
- 如果传入了经纬度,直接使用传入的位置打开地图
- 如果未传入经纬度,先调用
uni.getLocation获取当前位置 - 如果获取当前位置失败,则打开地图但不设置初始位置
注意事项
- 仅支持鸿蒙端:此插件专为 HarmonyOS 设计,其他平台请使用对应的地图 API
- 需要地图权限:确保应用已申请并获得地图相关权限
- 条件编译:建议使用
// #ifdef APP-HARMONY进行条件编译,确保代码只在鸿蒙端执行 - 错误处理:务必处理 callback 中的 error 参数,避免用户取消选择时出现异常

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 5
赞赏 0
下载 12522372
赞赏 1943
赞赏
京公网安备:11010802035340号