From bf3bf9ff25ac106b556b2427cc382c8fcca63bff Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 02 七月 2024 17:38:33 +0800
Subject: [PATCH] 1. 新增走航报告自动道路识别模块
---
src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt | 32 ++++++++++++++++++++++----------
1 files changed, 22 insertions(+), 10 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 16baf70..7074a30 100644
--- a/src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt
+++ b/src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt
@@ -1,32 +1,44 @@
package com.flightfeather.uav.model.epw
+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
import kotlin.math.abs
import kotlin.math.atan2
-import kotlin.math.sqrt
/**
- *
+ * 椋庡悜鏉冮噸
*/
-class WindDirWeight : BaseWeight() {
+class WindDirWeight(var defaultLocation: Pair<Double, Double>?) : BaseWeight<DataVo, BaseSOP>() {
+
+ override val tag: String = "椋庡悜鏉冮噸"
+
override val sectionValues: List<Double> = listOf(22.5, 67.5, 112.5, 157.5, 180.0)
+
override val weights: List<Double> = listOf(1.0, 0.8, 0.5, 0.2, 0.1)
- fun getWeight(deg: Double):Double {
- return weightCal(deg)
+ 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)
}
- fun getWeight(p1: Pair<Double, Double>, p2: Pair<Double, Double>, wd: Int): Double {
+
+ 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
x1 = abs(x2 - x1)
- if (x1>180) x1 = 360 - x1
-
- return weightCal(x1)
+ if (x1 > 180) x1 = 360 - x1
+// println("澶硅锛�$x1")
+ return x1
}
}
\ No newline at end of file
--
Gitblit v1.9.3