From ec763e1cb7dca873caf4afbc0dfde047b51753d3 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 17 十月 2025 17:26:54 +0800
Subject: [PATCH] 2025.10.17
---
src/model/Factor.js | 84 +++++++++++++++++++++++++++++++-----------
1 files changed, 62 insertions(+), 22 deletions(-)
diff --git a/src/model/Factor.js b/src/model/Factor.js
index 354a585..5a720c1 100644
--- a/src/model/Factor.js
+++ b/src/model/Factor.js
@@ -51,6 +51,7 @@
this.factorId;
this.heights = []; //3d鍦板浘褰撳墠灞曠ず鍧愭爣鐐瑰搴旂殑楂樺害鏁扮粍
this.colors = []; // 3d鍦板浘褰撳墠灞曠ず鍧愭爣鐐瑰搴旂殑棰滆壊鏁扮粍
+ this.bottomColors = []; //鏈�灏忓�煎搴旂殑鍥句緥鑹叉暟缁�
this.bottomColor; //鏈�灏忓�煎搴旂殑鍥句緥鑹�
this.min = -1; // 褰撳墠鏄剧ず鐨勬渶灏忓��
this.max = -1; // 褰撳墠鏄剧ず鐨勬渶澶у��
@@ -60,21 +61,32 @@
this.standardMax = -1; //鐩戞祴鍥犲瓙绫诲瀷瀵瑰簲鐨勬爣鍑嗘渶澶у��
this.legendType = Legend.S_TYPE; //鍥句緥妯″紡
+ // this.legendType = Legend.D_TYPE; //鍥句緥妯″紡
- if (options != undefined) {
- this.datas = options.datas;
- this.heights = options.heights;
- this.min = options.min;
- this.max = options.max;
- this.originMin = options.originMin;
- this.originMax = options.originMax;
+ if (typeof options === 'object') {
+ for (const key in options) {
+ if (Object.prototype.hasOwnProperty.call(options, key)) {
+ const value = options[key];
+ this[key] = value;
+ }
+ }
- this.factorName = options.factorName;
- this.factorId = options.factorId;
- this.colors = options.colors;
- this.bottomColor = options.bottomColor;
- this.standardMin = options.standardMin;
- this.standardMax = options.standardMax;
+ // this.datas = options.datas;
+ // this.heights = options.heights;
+ // this.min = options.min;
+ // this.max = options.max;
+ // this.originMin = options.originMin;
+ // this.originMax = options.originMax;
+
+ // this.factorName = options.factorName;
+ // this.factorId = options.factorId;
+ // this.colors = options.colors;
+ // this.bottomColors = options.bottomColors;
+ // this.bottomColor = options.bottomColor;
+ // this.standardMin = options.standardMin;
+ // this.standardMax = options.standardMax;
+
+ // this.legendType = options.legendType;
}
}
@@ -125,12 +137,12 @@
this.heights = [];
this.colors = [];
this.datas.forEach((d) => {
- var h = getFactorHeight(d.factorId, d.factorData, [this.min, this.max]);
+ let h = getFactorHeight(d.factorId, d.factorData, [this.min, this.max]);
if (d.factorData == -1) {
h = -1;
}
this.heights.push(h);
- var c = Legend.getColor(
+ const c = Legend.getColor(
this.factorName,
this.legendType,
d.factorData,
@@ -138,6 +150,8 @@
this.max
);
this.colors.push(c);
+ const b = Legend.getPreviousColor(this.factorName, this.legendType, c);
+ this.bottomColors.push(b);
// this.heights.push(d.factorData)
});
this.bottomColor = Legend.getColor(
@@ -182,6 +196,7 @@
originMax: this.originMax,
factorName: this.factorName,
colors: this.colors,
+ bottomColors: this.bottomColors,
bottomColor: this.bottomColor,
standardMin: this.standardMin,
standardMax: this.standardMax
@@ -194,24 +209,49 @@
if (d1 == undefined || d2 == undefined) {
return;
}
+ let diffValue = d2.factorData - d1.factorData;
+ // 瀵逛簬椋庡悜鐭㈤噺鏉ヨ锛屽姩鐢荤殑鍙樺寲搴旇浠庝袱涓鍚戝す瑙掕緝灏忕殑閭d竴渚ц繘琛屽彉鍖�
+ if (this.factorName == 'WIND_DIRECTION') {
+ // 椋庡悜瑙掑害宸�
+ if (diffValue > 180) {
+ diffValue -= 360;
+ } else if (diffValue < -180) {
+ diffValue += 360;
+ }
+ }
// 鍗曞抚鏁版嵁鍊肩殑宸��
- var dValue = {
- factorData: (d2.factorData - d1.factorData) / count,
- physicalQuantity: (d2.physicalQuantity - d2.physicalQuantity) / count
+ const dValue = {
+ factorData: diffValue / count
+ // physicalQuantity: (d2.physicalQuantity - d2.physicalQuantity) / count
+ };
+
+ // 椋庡悜鐭㈤噺淇
+ const correct = (v) => {
+ if (this.factorName == 'WIND_DIRECTION') {
+ if (v < 0) {
+ return 360 + v;
+ } else if (v > 360) {
+ return v - 360;
+ } else {
+ return v;
+ }
+ } else {
+ return v;
+ }
};
for (let i = 0; i < count - 1; i++) {
var _data = {
- factorData: d1.factorData + dValue.factorData * (i + 1),
+ factorData: correct(d1.factorData + dValue.factorData * (i + 1)),
factorId: d1.factorId,
factorName: d1.factorName,
- physicalQuantity:
- d1.physicalQuantity + dValue.physicalQuantity * (i + 1),
+ // physicalQuantity:
+ // d1.physicalQuantity + dValue.physicalQuantity * (i + 1),
sensorId: d1.sensorId,
statusList: d1.statusList
};
if (!isDraw) {
_data.factorData = -1;
- _data.physicalQuantity = -1;
+ // _data.physicalQuantity = -1;
}
this.datas.push(_data);
}
--
Gitblit v1.9.3