问题描述:
view.open({optopns}) , popup没生效,打印visible也是false。
this.view.popup.open({
title: "获取经纬度:",
location: e.mapPoint,
});
this.view.popup.content = this.setContentInfo([
e.mapPoint.longitude,
e.mapPoint.latitude,
]);
...
解决方案:
在添加点击事件之前添加
this.view.popup.autoOpenEnabled = false;
问题描述:
移除绑定的事件
解决方案:
添加点击事件
this.mapClick = this.view.on("click",(e)=>{
...
})
if(...){
this.mapClick.remove();
}
问题描述:
根据经纬度获取两点之间的距离
解决方案:
class CalulateTwoLanLon {
static EARTH_RADIUS = 6378.137;
constructor([[lat1, lng1], [lat2, lng2]]) {
let radLat1 = CalulateTwoLanLon.rad(lat1)
let radLat2 = CalulateTwoLanLon.rad(lat2)
let a = CalulateTwoLanLon.rad(lat1) - CalulateTwoLanLon.rad(lat2)
let b = CalulateTwoLanLon.rad(lng1) - CalulateTwoLanLon.rad(lng2)
let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)))
s = s * CalulateTwoLanLon.EARTH_RADIUS
this.s = s
}
static rad(d) {
return d * Math.PI / 180;
}
getRes() {
return this.s
}
}