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