From 5353617c7b2135ab00f98d8e05b2f8dfb2e096ed Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 30 六月 2021 09:55:40 +0800
Subject: [PATCH] 1. 新增污染权重分析功能

---
 src/main/kotlin/com/flightfeather/uav/model/epw/WindDisWeight.kt |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/model/epw/WindDisWeight.kt b/src/main/kotlin/com/flightfeather/uav/model/epw/WindDisWeight.kt
index 41a58f4..c2add4a 100644
--- a/src/main/kotlin/com/flightfeather/uav/model/epw/WindDisWeight.kt
+++ b/src/main/kotlin/com/flightfeather/uav/model/epw/WindDisWeight.kt
@@ -1,27 +1,39 @@
 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.BaseWeight
+import com.flightfeather.uav.socket.eunm.FactorType
 import kotlin.math.abs
+import kotlin.math.max
 import kotlin.math.sqrt
 
 /**
  * 椋庨�熻窛绂绘潈閲�
  * 鐩戞祴鐐逛笌姹℃煋婧愪箣闂寸殑鐗╃悊璺濈涓庡綋鍓嶉閫熷緱鍑虹殑鏉冮噸
  */
-class WindDisWeight : BaseWeight() {
+class WindDisWeight : BaseWeight<DataVo, CompanySOP>() {
+
+    override val tag: String = "椋庨�熻窛绂绘潈閲�"
 
     override val sectionValues: List<Double> = listOf(2.0, 5.0, 8.0, 12.0, 20.0, 30.0)
+
     override val weights: List<Double> = listOf(1.0, 0.8, 0.6, 0.5, 0.3, 0.0)
 
-    fun getWeight(dis: Double, ws: Double): Double {
-        val value = dis / 1000 / ws / 60
-        return weightCal(value)
+    override fun onWeightFactor(mData: DataVo, sop: CompanySOP): Double? {
+        val p1 = Pair(mData.lng!!, mData.lat!!)
+        val p2 = Pair(sop.ciLongitude!!.toDouble(), sop.ciLatitude!!.toDouble())
+        val ws = mData.getFactorData(FactorType.WIND_SPEED)
+        return if (ws == null) null else getWindSpeed(p1, p2, ws)
     }
 
-    fun getWeight(p1: Pair<Double, Double>, p2: Pair<Double, Double>, ws: Double): Double {
+    private fun getWindSpeed(p1: Pair<Double, Double>, p2: Pair<Double, Double>, ws: Double): Double {
         val dx = p2.first - p1.first
         val dy = p2.second - p1.second
         val dis = sqrt(abs(dx * dx) + abs(dy * dy)) * 100
-        return getWeight(dis, ws)
+//        println("璺濈锛�$dis")
+        val min = dis * 1000 / max(ws, 1.0) / 60
+//        println("璺濈杞负椋庨�熷垎閽熸暟锛�$min")
+        return min
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3