From ed0cb1e53f0f26fb31f0b9f5fded71d9e924796b Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期三, 08 九月 2021 11:03:12 +0800
Subject: [PATCH] add wind layer

---
 js/function.js |  149 ++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 120 insertions(+), 29 deletions(-)

diff --git a/js/function.js b/js/function.js
index cd06289..79a16f4 100644
--- a/js/function.js
+++ b/js/function.js
@@ -20,6 +20,7 @@
 var layer_1006_roadsection;
 var layer_1007_jiedao;
 
+var layer_wind;
 
 
 function getDefaultDateTime() {
@@ -82,8 +83,8 @@
       "<br />鍔炲灞傛锛�" +
       item["鍔炲灞傛"] +
       "<br />鐜嬬墝涓撲笟锛�" +
-      item["鐜嬬墝涓撲笟"]+
-      "<br /><br /><p><a href='#' onclick='javascript:showDetail(1001,\""+item["楂樻牎鍚嶇О"]+"\")' >璇︾粏淇℃伅</a></p>";
+      item["鐜嬬墝涓撲笟"] +
+      "<br /><br /><p><a href='#' onclick='javascript:showDetail(1001,\"" + item["楂樻牎鍚嶇О"] + "\")' >璇︾粏淇℃伅</a></p>";
     return html;
   });
 
@@ -162,27 +163,27 @@
 
 }
 
-function addMaskShanghai(){
+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,
+  //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,
+      },
     },
-  },
-});
-map.addLayer(geoJsonLayer);
+  });
+  map.addLayer(geoJsonLayer);
 
 }
 
@@ -202,27 +203,117 @@
 
   addRoadLayer();
 
+  addWindLayer();
+
 
 
 }
 
-function showDetail(layerid,itemCode){
-    haoutil.msg('鍗曞嚮浜嗭細'+layerid+','+itemCode);
+function addWindLayer(dataTime) {
 
-    if (mars3d.widget.isActivate("widgetsTS/qyDetailsView/widget.js")){
+  //鏄剧ず楂樻牎鐐�
+  //getWindParametersByTime(dataTime){
+  $.getJSON("http://127.0.0.1:800/shanghai/data/getWindParametersByTime.json", { datatime: '2021-09-08 10:00:00' }, (result) => {
 
-      var detailWiget = mars3d.widget.getClass("widgetsTS/qyDetailsView/widget.js");
+    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) {
+  haoutil.msg('鍗曞嚮浜嗭細' + layerid + ',' + itemCode);
+
+  if (mars3d.widget.isActivate("widgetsTS/qyDetailsView/widget.js")) {
+
+    var detailWiget = mars3d.widget.getClass("widgetsTS/qyDetailsView/widget.js");
 
 
-      detailWiget.showSPJK();
+    detailWiget.showSPJK();
 
-    }else{
-   
+  } else {
+
     mars3d.widget.activate({
       uri: "widgetsTS/qyDetailsView/widget.js",
       dataQy: itemCode,
     });
-       
+
   }
 
 }
\ No newline at end of file

--
Gitblit v1.9.1