这是一个台风图标的形成方法,使用后会如上图,那肯定有小伙伴问为啥要用这么复杂的方式去实现呢,不可以用一张图片吗,我想说的是这样的台风我们能掌控他的一切数据,例如大小矢量等等
computeCirclularFlight(lon, lat, radius, fx, angle) { //传入 经纬度 半径 从多少度开始 绘制多少度结束
let Ea = 6378137; // 赤道半径
let Eb = 6356725; // 极半径
let positionArr = [[lon, lat]];
//需求正北是0° cesium正东是0°
for (let i = fx; i <= fx + angle; i++) {
let dx = radius * Math.sin((i * Math.PI) / 180.0);
let dy = radius * Math.cos((i * Math.PI) / 180.0);
let ec = Eb + ((Ea - Eb) * (90.0 - lat)) / 90.0;
let ed = ec * Math.cos((lat * Math.PI) / 180);
let BJD = lon + ((dx / ed) * 180.0) / Math.PI;
let BWD = lat + ((dy / ec) * 180.0) / Math.PI;
positionArr.push([BJD, BWD]);
}
return positionArr;
},
//positionArr就是算后的坐标数组