From 01eae19a4870033e879a3faa6749eece92926cab Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期五, 26 一月 2024 17:10:55 +0800
Subject: [PATCH] 1. 新增多项yml配置文件 2. 新增导入静安监测数据功能模块(未完成)

---
 src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt b/src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt
index 1ede99c..7074a30 100644
--- a/src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt
+++ b/src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt
@@ -2,6 +2,7 @@
 
 import com.flightfeather.uav.lightshare.bean.CompanySOP
 import com.flightfeather.uav.lightshare.bean.DataVo
+import com.flightfeather.uav.model.BaseSOP
 import com.flightfeather.uav.model.BaseWeight
 import com.flightfeather.uav.socket.eunm.FactorType
 import kotlin.math.PI
@@ -11,7 +12,7 @@
 /**
  * 椋庡悜鏉冮噸
  */
-class WindDirWeight : BaseWeight<DataVo, CompanySOP>() {
+class WindDirWeight(var defaultLocation: Pair<Double, Double>?) : BaseWeight<DataVo, BaseSOP>() {
 
     override val tag: String = "椋庡悜鏉冮噸"
 
@@ -19,8 +20,9 @@
 
     override val weights: List<Double> = listOf(1.0, 0.8, 0.5, 0.2, 0.1)
 
-    override fun onWeightFactor(mData: DataVo, sop: CompanySOP): Double? {
-        val p1 = Pair(mData.lng!!, mData.lat!!)
+    override fun onWeightFactor(mData: DataVo, sop: BaseSOP): Double {
+        val p1 = if (mData.lng == null || mData.lat == null || mData.lng == .0 || mData.lat == .0) defaultLocation else Pair(mData.lng!!, mData.lat!!)
+        p1 ?: return .0
         val p2 = Pair(sop.ciLongitude!!.toDouble(), sop.ciLatitude!!.toDouble())
         val wd = mData.getFactorData(FactorType.WIND_DIRECTION) ?: 0.0
         return getAngle(p1, p2, wd)
@@ -30,7 +32,7 @@
     private fun getAngle(p1: Pair<Double, Double>, p2: Pair<Double, Double>, wd: Double): Double {
         val dx = p2.first - p1.first
         val dy = p2.second - p1.second
-        var x1 = atan2(dy, dx) * 180 / PI
+        var x1 = atan2(dy, dx) * 180 / PI + 180
         if (x1 < 0) x1 += 360
         var x2 = 270 - wd
         if (x2 < 0) x2 += 360

--
Gitblit v1.9.3