HarmonyOS 鸿蒙Next Map kit上绘制多边形是否支持传一个顶点的经纬度 其他顶点传入相对的x y坐标
HarmonyOS 鸿蒙Next Map kit上绘制多边形是否支持传一个顶点的经纬度 其他顶点传入相对的x y坐标
在地图添加多边形,参考链接: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%')
}
}
更多关于HarmonyOS 鸿蒙Next Map kit上绘制多边形是否支持传一个顶点的经纬度 其他顶点传入相对的x y坐标的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙系统的Next Map Kit中,绘制多边形(Polygon)的功能通常要求所有顶点都使用相同的坐标系,即要么全部使用经纬度坐标(地理坐标系),要么全部使用相对或绝对的屏幕坐标(投影坐标系)。直接混合使用经纬度坐标和相对x、y坐标来定义多边形的顶点是不被支持的。
Next Map Kit的API设计通常要求所有顶点坐标一致,以确保地图渲染的准确性和一致性。如果需要绘制多边形,并且部分顶点位置是相对于某个已知点的偏移,你需要先将这个偏移转换为对应的经纬度坐标,或者如果所有顶点都可以接受屏幕坐标,那么需要先将所有经纬度转换为屏幕坐标。
这种转换通常涉及到地图的投影和地理坐标系的转换,可能需要使用到Map Kit提供的坐标转换工具或API。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。在那里,你可以获得更专业的技术支持和帮助,以解决在HarmonyOS鸿蒙Next Map Kit上遇到的具体问题。