From 53857f42f777e2b9753b8f00cce1a60ce3dcb8fd Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期三, 15 十月 2025 22:42:29 +0800
Subject: [PATCH] 2025.10.15 修改高德地图地理逆编码结果,让地理位置信息更加详细
---
src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt | 146 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 145 insertions(+), 1 deletions(-)
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt b/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
index a2f5f43..cd76007 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
@@ -1,5 +1,7 @@
package com.flightfeather.uav.socket.eunm
+import com.flightfeather.uav.biz.dataanalysis.BaseExceptionAnalysis
+
/**
* @author riku
* Date: 2020/6/10
@@ -22,11 +24,29 @@
TIME(15, "TIME", 6),//鏃堕棿
WIND_SPEED(16, "WIND_SPEED", 3),
WIND_DIRECTION(17, "WIND_DIRECTION", 2),
- HEIGHT(18, "HEIGHT", 3);
+ HEIGHT(18, "HEIGHT", 3),
+ NO(19, "NO", 6);
companion object {
+ /**
+ * 閫氳繃绱㈠紩鑾峰彇鏋氫妇绫诲瀷锛岀敤浜庢暟鎹垎鏋�
+ * @see [BaseExceptionAnalysis]
+ */
fun getByIndex(index: Int): FactorType? = when (index) {
+ 0 -> NO2
+ 1 -> CO
+ 2 -> H2S
+ 3 -> SO2
+ 4 -> O3
+ 5 -> PM25
+ 6 -> PM10
+ 7 -> VOC
+ 19 -> NO
+ else -> null
+ }
+
+ fun getByValue(value: Int): FactorType? = when (value) {
NO2.value -> NO2
CO.value -> CO
H2S.value -> H2S
@@ -45,7 +65,131 @@
WIND_SPEED.value -> WIND_SPEED
WIND_DIRECTION.value -> WIND_DIRECTION
HEIGHT.value -> HEIGHT
+ NO.value -> NO
else -> null
}
+
+ fun getByName(name: String?): FactorType? = when (name) {
+ NO2.des -> NO2
+ CO.des -> CO
+ H2S.des -> H2S
+ SO2.des -> SO2
+ O3.des -> O3
+ PM25.des -> PM25
+ PM10.des -> PM10
+ TEMPERATURE.des -> TEMPERATURE
+ HUMIDITY.des -> HUMIDITY
+ VOC.des -> VOC
+ NOI.des -> NOI
+ LNG.des -> LNG
+ LAT.des -> LAT
+ VELOCITY.des -> VELOCITY
+ TIME.des -> TIME
+ WIND_SPEED.des -> WIND_SPEED
+ WIND_DIRECTION.des -> WIND_DIRECTION
+ HEIGHT.des -> HEIGHT
+ NO.des -> NO
+ else -> null
+ }
+
+ fun getRange(name: String?): Pair<Double, Double>? {
+ getByName(name)?.let {
+ return getRange(it)
+ }
+ return null
+ }
+
+ /**
+ * 鑾峰彇鐩戞祴鍥犲瓙鐨勫悎鐞嗚寖鍥�
+ */
+ fun getRange(type: FactorType): Pair<Double, Double>? = when (type) {
+ NO -> Pair(0.1, 1000.0)
+ NO2 -> Pair(0.1, 1000.0)
+ CO -> Pair(1.0, 5000.0)
+ H2S -> Pair(0.1, 1000.0)
+ SO2 -> Pair(0.1, 1000.0)
+ O3 -> Pair(0.1, 2000.0)
+ PM25 -> Pair(0.1, 5000.0)
+ PM10 -> Pair(0.1, 10000.0)
+ TEMPERATURE -> Pair(-20.0, 70.0)
+ HUMIDITY -> Pair(0.0, 110.0)
+ VOC -> Pair(1.0, 5000.0)
+ NOI -> Pair(0.1, 1000.0)
+ LNG -> Pair(0.0, 180.0)
+ LAT -> Pair(0.0, 90.0)
+ VELOCITY -> Pair(0.0, 500.0)
+ TIME -> null
+ WIND_SPEED -> Pair(0.0, 100.0)
+ WIND_DIRECTION -> Pair(0.0, 360.0)
+ HEIGHT -> Pair(0.0, 1000.0)
+ else -> null
+ }
+
+ fun getVMin(name: String?): Double? {
+ getByName(name)?.let {
+ return getVMin(it)
+ }
+ return null
+ }
+
+ /**
+ * 涓嶅鐞嗕綆浜庢鍊肩殑鍊�
+ */
+ fun getVMin(type: FactorType): Double = when (type) {
+ NO -> 1.0
+ NO2 -> 10.0
+ CO -> 100.0
+ H2S -> 10.0
+ SO2 -> 10.0
+ O3 -> 10.0
+ PM25 -> 10.0
+ PM10 -> 10.0
+ TEMPERATURE -> 10.0
+ HUMIDITY -> 10.0
+ VOC -> 10.0
+ NOI -> 10.0
+ LNG -> 0.0
+ LAT -> 0.0
+ VELOCITY -> 0.0
+ TIME -> 0.0
+ WIND_SPEED -> 2.0
+ WIND_DIRECTION -> 0.0
+ HEIGHT -> 0.0
+ }
+
+ /**
+ * 鍥犲瓙杩炵画鏁版嵁涓婂崌鍚堢悊骞呭害锛堝�嶆暟锛�
+ */
+ fun getMultiplier(name: String?): Double {
+ getByName(name)?.let {
+ return getMultiplier(it)
+ }
+ return 10.0
+ }
+
+ fun getMultiplier(type: FactorType): Double = when (type) {
+ PM25 -> 20.0
+ PM10 -> 20.0
+ VOC -> 10.0
+ else -> 10.0
+ }
+
+ fun isOutputFactor(factorName: String?): Boolean {
+ return when (factorName) {
+ NO2.des,
+ CO.des,
+ H2S.des,
+ SO2.des,
+ O3.des,
+ PM25.des,
+ PM10.des,
+ TEMPERATURE.des,
+ HUMIDITY.des,
+ VOC.des,
+ WIND_SPEED.des,
+ WIND_DIRECTION.des -> true
+ else -> false
+ }
+ }
}
}
\ No newline at end of file
--
Gitblit v1.9.3