您当前正在浏览新版开发者文档中心,目录分类和层级有所调整。点击左侧当前文档分类名称前的“☰”图标,可切换文档分类。 了解新版目录
本章节将向您介绍如何在地图上绘制圆形。
圆形通常用于表示特定区域的服务覆盖范围、地理围栏或兴趣点的影响区域。通过设置中心点和半径,可以直观地展示某一地点周边一定距离内的范围。

添加圆形功能主要由MapCircleOptions、addCircle和MapCircle提供,更多接口及使用方法请参见接口文档。
| 接口名 | 描述 |
|---|---|
| MapCircleOptions | 圆形参数。 |
| addCircle(options: mapCommon.MapCircleOptions): Promise<MapCircle> | 在地图上添加一个圆,指定圆心经纬度和圆的半径,用于表示某个位置的周边范围。 |
| MapCircle | 圆形,支持更新和查询相关属性。 |
导入相关模块。
- import { MapComponent, mapCommon, map } from '@kit.MapKit';
- import { AsyncCallback } from '@kit.BasicServicesKit';
添加圆,在callback方法中创建初始化参数并新建Circle。
- @Entry
- @Component
- struct MapCircleDemo {
- private mapOptions?: mapCommon.MapOptions;
- private mapController?: map.MapComponentController;
- private callback?: AsyncCallback<map.MapComponentController>;
- private mapCircle?: map.MapCircle;
-
- aboutToAppear(): void {
- // 地图初始化参数
- this.mapOptions = {
- position: {
- target: {
- latitude: 39.918,
- longitude: 116.397
- },
- zoom: 14
- }
- };
-
- this.callback = async (err, mapController) => {
- if (!err) {
- this.mapController = mapController;
- // Circle初始化参数
- let mapCircleOptions: mapCommon.MapCircleOptions = {
- center: {
- latitude: 39.918,
- longitude: 116.397
- },
- radius: 500,
- clickable: true,
- fillColor: 0xFFFFC100,
- strokeColor: 0xFFFF0000,
- strokeWidth: 10,
- visible: true,
- zIndex: 15
- }
- // 创建Circle
- try {
- this.mapCircle = await this.mapController.addCircle(mapCircleOptions);
- } catch (e) {
- console.error(`Failed to create the mapCircle, code is:${e.code}, message is ${e.message}`);
- }
- } else {
- console.error(`Failed to initialize the map, code is:${err.code}, message is ${err.message}`);
- }
- };
- }
-
- build() {
- Stack() {
- Column() {
- MapComponent({ mapOptions: this.mapOptions, mapCallback: this.callback });
- }.width('100%')
- }.height('100%')
- }
- }
