"use script"; //开发环境建议开启严格模式 //系统 功能入口 function addWindLayer(item) { $.getJSON("data/getWindParametersByTime.json", { datatype: mars3d.global_variables.queryDataType, datatime: mars3d.global_variables.queryDataTStart }, (result) => { console.log(result); var layer_wind = new mars3d.layer.CanvasWindLayer({ id: item.id, pid: item.pid, name: item.name, color: item.color, frameRate: 20, //每秒刷新次数 speedRate: 60, //风前进速率 particlesNumber: 1000, maxAge: 60, lineWidth: 1, reverseY: true }); layer_wind.show = item.show; map.addLayer(layer_wind); layer_wind.data = convertWindData(result.data); }); } function convertWindData(arr) { var arrU = []; var arrV = []; var xmin = arr[0].x; var xmax = arr[0].x; var ymin = arr[0].y; var ymax = arr[0].y; // 风向是以y轴正方向为零度顺时针转,0度表示北风。90度表示东风。 // u表示经度方向上的风,u为正,表示西风,从西边吹来的风。 // v表示纬度方向上的风,v为正,表示南风,从南边吹来的风。 for (let i = 0, len = arr.length; i < len; i++) { const item = arr[i]; if (xmin > item.x) { xmin = item.x; } if (xmax < item.x) { xmax = item.x; } if (ymin > item.y) { ymin = item.y; } if (ymax < item.y) { ymax = item.y; } var u = mars3d.WindUtil.getU(item.speed, item.dir); arrU.push(u); var v = mars3d.WindUtil.getV(item.speed, item.dir); arrV.push(v); } var rows = getKeyNumCount(arr, "y"); //计算 行数 var cols = getKeyNumCount(arr, "x"); //计算 列数 return { xmin: xmin, xmax: xmax, ymax: ymax, ymin: ymin, rows: rows, cols: cols, udata: arrU, //横向风速 vdata: arrV, //纵向风速 }; } function getKeyNumCount(arr, key) { var obj = {}; arr.forEach((item) => { obj[item[key]] = true; }); var count = 0; for (let col in obj) { count++; } return count; } function addTDTAnnoLayer() { Img_annoTileLayer = new mars3d.layer.TdtLayer({ name: "影像注记", layer: "img_z", key: mars3d.Token.tiandituArr, }); Img_annoTileLayer.show = false; Img_annoTileLayer.pid = 50; map.addLayer(Img_annoTileLayer); Vec_annoTileLayer = new mars3d.layer.TdtLayer({ name: "矢量图注记", layer: "vec_z", key: mars3d.Token.tiandituArr, }); Vec_annoTileLayer.show = false; Vec_annoTileLayer.pid = 50; map.addLayer(Vec_annoTileLayer); } function addTmpHighlightGraphicLayer() { mars3d.global_variables.tmpHighlightGraphicLayer = new mars3d.layer.GraphicLayer({ name: "临时高亮图层", pid: 50, //图层管理 中使用,父节点id noCenter: true, popup: "all", show: true }); map.addLayer(mars3d.global_variables.tmpHighlightGraphicLayer); } function addMaskShanghai() { //geojson 合肥边界线 geoJsonLayer = new mars3d.layer.GeoJsonLayer({ url: "//data.mars3d.cn/file/geojson/areas/340100.json", mask: true, //标识为遮罩层【重点参数】 symbol: { styleOptions: { fill: true, color: "rgb(2,26,79)", opacity: 0.9, outline: false, outlineColor: "#39E09B", outlineWidth: 8, outlineOpacity: 0.8, arcType: Cesium.ArcType.GEODESIC, clampToGround: true, }, }, }); }