场景介绍
本章节将向您介绍如何在地图上绘制多边形。
接口说明
添加多边形功能主要由MapPolygonOptions、addPolygon和MapPolygon提供,更多接口及使用方法请参见接口文档。
接口名 | 描述 |
---|---|
MapPolygonOptions | 用于描述MapPolygon属性。 |
addPolygon(options: mapCommon.MapPolygonOptions): Promise<MapPolygon> | 在地图上添加一个多边形。 |
MapPolygon | 更新和查询多边形的接口。 |
开发步骤
- 导入相关模块。
import { MapComponent, mapCommon, map } from '@kit.MapKit'; import { AsyncCallback } from '@kit.BasicServicesKit';
- 添加多边形,在Callback方法中创建初始化参数并新建polygon,效果如下图。
@Entry @Component struct MapPolygonDemo { private mapOptions?: mapCommon.MapOptions; private mapController?: map.MapComponentController; private callback?: AsyncCallback<map.MapComponentController>; private mapPolygon?: map.MapPolygon; aboutToAppear(): void { // 地图初始化参数 this.mapOptions = { position: { target: { latitude: 31.98, longitude: 118.78 }, zoom: 14 } }; this.callback = async (err, mapController) => { if (!err) { this.mapController = mapController; // 多边形初始化参数 let polygonOptions: mapCommon.MapPolygonOptions = { points: [{longitude:118.78,latitude:31.975}, {longitude:118.78,latitude:31.985}, {longitude:118.79,latitude:31.985},{longitude:118.79,latitude:31.975}], clickable: true, fillColor: 0xff00DE00, geodesic: false, strokeColor: 0xff000000, jointType: mapCommon.JointType.DEFAULT, strokeWidth: 10, visible: true, zIndex: 10 } // 创建多边形 this.mapPolygon = await this.mapController.addPolygon(polygonOptions); } }; } build() { Stack() { Column() { MapComponent({ mapOptions: this.mapOptions, mapCallback: this.callback }); }.width('100%') }.height('100%') } }