Riku
2025-06-11 d3b43d50df28c4fe27c104dcd146d35b2bad4d20
1. 新增动态污染溯源新的判定逻辑(待完成)
已修改2个文件
20 ■■■■ 文件已修改
src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSummary.kt 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/config/RTExcWindLevelConfig.kt
@@ -24,11 +24,11 @@
    // 限定时间内(单位:分钟)
    var timeLimit = 3
    // 溯源扩散偏移角度(单位:度)
    var sourceTraceDegOffset = 60.0
    var sourceTraceDegOffset = 120.0
    // 定时线索分析时间间隔(单位:分钟)
    var analysisPeriod = 15
    // 定时分析间隔中,立即进行线索分析的最小线索量(单位:个)
    var analysisCount = 4
    var analysisCount = 2
    /****数据突变*****************************************************************************/
    // 0 - 1级风
src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSummary.kt
@@ -164,10 +164,11 @@
        // 当前的走航数据的定位和污染源距离是否是逐渐接近,若走航远离了主要污染源,提示用户调整走航路线
        if (!result.sortedSceneList.isNullOrEmpty()) {
            val sT = clueList.first().pollutedData?.startTime
            val eT = clueList.last().pollutedData?.endTime
            val closetScene = result.sortedSceneList?.first()
            // 走航路线调整建议
            result.advice =
                "根据${sT}起的${clueList.size}条最新污染线索,污染源【${closetScene?.first?.name}】被多次溯源,具有较高污染风险,现提供新的走航推荐路线,可经过该污染源。"
                "根据${sT}至${eT}的${clueList.size}条最新污染线索,污染源【${closetScene?.first?.name}】被多次溯源,具有较高污染风险,现提供新的走航推荐路线,可经过该污染源。"
            val lastP = realTimeDataList.last()
            // 建议对应的数据采样时间
@@ -184,14 +185,13 @@
                // 建议的走航路线
                result.direction = AMapService.directionDriving(origin, destination)
            }
            // 线索分析完成后,移动至历史线索列表
            historyClueList.addAll(clueList)
            clueList.clear()
            realTimeDataList.clear()
            callback(result)
        }
        // 线索分析完成后,移动至历史线索列表
        historyClueList.addAll(clueList)
        clueList.clear()
        realTimeDataList.clear()
        callback(result)
//        TODO()
    }