文档管理中心
我的

您当前正在浏览新版开发者文档中心,目录分类和层级有所调整。点击左侧当前文档分类名称前的“☰”图标,可切换文档分类。 了解新版目录

指南与API参考指南应用服务Map Kit(地图服务)在地图上绘制圆形

圆形

场景介绍

本章节将向您介绍如何在地图上绘制圆形。

圆形通常用于表示特定区域的服务覆盖范围、地理围栏或兴趣点的影响区域。通过设置中心点和半径,可以直观地展示某一地点周边一定距离内的范围。

接口说明

添加圆形功能主要由MapCircleOptions、addCircle和MapCircle提供,更多接口及使用方法请参见接口文档。

展开
接口名 描述
MapCircleOptions 圆形参数。
addCircle(options: mapCommon.MapCircleOptions): Promise<MapCircle> 在地图上添加一个圆,指定圆心经纬度和圆的半径,用于表示某个位置的周边范围。
MapCircle 圆形,支持更新和查询相关属性。

开发步骤

  1. 导入相关模块。

    收起
    自动换行
    深色代码主题
    复制
    1. import { MapComponent, mapCommon, map } from '@kit.MapKit';
    2. import { AsyncCallback } from '@kit.BasicServicesKit';
  2. 添加圆,在callback方法中创建初始化参数并新建Circle。

    收起
    自动换行
    深色代码主题
    复制
    1. @Entry
    2. @Component
    3. struct MapCircleDemo {
    4. private mapOptions?: mapCommon.MapOptions;
    5. private mapController?: map.MapComponentController;
    6. private callback?: AsyncCallback<map.MapComponentController>;
    7. private mapCircle?: map.MapCircle;
    8. aboutToAppear(): void {
    9. // 地图初始化参数
    10. this.mapOptions = {
    11. position: {
    12. target: {
    13. latitude: 39.918,
    14. longitude: 116.397
    15. },
    16. zoom: 14
    17. }
    18. };
    19. this.callback = async (err, mapController) => {
    20. if (!err) {
    21. this.mapController = mapController;
    22. // Circle初始化参数
    23. let mapCircleOptions: mapCommon.MapCircleOptions = {
    24. center: {
    25. latitude: 39.918,
    26. longitude: 116.397
    27. },
    28. radius: 500,
    29. clickable: true,
    30. fillColor: 0xFFFFC100,
    31. strokeColor: 0xFFFF0000,
    32. strokeWidth: 10,
    33. visible: true,
    34. zIndex: 15
    35. }
    36. // 创建Circle
    37. try {
    38. this.mapCircle = await this.mapController.addCircle(mapCircleOptions);
    39. } catch (e) {
    40. console.error(`Failed to create the mapCircle, code is:${e.code}, message is ${e.message}`);
    41. }
    42. } else {
    43. console.error(`Failed to initialize the map, code is:${err.code}, message is ${err.message}`);
    44. }
    45. };
    46. }
    47. build() {
    48. Stack() {
    49. Column() {
    50. MapComponent({ mapOptions: this.mapOptions, mapCallback: this.callback });
    51. }.width('100%')
    52. }.height('100%')
    53. }
    54. }