HarmonyOS Map kit绘制多边形是否支持传一个顶点的经纬度,其他顶点传入相对的x,y坐标

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fox280

在地图添加多边形,参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/map-map-V5#section1825517119280

绘制多边形只能支持传入经纬度,参考链接: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/map-common-V5#section1615694815308

由于多边形是根据经纬度绘制的,会随着经纬度的变化而变化,可以参考如下demo:

import { MapComponent, mapCommon, map } from '@kit.MapKit';
import { AsyncCallback } from '@kit.BasicServicesKit';

@Entry
@Component
struct HuaweiMapDemo {
  private TAG = "HuaweiMapDemo";
  private mapOption?: mapCommon.MapOptions;
  private callback?: AsyncCallback<map.MapComponentController>;
  private mapController?: map.MapComponentController;

  aboutToAppear(): void {
    // 地图初始化参数,设置地图中心点坐标及层级
    this.mapOption = {
      position: {
        target: {
          latitude: 39.9,
          longitude: 116.4
        },
        zoom: 10
      }
    };

    // 地图初始化的回调
    this.callback = async (err, mapController) => {
      if (!err) {
        // 获取地图的控制器类,用来操作地图
        this.mapController = mapController;
        this.mapController.on("mapLoad", () => {
          console.info(this.TAG, `on-mapLoad`);
        });

        // 执行自定义的方法
        this.customizedMethod();
      }
    };
  }

  // 自定义的方法
  private customizedMethod() {
    // ...
  }

  build() {
    Column() {

      // 调用MapComponent组件初始化地图
      MapComponent({ mapOptions: this.mapOption, mapCallback: this.callback }).width('100%').height('80%');

      Button("绘制多边形").onClick(()=>{
        // 初始化参数
        let polygonOptions: mapCommon.MapPolygonOptions = {
          // 多边形坐标点,必传
          points: [{ latitude: 39.9, longitude: 116.4 },
            {latitude: 40, longitude: 117 },
            { latitude: 42, longitude: 118 },
          ],
          clickable: true,
          geodesic: false,
          strokeColor: 0xff000000,
          jointType: mapCommon.JointType.DEFAULT,
          strokeWidth: 10,
          visible: true,
          zIndex: 10
        };
        this.mapController?.addPolygon(polygonOptions);
      })
    }.height('100%')
  }
}
分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS 坐标经纬度转换
316浏览 • 1回复 待解决
HarmonyOS map kit 获取地图中心经纬度
87浏览 • 1回复 待解决
HarmonyOS 有关经纬度问题
63浏览 • 1回复 待解决
如何获取经纬度示例代码
1043浏览 • 1回复 待解决
是否可以申明一个静态map并使用?
199浏览 • 1回复 待解决
HarmonyOS如何获取inputTextXY
524浏览 • 1回复 待解决