From 9e6ae70ce9382592bdcc33478b6e505a7682c711 Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期二, 28 九月 2021 16:30:44 +0800
Subject: [PATCH] add taxi layer change color
---
js/function_1004.js | 97 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 84 insertions(+), 13 deletions(-)
diff --git a/js/function_1004.js b/js/function_1004.js
index 696cdcb..eb75b95 100644
--- a/js/function_1004.js
+++ b/js/function_1004.js
@@ -1,19 +1,22 @@
"use script"; //寮�鍙戠幆澧冨缓璁紑鍚弗鏍兼ā寮�
//绯荤粺 鍔熻兘鍏ュ彛
-var taxi_data_list;
+var data_list_1004;
+var data_list_1004_paths = new Map();
+var taxi_layer;
+
function addTaxiLayer(item) {
- var taxi_layer = new mars3d.layer.GraphicLayer({
+ 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_selected: item.style_selected,
style_options: item.styleoptions,
- show: true,
+ show: item.show,
onWidget: "widgetsTS/taxi_layer_setting/widget.js",
});
map.addLayer(taxi_layer);
@@ -49,17 +52,17 @@
return html;
});
- getTaxiListByUserId(taxi_layer);
+ getTaxiListFromServerByUserId(taxi_layer);
}
-function getTaxiListByUserId(tmpLayer) {
+function getTaxiListFromServerByUserId(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;
+ data_list_1004 = result.data.result;
for (var i = 0, len = result.data.result.length; i < len; i++) {
let item = result.data.result[i];
- addTaxiPathToLayer(item, tmpLayer);
+ getTaxiPathFromServerbySN(item, tmpLayer);
}
});
@@ -70,10 +73,58 @@
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.multiplier = 2.0;
map.clock.clockRange = Cesium.ClockRange.LOOP_STOP;
+
+ var last_time_second = 0;
+
+
+ map.on(mars3d.EventType.clockTick, function (event) {
+
+ var current_date = new Date(Cesium.JulianDate.toDate(event._currentTime));
+
+ if (current_date.getSeconds() != last_time_second) {
+ last_time_second = current_date.getSeconds();
+ changeTaxiLayerStyleAndAttr(getFormattedDateTime(current_date));
+
+ }
+
+ });
}
-function addTaxiPathToLayer(item, target_layer) {
+
+function changeTaxiLayerStyleAndAttr(current_date) {
+
+ var tmpattr;
+ //current_date = "2021-07-01 00:00:32";
+ taxi_layer.eachGraphic(function (item) {
+ tmpattr = getTaxiAttrFromTimeListData(current_date, data_list_1004_paths.get(item.options.id));
+ //console.log(tmpattr);
+ if (tmpattr && tmpattr != null) {
+ //item.options.attr = tmpattr;
+
+ item.setOptions({
+ attr: tmpattr,
+ style: {
+ label: {
+ color: getLayerPointColorByQindexandValue(1004, item._layer.options.style_selected, tmpattr[item._layer.options.style_selected]),
+ }
+ }
+ })
+ //item.options.style.label.color = getLayerPointColorByQindexandValue(1004, item._layer.options.style_selected, tmpattr[item._layer.options.style_selected]);
+ //console.log('color has been changed.' + item.options.id);
+ }
+
+ });
+}
+function getTaxiAttrFromTimeListData(datetime, datalist) {
+ for (var i = 0; i < datalist.length; i++) {
+ if (datalist[i]["datatime"] == datetime) {
+ return datalist[i];
+ }
+ }
+}
+
+function getTaxiPathFromServerbySN(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,
@@ -81,6 +132,8 @@
}, (result) => {
if (result.data.result.length > 0) {
+ // 淇濆瓨涓存椂鏁版嵁锛屼负鍚庣画鏇挎崲棰滆壊鍋氬噯澶囥��
+ data_list_1004_paths.set(result.data.result[0].code, result.data.result);
var tmpPositionProperty = new Cesium.SampledPositionProperty();
for (var i = 0, len = result.data.result.length; i < len; i++) {
let item = result.data.result[i];
@@ -89,9 +142,10 @@
}
let graphic = new mars3d.graphic.ModelEntity({
+ id: result.data.result[0].code,
attr: result.data.result[0],
style: {
- url: "gltf/" + (item["code"]).substring(0, 2) + ".gltf",
+ url: "gltf/" + (result.data.result[0]["code"]).substring(0, 2) + ".gltf",
scale: 0.5,
minimumPixelSize: 20,
highlight: {
@@ -102,7 +156,7 @@
},
label: {
//涓嶉渶瑕佹枃瀛楁椂锛屽幓鎺塴abel閰嶇疆鍗冲彲
- text: item["code"],
+ text: result.data.result[0]["code"],
font_size: 16,
// TODO need to be changed according to qindex color.
color: "#ff00ff",
@@ -111,7 +165,7 @@
pixelOffsetY: -20,
distanceDisplayCondition: true,
distanceDisplayCondition_far: 50000,
- distanceDisplayCondition_near: 0,
+ distanceDisplayCondition_near: 100,
},
},
});
@@ -119,4 +173,21 @@
target_layer.addGraphic(graphic);
}
});
+}
+
+function getFormattedDateTime(date) {
+
+ var year = date.getFullYear();//骞�
+ var month = date.getMonth();//鏈�
+ var day = date.getDate();//鏃�
+ var hours = date.getHours();//鏃�
+ var mins = date.getMinutes();//鍒�
+ var seconds = date.getSeconds();//绉�
+
+ return date.getFullYear() + "-" +
+ ((month + 1) > 9 ? (month + 1) : "0" + (month + 1)) + "-" +
+ (day > 9 ? day : ("0" + day)) + " " +
+ (hours > 9 ? hours : ("0" + hours)) + ":" +
+ (mins > 9 ? mins : ("0" + mins)) + ":" +
+ (seconds > 9 ? seconds : ("0" + seconds));
}
\ No newline at end of file
--
Gitblit v1.9.1