feiyu02
2025-08-05 176d7d8283e66ccf63878c9ab823e900df94b748
src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedArea.kt
@@ -26,6 +26,8 @@
        windLevelCondition: RTExcWindLevelConfig.WindLevelCondition?,
    ) : this() {
        distanceType = windLevelCondition?.distanceType
        distanceRange = distanceType?.disRange
        distanceDes = distanceType?.des
        windLevelCondition?.let { sourceTrace(historyData, exceptionData, config, it) }
    }
@@ -39,6 +41,9 @@
    // 污染可能的发生距离
    var distanceType: DistanceType? = null
    var distanceRange: Pair<Double, Double>? = null
    var distanceDes: String? = null
    /**
     * 反向溯源
@@ -58,7 +63,7 @@
        val pair = avgData.longitude!!.toDouble() to avgData.latitude!!.toDouble()
        polygon = calSector(
            avgData.windDirection!!.toDouble(),
            avgData.windDirection?.toDouble() ?: .0,
            pair,
            windLevelCondition.distanceType.disRange,
            config.sourceTraceDegOffset
@@ -67,13 +72,19 @@
            MapUtil.wgs84ToGcj02(it)
        }
        closePolygon = closeSourceTrace(historyData, pair)
        closePolygon = closeSourceTrace(historyData, pair).map {
            // 将坐标转换为gcj02(火星坐标系),因为污染源场景信息都为此坐标系
            MapUtil.wgs84ToGcj02(it)
        }
        try {
            val address = AMapService.reGeo(pair)
            this.address = address.district + address.township + address.street
        } catch (e: Exception) {
            e.printStackTrace()
        if (config.isSearchAddress) {
            try {
                val address = AMapService.reGeo(MapUtil.wgs84ToGcj02(pair))
                this.address = address.district + address.township + address.street
//                Thread.sleep(100)
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }
    }