Skip to content
Back to skills

Hmos Map Kit Map Creation

ASecurity

HarmonyOS Map Kit地图创建开发指南,支持地图组件创建、覆盖物管理、相机控制、图层配置等能力。 适用情形:用户要求创建/绘制/展示地图、添加地图标记、绘制图形、管理覆盖物交互、控制相机位置等。

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
developmenttypescriptgoapi

Works with

  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned September 22, 2026

npx -y skills add IsKenKenYa/skills --skill hmos-map-kit-map-creation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hmos Map Kit Map Creation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hmos Map Kit Map Creation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/iskenkenya-hmos-map-kit-map-creation/badge)](https://www.skillsdirectory.com/skills/iskenkenya-hmos-map-kit-map-creation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hmos-map-kit-map-creation
description: >
  HarmonyOS Map Kit地图创建开发指南,支持地图组件创建、覆盖物管理、相机控制、图层配置等能力。
  适用情形:用户要求创建/绘制/展示地图、添加地图标记、绘制图形、管理覆盖物交互、控制相机位置等。
version: 1.0.0
license: MIT
homepage: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/map-presenting
---

# HarmonyOS Map Kit 地图创建开发指南

本技能提供华为地图Map Kit SDK的地图创建与覆盖物管理功能开发指南。

## 领域知识

地图创建Skill覆盖MapComponent组件创建、覆盖物添加删除、相机动画控制等核心能力。

关键Note:
- **MapComponent是基础**:必须先在UI中创建MapComponent组件,才能获取Controller进行后续操作
- **Controller空检查必须**:通过mapCallback获取的MapComponentController使用前必须进行空检查
- **坐标系统一**:geoLocationManager返回WGS84坐标系,地图显示使用GCJ02坐标系,必须转换
- **异步处理**:除TileOverlay和MvtOverlay外,所有地图API返回Promise,必须使用async/await

扩展知识 → references/(可按需查阅)
- 坐标系转换规则 → references/utility.md
- 覆盖物选项参数 → references/common.md

## 工具定义(Tools)

本Skill使用HarmonyOS Map Kit SDK提供的系统预置工具。


### 接口导入

```typescript
import { map, mapCommon, MapComponent } from '@kit.MapKit';
```

### Controller定义

```typescript
private mapController?: map.MapComponentController;
```

### 核心API

| API | 说明 | 返回类型 |
|-----|-----|---------|
| `mapComponentController.addMarker()` | 添加标记 | Promise |
| `mapComponentController.removeMarker()` | 移除标记 | Promise |
| `mapComponentController.addCircle()` | 添加圆形 | Promise |
| `mapComponentController.addPolygon()` | 添加多边形 | Promise |
| `mapComponentController.addPolyline()` | 添加折线 | Promise |
| `mapComponentController.animateCamera()` | 相机动画 | Promise |
| `mapComponentController.setMyLocationEnabled()` | 开启定位 | void |
| `map.convertCoordinate()` | 坐标转换 | Promise\<mapCommon.LatLng\> |
| `map.newLatLng()` | 创建CameraUpdate | CameraUpdate |

## 经验攻略(Exemplar Playbook)

| 用户输入 | 调用能力 | 要点(隐含推理)                         |
|---------|---------|----------------------------------|
| 在地图上显示北京大学 | addMarker | "显示某地"→创建标记;必须先获取北京大学真实坐标        |
| 显示我的位置 | setMyLocationEnabled | "我的位置"→开启定位→获取当前位置→转换坐标→设置位置     |
| 在地图上标注方圆1公里 | addCircle | "方圆X公里"→圆形覆盖物;需先获取中心点坐标          |
| 移动镜头到国贸位置 | animateCamera | "移动到"→获取目标坐标→创建CameraUpdate→执行动画 |
| 画一条从天安门到北京站的线 | addPolyline | "画线/路线"→获取起点终点坐标→创建折线覆盖物         |

## 操作规程(SOP)

以下链路**必须**严格按序执行,任何步骤不可跳过。

### SOP-1:创建地图标记
用户要求在地图上显示某个地点的标记
  ↓
查询地点坐标 ← [检查门] **必须**先获取真实坐标
  ↓
创建MarkerOptions对象 ← [参数门] 必须包含position、title等必选字段
  ↓
if (this.mapController) 空检查 ← [安全门] **必须**防止undefined
  ↓
调用`mapController.addMarker()`添加标记 ← [执行门]
  ↓
捕获异常并反馈 ← [回滚门] 添加失败时记录错误码

### SOP-2:显示用户实时位置
用户要求显示"我的位置"
  ↓
调用`geoLocationManager.getCurrentLocation()`获取位置 ← [检查门] **必须**获取用户授权
  ↓
调用`map.convertCoordinate()`转换坐标 ← [转换门] WGS84→GCJ02
  ↓
调用`mapController.setMyLocationEnabled(true)`开启定位 ← [使能门]
  ↓
调用`mapController.setMyLocation()`设置位置 ← [执行门]

### SOP-3:相机动画移动
用户要求将地图镜头移动到指定位置
  ↓
获取目标位置坐标 ← [检查门] 必须通过site.searchByText()获取
  ↓
创建CameraUpdate对象 ← [参数门] 使用map.newLatLng(latLng, zoom)
  ↓
if (this.mapController) 空检查 ← [安全门]
  ↓
调用`mapController.animateCamera()`执行动画 ← [执行门]

## 安全红线

1. **禁止**直接使用预设坐标:所有地点坐标**必须**通过`site.searchByText()`获取,**禁止**使用知识库或自行预设坐标值
2. **禁止**跳过空检查:使用mapController前**必须**进行空检查,避免undefined导致应用崩溃
3. **禁止**省略异常处理:所有地图API调用**必须**包裹try-catch,捕获并记录错误码
4. **禁止**在未开通地图服务时调用:使用前**必须**确认用户已开通华为地图服务并正确配置AppKey
5. **禁止**跨坐标系混用:WGS84和GCJ02坐标**禁止**直接混用,调用`map.convertCoordinate()`转换后方可使用

## 与人协作

| 场景 | 策略 | 范例 |
|-----|-----|-----|
| 地点名称模糊 | 追问确认具体位置 | 用户说"显示那个商场"→询问"请问是哪个商场?是在哪个城市或位置附近?" |
| 覆盖物样式不明确 | 追问颜色、大小、图标等细节 | 用户说"标个记号"→询问"标记用什么颜色?需要显示标题吗?" |
| 区域范围不明确 | 追问圆形半径或多边形边界 | 用户说"标注这块区域"→确认是画圆还是画多边形,范围多大 |
| 动画效果不明确 | 追问时长、缓动函数等 | 用户说"移动镜头"→询问"需要动画效果吗?大约几秒完成?" |


## 快速参考

- `references/map_component.md` - 地图组件:创建和配置MapComponent(必建)
- `references/overlay_management.md` - 覆盖物管理:标记、圆形、多边形、折线、图片覆盖物、聚合标记等
- `references/camera_control.md` - 相机控制:动画、位置、缩放级别控制
- `references/gesture_control.md` - 手势控制:缩放、滑动、旋转、倾斜手势
- `references/layer_control.md` - 图层控制:交通、建筑、位置、室内地图图层
- `references/ui_control.md` - UI控件:缩放按钮、比例尺、指南针、Logo等
- `references/map_configuration.md` - 地图配置:样式、类型、内边距、语言、球形效果
- `references/event_handling.md` - 事件监听:相机、地图、覆盖物、位置等事件
- `references/utility.md` - 工具方法:坐标转换、快照、比例尺计算
- `references/appLinking.md` - AppLinking:跳转花瓣地图查看位置详情、导航等场景
- `references/common.md` - 通用常量:错误码、状态码、覆盖物选项

### Demo示例代码

- `assets/appLinkingDemo.md` - AppLinking示例
- `assets/mapComponentDemo.md` - 地图组件示例
- `assets/overlayManagementDemo.md` - 覆盖物管理示例
- `assets/cameraControlDemo.md` - 相机控制示例
- `assets/gestureControlDemo.md` - 手势控制示例
- `assets/layerControlDemo.md` - 图层控制示例
- `assets/uiControlDemo.md` - UI控件示例
- `assets/mapConfigurationDemo.md` - 地图配置示例
- `assets/eventHandlingDemo.md` - 事件监听示例
- `assets/utilityDemo.md` - 工具方法示例

Files in this skill

  • SKILL.md7.2 KB
  • assets/appLinkingDemo.md3.4 KB
  • assets/cameraControlDemo.md5 KB
  • assets/eventHandlingDemo.md4.7 KB
  • assets/gestureControlDemo.md1.8 KB
  • assets/layerControlDemo.md3.3 KB
  • assets/mapComponentDemo.md3.1 KB
  • assets/mapConfigurationDemo.md3.1 KB
  • assets/overlayManagementDemo.md7.9 KB
  • assets/uiControlDemo.md2.7 KB
  • assets/utilityDemo.md3.3 KB
  • references/appLinking.md6.2 KB
  • references/camera_control.md4.7 KB
  • references/common.md2.8 KB
  • references/event_handling.md3.3 KB
  • references/gesture_control.md1.5 KB
  • references/layer_control.md3.2 KB
  • references/map_component.md15.1 KB
  • references/map_configuration.md3.5 KB
  • references/overlay_management.md13.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…