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/WindDirWeight.kt | 28 +++++++++++++++++++--------- 1 files changed, 19 insertions(+), 9 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..1ede99c 100644 --- a/src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt +++ b/src/main/kotlin/com/flightfeather/uav/model/epw/WindDirWeight.kt @@ -1,23 +1,33 @@ 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.PI import kotlin.math.abs import kotlin.math.atan2 -import kotlin.math.sqrt /** - * + * 椋庡悜鏉冮噸 */ -class WindDirWeight : BaseWeight() { +class WindDirWeight : BaseWeight<DataVo, CompanySOP>() { + + 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: CompanySOP): Double? { + val p1 = Pair(mData.lng!!, mData.lat!!) + 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 @@ -25,8 +35,8 @@ 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