| | |
| | | /** |
| | | * 风向权重 |
| | | */ |
| | | class WindDirWeight : BaseWeight<DataVo, CompanySOP>() { |
| | | class WindDirWeight(var defaultLocation: Pair<Double, Double>?) : BaseWeight<DataVo, CompanySOP>() { |
| | | |
| | | override val tag: String = "风向权重" |
| | | |
| | |
| | | |
| | | 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: CompanySOP): 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) |