From 164092e1011b2978d641249e0d930b94ec3943b5 Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期一, 27 九月 2021 09:27:03 +0800
Subject: [PATCH] getDefaultDateTime

---
 js/function.js                     |  396 +---------------------------
 data/getLayerListByUserid.json     |   16 +
 widgetsTS/dataTime/widget.js       |    8 
 js/function_wind.js                |  131 +++++++++
 widgets/manageLayers_style/view.js |    4 
 js/function_1001.js                |  120 ++++++++
 js/function_1004.js                |  122 ++++++++
 index.html                         |    3 
 8 files changed, 416 insertions(+), 384 deletions(-)

diff --git a/data/getLayerListByUserid.json b/data/getLayerListByUserid.json
index a04539d..7f14744 100644
--- a/data/getLayerListByUserid.json
+++ b/data/getLayerListByUserid.json
@@ -7,6 +7,7 @@
             "type": "graphic",
             "geoname_prefix":"",
             "style_prefix":"",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no2", "co"],
             "show":true
 
@@ -18,6 +19,7 @@
             "type": "wms",
             "geoname_prefix":"vis_weizhan_",
             "style_prefix":"point_weizhan_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -28,6 +30,7 @@
             "type": "wms",
             "geoname_prefix":"vis_jiance_",
             "style_prefix":"point_jiance_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -38,6 +41,7 @@
             "type": "taxi",
             "geoname_prefix":"",
             "style_prefix":"",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -48,6 +52,7 @@
             "type": "wms",
             "geoname_prefix":"vis_roadsection_",
             "style_prefix":"polyline_road_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -58,6 +63,7 @@
             "type": "wms",
             "geoname_prefix":"vis_region_100600_",
             "style_prefix":"polygon_region_",
+            "style_selected":"pm10",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -68,6 +74,7 @@
             "type": "wms",
             "geoname_prefix":"vis_region_100601_",
             "style_prefix":"polygon_region_",
+            "style_selected":"pm10",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -78,6 +85,7 @@
             "type": "wms",
             "geoname_prefix":"vis_region_100602_",
             "style_prefix":"polygon_region_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -88,6 +96,7 @@
             "type": "wms",
             "geoname_prefix":"vis_region_100603_",
             "style_prefix":"polygon_region_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -98,6 +107,7 @@
             "type": "wms",
             "geoname_prefix":"vis_region_100604_",
             "style_prefix":"polygon_region_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -108,6 +118,7 @@
             "type": "wms",
             "geoname_prefix":"vis_region_100605_",
             "style_prefix":"polygon_region_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -118,6 +129,7 @@
             "type": "wms",
             "geoname_prefix":"vis_region_100607_",
             "style_prefix":"polygon_region_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -128,6 +140,7 @@
             "type": "wms",
             "geoname_prefix":"vis_region_100610_",
             "style_prefix":"polygon_region_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -138,6 +151,7 @@
             "type": "wms",
             "geoname_prefix":"vis_region_100611_",
             "style_prefix":"polygon_region_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -148,6 +162,7 @@
             "type": "wms",
             "geoname_prefix":"vis_grid1000_",
             "style_prefix":"vis_grid100_1000_5000_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
@@ -158,6 +173,7 @@
             "type": "wms",
             "geoname_prefix":"vis_grid5000_",
             "style_prefix":"vis_grid100_1000_5000_",
+            "style_selected":"pm25",
             "styleoptions": ["pm25", "pm10", "no", "no2", "nox", "co"],
             "show":false
         },
diff --git a/index.html b/index.html
index 78dbe42..91ef846 100644
--- a/index.html
+++ b/index.html
@@ -44,6 +44,9 @@
     <div id="mask" class="signmask"></div>
 
     <!--涓氬姟浠g爜-->
+    <script src="js/function_1001.js"></script>
+    <script src="js/function_1004.js"></script>
+    <script src="js/function_wind.js"></script>
     <script src="js/function.js"></script>
     <script src="js/server.js"></script>
     <script src="js/index.js?time=20210803"></script>
diff --git a/js/function.js b/js/function.js
index 6bb5031..440288f 100644
--- a/js/function.js
+++ b/js/function.js
@@ -44,14 +44,8 @@
 mars3d.global_variables = { geoserver_url_predix: 'http://58.246.27.194:7011/', nodejs_url_predix: 'http://58.246.27.194:7012/', userid: 2, queryDataType: 'hour' };
 mars3d.global_variables.queryDataTStart = getDefaultDateTime();
 mars3d.global_variables.queryDataTStartGeo = getDefaultDateTimeGeo();
-
 mars3d.global_variables.queryDataTEnd = getDefaultDateTimeEnd();
 
-var guokong_color_list = ['#0EE839', '#FEFE23', '#FD9D00', '#F70F0D', '#8A0B73', '#88041E'];
-var guokong_color_nodata = '#C0C0C0';
-var guokong_qindex_list = { 'pm25': [35, 75, 115, 150, 250], 'pm10': [50, 150, 250, 350, 420], 'no2': [100, 200, 700, 1200, 2340], 'co': [5, 10, 35, 60, 90] };
-var guokong_data_list;
-var taxi_data_list;
 
 
 function initLayersByUserid() {
@@ -88,7 +82,7 @@
     layers: "konglu_58:" + item.geoname_prefix + mars3d.global_variables.queryDataType,
     crs: "EPSG:4326",
     parameters: {
-      "styles": item.style_prefix + item.styleoptions[0],
+      "styles": item.style_prefix + item.style_selected,
       "transparent": "true",
       "format": "image/png",
       "viewparams": "userid:" + mars3d.global_variables.userid + ";datatime:" + mars3d.global_variables.queryDataTStartGeo
@@ -114,6 +108,7 @@
     show: item.show,
     geoname_prefix: item.geoname_prefix,
     style_prefix: item.style_prefix,
+    style_selected:item.style_selected,
     style_options: item.styleoptions,
     flyTo: false
   });
@@ -121,364 +116,29 @@
   //鍗曞嚮浜嬩欢
   wmsLyer.on(mars3d.EventType.click, function (event) {
     console.log("鍗曞嚮浜嗙煝閲忔暟鎹紝鍏�" + event.features.length + "鏉�", event);
+    console.log(event.layer.options.style_selected);
+
+
+    console.log(event.graphic);
+    /*
+    event.graphic.style.diffHeight = 
+
+      diffHeight: 300,
+      material: mars3d.MaterialUtil.createMaterial(mars3d.MaterialType.LineFlow, {
+        image: "img/textures/fence.png",
+        color: "#ffff00",
+        speed: 10, //閫熷害锛屽缓璁彇鍊艰寖鍥�1-100
+        axisY: true,
+      }),
+      */
   });
 
   map.addLayer(wmsLyer);
 
 }
-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,
-      },
-    },
-  });
-}
-
-function addGuokongLayerDIV(item) {
-
-  var guokongLayer = new mars3d.layer.DivLayer({
-    id: item.id,
-    pid: item.pid, //鍥惧眰绠$悊 涓娇鐢紝鐖惰妭鐐筰d
-    name: item.name,
-    style_selected: 'pm25',
-    style_options: item.styleoptions,
-    show: item.show
-  });
-  map.addLayer(guokongLayer);
-
-  guokongLayer.on(mars3d.EventType.click, function (event) {
-    console.log("鐩戝惉layer锛屽崟鍑讳簡鐭㈤噺瀵硅薄", event);
-    console.log(event.graphic?.attr)
-    var item = event.graphic?.attr;
-    //haoutil.msg('鍗曞嚮浜嗭細' + item['楂樻牎鍚嶇О'])
-  });
-
-  guokongLayer.bindPopup(function (event) {
-    let item = event.graphic?.attr;
-    //console.log(item);
-    var html =
-      "绔欑偣缂栧彿锛�" +
-      item["code"] +
-      "<br />绔欑偣鍚嶇О锛�" +
-      item["name"] +
-      "<br />鏁版嵁鏃堕棿锛�" +
-      item["datatime"] +
-      "<br />PM2.5:" +
-      item["PM25"] + "ug/m3" +
-      "<br />PM10:" +
-      item["PM10"] + "ug/m3" +
-      "<br />NO2:" +
-      item["NO2"] + "ug/m3" +
-      "<br />CO:" +
-      item["CO"] + "ug/m3" +
-      "<br />SO2:" +
-      item["SO2"] + "ug/m3" +
-      "<br /><br /><p><a href='#' onclick='javascript:showDetail(1001,\"" + item["code"] + "\")' >璇︾粏淇℃伅</a></p>";
-    return html;
-  });
-
-  guokongLayer.changeColor = function () {
-
-    guokongLayer.clear(true);
-
-    addResutToLayer(this, guokong_data_list);
-
-  }
-  // add 鍥芥帶鐐�
-  addGuokongPointToLayer(guokongLayer);
-
-}
-
-function addGuokongPointToLayer(tmplayer) {
-
-  $.getJSON(mars3d.global_variables.nodejs_url_predix + "dataapi/Bdata?bid=get_1001_list&datatype=" + mars3d.global_variables.queryDataType + "&datatime=" + mars3d.global_variables.queryDataTStart + "&qindex=pm25&pageno=1&pagesize=1000", (result) => {
-
-    guokong_data_list = result.data.result;
-
-    addResutToLayer(tmplayer, result.data.result);
-
-  });
-
-}
-
-function addResutToLayer(tmplayer, items) {
-
-  for (var i = 0, len = items.length; i < len; i++) {
-    var item = items[i];
-    var jd = item.lon;
-    var wd = item.lat;
-    var clr = getGuokongPointColor(tmplayer.options.style_selected, item[(tmplayer.options.style_selected).toUpperCase()]);
-    var graphic = new mars3d.graphic.DivLightPoint({
-      position: Cesium.Cartesian3.fromDegrees(jd, wd),
-      style: {
-        color: clr,
-        heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
-        highlight: {
-          type: "divLightPoint",
-          diffHeight: 600,
-          material: mars3d.MaterialUtil.createMaterialProperty(mars3d.MaterialType.CircleWave, {
-            color: clr,
-            count: 3,
-            speed: 20,
-          }),
-        },
-        distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000), //鎸夎璺濊窛绂绘樉绀�
-      },
-      show: true,
-      attr: item,
-    });
-    tmplayer.addGraphic(graphic);
-  }
-
-
-}
-
-
-function getGuokongPointColor(qindex, value) {
-
-  if (!value || value == null || value == 'null') {
-    return guokong_color_nodata;
-  }
-  for (var key in guokong_qindex_list) {
-    if (key == qindex) {
-      for (let i = guokong_qindex_list[key].length; i > -1; i--) {
-        if (value > guokong_qindex_list[key][i]) {
-          return guokong_color_list[i + 1];
-        }
-      }
-    }
-  }
-}
-
-function getIndexByValue() {
-
-}
-
-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 addTaxiLayer(item) {
-
-  var taxi_layer = new mars3d.layer.GraphicLayer({
-    id: item.id,
-    name: item.name,
-    pid: item.pid, //鍥惧眰绠$悊 涓娇鐢紝鐖惰妭鐐筰d
-    center: { "lat": 30.62156, "lng": 121.44918, "alt": 48716, "heading": 359, "pitch": -40 },
-    noCenter: true,
-    noCenter: true,
-    show: true,
-    onWidget: "widgetsTS/taxi_layer_setting/widget.js",
-  });
-  map.addLayer(taxi_layer);
-
-  taxi_layer.on(mars3d.EventType.click, function (event) {
-    console.log("鐩戝惉layer锛屽崟鍑讳簡鐭㈤噺瀵硅薄", event);
-    var item = event.graphic?.attr;
-  });
-  taxi_layer.bindPopup(function (event) {
-    let item = event.graphic?.attr;
-    var html =
-      "<br/>绫诲瀷锛�&nbsp;" +
-        item["code"].substring(0, 2) == "BS" ? "鍏氦杞�" : "鍑虹杞�" +
-        "<br />杞﹁締缂栧彿锛�&nbsp;" +
-        item["code"] +
-        "<br/>鏁版嵁鏃堕棿锛�&nbsp;" +
-        item["datatime"] +
-        "<br />鐬椂杞﹂�燂細&nbsp;&nbsp;&nbsp;" +
-        item["speed"] + "&nbsp;(km/h)" +
-        "<br />绮夊皹PM2.5锛�&nbsp;" +
-        item["pm25"] + "&nbsp;(ug/m3)" +
-        "<br />绮夊皹PM10锛�&nbsp;&nbsp;" +
-        item["pm10"] + "&nbsp;(ug/m3)" +
-        "<br />NO娴撳害锛�&nbsp;&nbsp;&nbsp;" +
-        item["no"] + "&nbsp;(ug/m3)" +
-        "<br />NO2娴撳害锛�&nbsp;&nbsp;" +
-        item["no2"] + "&nbsp;(ug/m3)" +
-        "<br />NO+NO2娴撳害锛�&nbsp;" +
-        item["nox"] + "&nbsp;(ug/m3)" +
-        "<br />CO娴撳害鍊�:&nbsp;&nbsp;&nbsp;&nbsp;" +
-        item["co"] + "&nbsp;&nbsp;(mg/m3)" +
-        "<br /><br /><p><a href='#' onclick='javascript:showDetail(1001,\"" + item["code"] + "\")' ><span style='color:#ff00ff'>鍘嗗彶杞ㄨ抗鍥炴斁</span></a></p>";
-    return html;
-  });
-
-  getTaxiListByUserId(taxi_layer);
-}
-
-function getTaxiListByUserId(tmpLayer) {
-
-  setTaxiLayerMapClock();
-  $.getJSON(mars3d.global_variables.nodejs_url_predix + "dataapi/Bdata?bid=get_1004_list_by_userid&userid=" + mars3d.global_variables.userid, (result) => {
-    taxi_data_list = result.data.result;
-    for (var i = 0, len = result.data.result.length; i < len; i++) {
-      let item = result.data.result[i];
-      addTaxiPathToLayer(item, tmpLayer);
-    }
-  });
-
-}
-
-function setTaxiLayerMapClock() {
-  map.clock.shouldAnimate = true;
-  map.clock.startTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTStart));
-  map.clock.currentTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTStart));
-  map.clock.stopTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTEnd));
-  map.clock.multiplier = 5.0;
-  map.clock.clockRange = Cesium.ClockRange.LOOP_STOP;
-}
-function addTaxiPathToLayer(item, target_layer) {
-
-
-  $.getJSON(mars3d.global_variables.nodejs_url_predix + "dataapi/Bdata?bid=get_1004_single_path&siteid=" + item["code"], {
-    datatime1: mars3d.global_variables.queryDataTStart,
-    datatime2: mars3d.global_variables.queryDataTEnd
-  }, (result) => {
-
-    if (result.data.result.length > 0) {
-      var tmpPositionProperty = new Cesium.SampledPositionProperty();
-      for (var i = 0, len = result.data.result.length; i < len; i++) {
-        let item = result.data.result[i];
-        //console.log(item);
-        tmpPositionProperty.addSample(Cesium.JulianDate.fromDate(new Date(item["datatime"])), Cesium.Cartesian3.fromDegrees(item["lon"], item["lat"], 0.2))
-      }
-
-      let graphic = new mars3d.graphic.ModelEntity({
-        attr: result.data.result[0],
-        style: {
-          url: "gltf/" + (item["code"]).substring(0, 2) + ".gltf",
-          scale: 0.5,
-          minimumPixelSize: 20,
-          highlight: {
-            type: mars3d.EventType.click,
-            silhouette: true,
-            silhouetteColor: "#ff0000",
-            silhouetteSize: 4,
-          },
-          label: {
-            //涓嶉渶瑕佹枃瀛楁椂锛屽幓鎺塴abel閰嶇疆鍗冲彲
-            text: item["code"],
-            font_size: 16,
-            // TODO need to be changed according to qindex color.
-            color: "#ff00ff",
-            outline: true,
-            outlineColor: "#000000",
-            pixelOffsetY: -20,
-            distanceDisplayCondition: true,
-            distanceDisplayCondition_far: 50000,
-            distanceDisplayCondition_near: 0,
-          },
-        },
-      });
-      graphic.position = tmpPositionProperty;
-      target_layer.addGraphic(graphic);
-    }
-  });
-
-}
-
 
 function reLoadLayers() {
-
   var layers = map.getLayers({ layers: true });
-
   layers.forEach((layer) => {
     console.log(layer.name + ":" + layer.type);
 
@@ -490,7 +150,7 @@
 
       var tmpguokong = map.getLayerById(1001);
       tmpguokong.clear(true);
-      addGuokongPointToLayer(tmpguokong);
+      getGuokongPointFromServer(tmpguokong);
       //graphiclayer.eachGraphic
     } else if ([layer.id] == 1004) {
       var tmpTaxi = map.getLayerById(1004);
@@ -509,26 +169,6 @@
 
 }
 
-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 showDetail(layerid, itemCode) {
   haoutil.msg('鍗曞嚮浜嗭細' + layerid + ',' + itemCode);
diff --git a/js/function_1001.js b/js/function_1001.js
new file mode 100644
index 0000000..6097328
--- /dev/null
+++ b/js/function_1001.js
@@ -0,0 +1,120 @@
+"use script"; //寮�鍙戠幆澧冨缓璁紑鍚弗鏍兼ā寮�
+//绯荤粺 鍔熻兘鍏ュ彛
+
+var guokong_color_list = ['#0EE839', '#FEFE23', '#FD9D00', '#F70F0D', '#8A0B73', '#88041E'];
+var guokong_color_nodata = '#C0C0C0';
+var guokong_qindex_color_list = { 'pm25': [35, 75, 115, 150, 250], 'pm10': [50, 150, 250, 350, 420], 'no2': [100, 200, 700, 1200, 2340], 'co': [5, 10, 35, 60, 90] };
+var guokong_data_list;
+
+
+function addGuokongLayerDIV(item) {
+
+  var guokongLayer = new mars3d.layer.DivLayer({
+    id: item.id,
+    pid: item.pid, //鍥惧眰绠$悊 涓娇鐢紝鐖惰妭鐐筰d
+    name: item.name,
+    style_selected: item.style_selected,
+    style_options: item.styleoptions,
+    show: item.show
+  });
+  map.addLayer(guokongLayer);
+
+  guokongLayer.on(mars3d.EventType.click, function (event) {
+    console.log("鐩戝惉layer锛屽崟鍑讳簡鐭㈤噺瀵硅薄", event);
+    console.log(event.graphic?.attr)
+    var item = event.graphic?.attr;
+    //haoutil.msg('鍗曞嚮浜嗭細' + item['楂樻牎鍚嶇О'])
+  });
+
+  guokongLayer.bindPopup(function (event) {
+    let item = event.graphic?.attr;
+    //console.log(item);
+    var html =
+      "绔欑偣缂栧彿锛�" +
+      item["code"] +
+      "<br />绔欑偣鍚嶇О锛�" +
+      item["name"] +
+      "<br />鏁版嵁鏃堕棿锛�" +
+      item["datatime"] +
+      "<br />PM2.5:" +
+      item["PM25"] + "ug/m3" +
+      "<br />PM10:" +
+      item["PM10"] + "ug/m3" +
+      "<br />NO2:" +
+      item["NO2"] + "ug/m3" +
+      "<br />CO:" +
+      item["CO"] + "ug/m3" +
+      "<br />SO2:" +
+      item["SO2"] + "ug/m3" +
+      "<br /><br /><p><a href='#' onclick='javascript:showDetail(1001,\"" + item["code"] + "\")' >璇︾粏淇℃伅</a></p>";
+    return html;
+  });
+
+  guokongLayer.changeColor = function () {
+
+    guokongLayer.clear(true);
+
+    addGuokongPointResutToLayer(this, guokong_data_list);
+
+  }
+  // add 鍥芥帶鐐�
+  getGuokongPointFromServer(guokongLayer);
+
+}
+
+function getGuokongPointFromServer(tmplayer) {
+
+  $.getJSON(mars3d.global_variables.nodejs_url_predix + "dataapi/Bdata?bid=get_1001_list&datatype=" + mars3d.global_variables.queryDataType + "&datatime=" + mars3d.global_variables.queryDataTStart + "&qindex=pm25&pageno=1&pagesize=1000", (result) => {
+    guokong_data_list = result.data.result;
+    addGuokongPointResutToLayer(tmplayer, result.data.result);
+  });
+
+}
+
+function addGuokongPointResutToLayer(tmplayer, items) {
+  for (var i = 0, len = items.length; i < len; i++) {
+    var item = items[i];
+    var jd = item.lon;
+    var wd = item.lat;
+    var clr = getGuokongPointColor(tmplayer.options.style_selected, item[(tmplayer.options.style_selected).toUpperCase()]);
+    var graphic = new mars3d.graphic.DivLightPoint({
+      position: Cesium.Cartesian3.fromDegrees(jd, wd),
+      style: {
+        color: clr,
+        heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+        highlight: {
+          type: "divLightPoint",
+          diffHeight: item[(tmplayer.options.style_selected).toUpperCase()],
+          material: mars3d.MaterialUtil.createMaterialProperty(mars3d.MaterialType.CircleWave, {
+            color: clr,
+            count: 3,
+            speed: 20,
+          }),
+        },
+        distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 200000), //鎸夎璺濊窛绂绘樉绀�
+      },
+      show: true,
+      attr: item,
+    });
+    tmplayer.addGraphic(graphic);
+  }
+
+
+}
+
+
+function getGuokongPointColor(qindex, value) {
+
+  if (!value || value == null || value == 'null') {
+    return guokong_color_nodata;
+  }
+  for (var key in guokong_qindex_color_list) {
+    if (key == qindex) {
+      for (let i = guokong_qindex_color_list[key].length; i > -1; i--) {
+        if (value > guokong_qindex_color_list[key][i]) {
+          return guokong_color_list[i + 1];
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/js/function_1004.js b/js/function_1004.js
new file mode 100644
index 0000000..696cdcb
--- /dev/null
+++ b/js/function_1004.js
@@ -0,0 +1,122 @@
+"use script"; //寮�鍙戠幆澧冨缓璁紑鍚弗鏍兼ā寮�
+//绯荤粺 鍔熻兘鍏ュ彛
+
+var taxi_data_list;
+
+function addTaxiLayer(item) {
+
+  var taxi_layer = new mars3d.layer.GraphicLayer({
+    id: item.id,
+    name: item.name,
+    pid: item.pid, //鍥惧眰绠$悊 涓娇鐢紝鐖惰妭鐐筰d
+    center: { "lat": 30.62156, "lng": 121.44918, "alt": 48716, "heading": 359, "pitch": -40 },
+    noCenter: true,
+    style_selected:item.style_selected,
+    style_options: item.styleoptions,
+    show: true,
+    onWidget: "widgetsTS/taxi_layer_setting/widget.js",
+  });
+  map.addLayer(taxi_layer);
+
+  taxi_layer.on(mars3d.EventType.click, function (event) {
+    console.log("鐩戝惉layer锛屽崟鍑讳簡鐭㈤噺瀵硅薄", event);
+    var item = event.graphic?.attr;
+  });
+  taxi_layer.bindPopup(function (event) {
+    let item = event.graphic?.attr;
+    var html =
+      "<br/>绫诲瀷锛�&nbsp;" +
+        item["code"].substring(0, 2) == "BS" ? "鍏氦杞�" : "鍑虹杞�" +
+        "<br />杞﹁締缂栧彿锛�&nbsp;" +
+        item["code"] +
+        "<br/>鏁版嵁鏃堕棿锛�&nbsp;" +
+        item["datatime"] +
+        "<br />鐬椂杞﹂�燂細&nbsp;&nbsp;&nbsp;" +
+        item["speed"] + "&nbsp;(km/h)" +
+        "<br />绮夊皹PM2.5锛�&nbsp;" +
+        item["pm25"] + "&nbsp;(ug/m3)" +
+        "<br />绮夊皹PM10锛�&nbsp;&nbsp;" +
+        item["pm10"] + "&nbsp;(ug/m3)" +
+        "<br />NO娴撳害锛�&nbsp;&nbsp;&nbsp;" +
+        item["no"] + "&nbsp;(ug/m3)" +
+        "<br />NO2娴撳害锛�&nbsp;&nbsp;" +
+        item["no2"] + "&nbsp;(ug/m3)" +
+        "<br />NO+NO2娴撳害锛�&nbsp;" +
+        item["nox"] + "&nbsp;(ug/m3)" +
+        "<br />CO娴撳害鍊�:&nbsp;&nbsp;&nbsp;&nbsp;" +
+        item["co"] + "&nbsp;&nbsp;(mg/m3)" +
+        "<br /><br /><p><a href='#' onclick='javascript:showDetail(1001,\"" + item["code"] + "\")' ><span style='color:#ff00ff'>鍘嗗彶杞ㄨ抗鍥炴斁</span></a></p>";
+    return html;
+  });
+
+  getTaxiListByUserId(taxi_layer);
+}
+
+function getTaxiListByUserId(tmpLayer) {
+
+  setTaxiLayerMapClock();
+  $.getJSON(mars3d.global_variables.nodejs_url_predix + "dataapi/Bdata?bid=get_1004_list_by_userid&userid=" + mars3d.global_variables.userid, (result) => {
+    taxi_data_list = result.data.result;
+    for (var i = 0, len = result.data.result.length; i < len; i++) {
+      let item = result.data.result[i];
+      addTaxiPathToLayer(item, tmpLayer);
+    }
+  });
+
+}
+
+function setTaxiLayerMapClock() {
+  map.clock.shouldAnimate = true;
+  map.clock.startTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTStart));
+  map.clock.currentTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTStart));
+  map.clock.stopTime = Cesium.JulianDate.fromDate(new Date(mars3d.global_variables.queryDataTEnd));
+  map.clock.multiplier = 5.0;
+  map.clock.clockRange = Cesium.ClockRange.LOOP_STOP;
+}
+function addTaxiPathToLayer(item, target_layer) {
+
+  $.getJSON(mars3d.global_variables.nodejs_url_predix + "dataapi/Bdata?bid=get_1004_single_path&siteid=" + item["code"], {
+    datatime1: mars3d.global_variables.queryDataTStart,
+    datatime2: mars3d.global_variables.queryDataTEnd
+  }, (result) => {
+
+    if (result.data.result.length > 0) {
+      var tmpPositionProperty = new Cesium.SampledPositionProperty();
+      for (var i = 0, len = result.data.result.length; i < len; i++) {
+        let item = result.data.result[i];
+        //console.log(item);
+        tmpPositionProperty.addSample(Cesium.JulianDate.fromDate(new Date(item["datatime"])), Cesium.Cartesian3.fromDegrees(item["lon"], item["lat"], 0.2))
+      }
+
+      let graphic = new mars3d.graphic.ModelEntity({
+        attr: result.data.result[0],
+        style: {
+          url: "gltf/" + (item["code"]).substring(0, 2) + ".gltf",
+          scale: 0.5,
+          minimumPixelSize: 20,
+          highlight: {
+            type: mars3d.EventType.click,
+            silhouette: true,
+            silhouetteColor: "#ff0000",
+            silhouetteSize: 4,
+          },
+          label: {
+            //涓嶉渶瑕佹枃瀛楁椂锛屽幓鎺塴abel閰嶇疆鍗冲彲
+            text: item["code"],
+            font_size: 16,
+            // TODO need to be changed according to qindex color.
+            color: "#ff00ff",
+            outline: true,
+            outlineColor: "#000000",
+            pixelOffsetY: -20,
+            distanceDisplayCondition: true,
+            distanceDisplayCondition_far: 50000,
+            distanceDisplayCondition_near: 0,
+          },
+        },
+      });
+      graphic.position = tmpPositionProperty;
+      target_layer.addGraphic(graphic);
+    }
+  });
+}
\ No newline at end of file
diff --git a/js/function_wind.js b/js/function_wind.js
new file mode 100644
index 0000000..0e3500f
--- /dev/null
+++ b/js/function_wind.js
@@ -0,0 +1,131 @@
+"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 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,
+      },
+    },
+  });
+}
\ No newline at end of file
diff --git a/widgets/manageLayers_style/view.js b/widgets/manageLayers_style/view.js
index 6b39a94..214c1f8 100644
--- a/widgets/manageLayers_style/view.js
+++ b/widgets/manageLayers_style/view.js
@@ -279,7 +279,7 @@
 
     for (var i = 0, len = item.length; i < len; i++) {
 
-      radio_html += '<span class="button level1 switch center_docu" ></span><label><input type="radio" name="' + tNode.tId + '_style" value="'+item[i]+'" ' + (i == 0 ? "checked" : "") + '/>' + item[i].toUpperCase() + '</label></br>';
+      radio_html += '<span class="button level1 switch center_docu" ></span><label><input type="radio" name="' + tNode.tId + '_style" value="'+item[i]+'" ' + (item[i] ==  layer.options.style_selected ? "checked" : "") + '/>' + item[i].toUpperCase() + '</label></br>';
 
     }
     radio_html += '</div>';
@@ -294,11 +294,11 @@
       var layer = layersObj[tNode.uuid];
       if (layer.options.type =='wms'){
         layer.options.parameters.styles = layer.options.style_prefix+this.value;
+        layer.options.style_selected = this.value;
         layer.reload();
       }else if (layer.options.id =1001){
         layer.options.style_selected = this.value;
         layer.changeColor();
-
       }
       //TODO
     });
diff --git a/widgetsTS/dataTime/widget.js b/widgetsTS/dataTime/widget.js
index dffa523..ad28934 100644
--- a/widgetsTS/dataTime/widget.js
+++ b/widgetsTS/dataTime/widget.js
@@ -1,6 +1,6 @@
 'use script'; //寮�鍙戠幆澧冨缓璁紑鍚弗鏍兼ā寮�
 
-function getDefaultDateTime() {
+function getDefaultDateTimeLocal() {
   var date = new Date;
   date.setHours(date.getHours() - 2);
   var year = date.getFullYear();//骞�
@@ -12,7 +12,7 @@
     (day > 9 ? day : ("0" + day)) + " " +
     (hours > 9 ? hours : ("0" + hours)) + ":00:00";
 }
-function getDefaultDate() {
+function getDefaultDateLocal() {
   var date = new Date;
   date.setDate(date.getDate() - 1);
   var year = date.getFullYear();//骞�
@@ -52,8 +52,8 @@
 
     //鍒濆鍖朳浠呮墽琛�1娆
     create() {
-      this.defaultDate = getDefaultDate();
-      this.defaultDateTime = getDefaultDateTime();
+      this.defaultDate = getDefaultDateLocal();
+      this.defaultDateTime = getDefaultDateTimeLocal();
       // 鍒濆鍖� 鍙傛暟
       let request = haoutil.system.getRequest();
 

--
Gitblit v1.9.1