| | |
| | | var layer_1006_roadsection; |
| | | var layer_1007_jiedao; |
| | | |
| | | var layer_wind; |
| | | |
| | | |
| | | function getDefaultDateTime() { |
| | |
| | | |
| | | addRoadLayer(); |
| | | |
| | | addWindLayer(); |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | function addWindLayer(dataTime) { |
| | | |
| | | //显示高校点 |
| | | //getWindParametersByTime(dataTime){ |
| | | $.getJSON("http://127.0.0.1:800/shanghai/data/getWindParametersByTime.json", { datatime: '2021-09-08 10:00:00' }, (result) => { |
| | | |
| | | layer_wind = new mars3d.layer.CanvasWindLayer({ |
| | | id:2001, |
| | | pid:99, |
| | | name: "实时风场", |
| | | color: "#ffffff", //颜色 |
| | | frameRate: 20, //每秒刷新次数 |
| | | speedRate: 60, //风前进速率 |
| | | particlesNumber: 1000, |
| | | maxAge: 60, |
| | | lineWidth: 1, |
| | | reverseY: true |
| | | }); |
| | | layer_wind.show = false; |
| | | 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 showDetail(layerid,itemCode){ |