leaflet 绘制台风风圈
效果如下图所示:

代码实现 台风的计算方法(只写了一个台风轮廓的添加,多个可自行循环天机)
getTF(lat, ne, se, sw, nw) {const TF = {longitude: 144.9,latitude: 26.2,radius7_quad: { ne: 350, se: 300, sw: 150, nw: 280 }}// 求出方位半径方向上弧形经纬度const getPoints = (center, cradius, startAngle) => {let radius = cradius / 90let pointNum = 90let endAngle = startAngle + 90let points = []let sinlet coslet xlet ylet anglefor (var i = 0; i <= pointNum; i++) {angle = startAngle + (endAngle - startAngle) * i/ pointNum;sin = Math.sin(angle * Math.PI / 180);cos = Math.cos(angle * Math.PI / 180);x = center[0] + radius * sin;y = center[1] + radius * cos;points.push([x, y]);}return points}let r7Ne = getPoints(lat, ne, 0)let r7Nw = getPoints(lat, nw, 90)let r7Sw = getPoints(lat, sw, 180)let r7Se = getPoints(lat, se, 270)return [...r7Ne, ...r7Nw, ...r7Sw, ...r7Se]}
调用:
var kk = this.getTF([26.2,144.9],148.4, 28.3, 995, 20);//台风添加L.polygon(kk,{fillColor: this.getTfColor(index),fillOpacity: .3,color: this.getTfColor(index),weight: 1.5}).addTo(map);
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
