src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/RealTimeExceptionAnalysisController.kt
@@ -43,7 +43,7 @@ .withMain(FactorType.VOC) .create() ) initTask(config) initTask() } constructor(sceneInfoRep: SceneInfoRep) : this(sceneInfoRep, null) @@ -55,7 +55,7 @@ private val taskList = mutableListOf<BaseExceptionAnalysis<RealTimeAnalysisConfig, RealTimeExceptionResult>>() private fun initTask(config: RealTimeAnalysisConfig) { fun initTask() { taskList.clear() taskList.apply { add( @@ -139,9 +139,11 @@ // æ´æ°ä¸é´ç¹ä¿¡æ¯ ex.midData = avgData.apply { dataTime = midData.dataTime createTime = midData.createTime longitude = midData.longitude latitude = midData.latitude } }.toDataVo() // æ´æ°æº¯æºèå´å çæ±¡æåºæ¯ä¿¡æ¯ ex.relatedSceneList = result } @@ -164,14 +166,24 @@ val eDeg = windDir + defaultDegOffset val distance = windSpeed * durationMin * 60 // 左侧ï¼éæ¶éä¾§ï¼é¡¶ç¹ val p1 = MapUtil.getPointByLen(center, distance, sDeg * PI / 180) // é£åååé¡¶ç¹ val p2 = MapUtil.getPointByLen(center, distance, windDir * PI / 180) // å³ä¾§ï¼é¡ºæ¶éä¾§ï¼é¡¶ç¹ val p3 = MapUtil.getPointByLen(center, distance, eDeg * PI / 180) val result = mutableListOf(center) var startDeg = sDeg while (startDeg < eDeg) { val p = MapUtil.getPointByLen(center, distance, startDeg * PI / 180) result.add(p) startDeg++ } return listOf(center, p1, p2, p3) return result // // 左侧ï¼éæ¶éä¾§ï¼é¡¶ç¹ // val p1 = MapUtil.getPointByLen(center, distance, sDeg * PI / 180) // // é£åååé¡¶ç¹ // val p2 = MapUtil.getPointByLen(center, distance, windDir * PI / 180) // // å³ä¾§ï¼é¡ºæ¶éä¾§ï¼é¡¶ç¹ // val p3 = MapUtil.getPointByLen(center, distance, eDeg * PI / 180) // // return listOf(center, p1, p2, p3) } } src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/DistanceType.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.flightfeather.uav.biz.sourcetrace.model /** * å¨ææº¯æºçº¿ç´¢è·ç¦»ç±»å * @date 2025/5/28 * @author feiyu02 */ enum class DistanceType(val des: String) { TYPE1("50ç±³"), TYPE2("50ç±³ - 500ç±³"), TYPE3("50ç±³ - 1å ¬é"), TYPE4("50ç±³ - 2å ¬é") } src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedArea.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.flightfeather.uav.biz.sourcetrace.model /** * å¨ææº¯æºæ±¡æåºå * éè¿å°å¾åæ ç¹å½¢æå¤è¾¹å½¢æ¥æè¿°ä¸å污æåºå * @date 2025/5/27 * @author feiyu02 */ class PollutedArea { var name: String? = null // 污æèå´åºå(ç»çº¬åº¦å¤è¾¹å½¢) var polygon: List<Pair<Double, Double>>? = null // 污æå¯è½çåçè·ç¦» var distanceType: DistanceType? = null } src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedClue.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package com.flightfeather.uav.biz.sourcetrace.model /** * 污æçº¿ç´¢ * æ ¹æ® * @date 2025/5/27 * @author feiyu02 */ class PollutedClue { } src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedData.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package com.flightfeather.uav.biz.sourcetrace.model import com.flightfeather.uav.domain.entity.BaseRealTimeData import com.flightfeather.uav.lightshare.bean.DataVo /** * æ±¡ææ°æ® * @date 2025/5/27 * @author feiyu02 */ class PollutedData { /** * * 1. 软é£1.5m/så以ä¸ï¼ * ååå¼ä¸åå¹ åº¦å¨50%以ä¸1次ï¼è®¤ä¸ºæ¯ä¸´è¿åç(50ç±³) * ååå¼ä¸åå¹ åº¦å¨20%以ä¸1次ï¼è®¤ä¸ºæ¯è¿è·ç¦»åçï¼50ç±³ - 500ç±³ï¼ * 1.5 m/så以ä¸ï¼é稳天æ°ï¼ä¸´è¿åç(50ç±³) * 2. 1.6 - 7.9 m/sï¼ååå¼ä¸åå¹ åº¦å¨20%以ä¸3次ï¼è®¤ä¸ºæ¯è¿è·ç¦»åçï¼50ç±³ - 1å ¬éï¼ * 3. 8 - 13.8 m/s 以ä¸ï¼ååå¼ä¸åå¹ åº¦å¨10%以ä¸3次ï¼è®¤ä¸ºæ¯è¿è·ç¦»åç(50ç±³ - 2å ¬é) */ // é£é var windSpeed: Float? = null // å åé级ååå¹ åº¦ var percentage: Float? = null // åçæ¬¡æ° var times: Int? = null // å¼å¸¸çæµæ°æ® var dataList: MutableList<BaseRealTimeData> = mutableListOf() var dataVoList: MutableList<DataVo> = mutableListOf() } src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSource.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.flightfeather.uav.biz.sourcetrace.model /** * æ±¡ææ¥æº * ç³»ç»å é¨ç污æåºæ¯ãçµåå°å¾æç´¢å¾å°çå®é 路段路å£çæ å¿ä¿¡æ¯ * @date 2025/5/27 * @author feiyu02 */ class PollutedSource { } src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSummary.kt
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package com.flightfeather.uav.biz.sourcetrace.model /** * æ±¡ææ åµæ±æ» * é坹忬¡èµ°èªï¼å®æ¶ç»è®¡å·²ææ±¡æçº¿ç´¢ï¼æç §çç¥ç»åºèµ°èªå»ºè®® * @date 2025/5/27 * @author feiyu02 */ class PollutedSummary { } src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/RealTimeExceptionResult.kt
@@ -49,7 +49,7 @@ var latitude: BigDecimal? = null // ä¸é´æ°æ®ç¹åæ var midData: BaseRealTimeData? = null var midData: DataVo? = null // var midLongitude: BigDecimal? = null // var midLatitude: BigDecimal? = null src/main/kotlin/com/flightfeather/uav/common/utils/MapUtil.kt
@@ -260,9 +260,9 @@ val sqrtmagic = sqrt(magic); dlat = (dlat * 180.0) / (((a * (1 - ee)) / (magic * sqrtmagic)) * PI); dlng = (dlng * 180.0) / ((a / sqrtmagic) * cos(radlat) * PI); val mglat = Math.round((lat * 2 - lat - dlat) * 1000000) / 1000000; val mglng = Math.round((lng * 2 - lng - dlng) * 1000000) / 1000000; return mglng.toDouble() to mglat.toDouble() val mglat = Math.round((lat * 2 - lat - dlat) * 1000000).toDouble() / 1000000; val mglng = Math.round((lng * 2 - lng - dlng) * 1000000).toDouble() / 1000000; return mglng to mglat } } src/main/kotlin/com/flightfeather/uav/socket/handler/UnderwayWebSocketServerHandler.kt
@@ -40,11 +40,15 @@ // Test try { val data = GsonUtils.parserJsonToArrayBeans(msgTxt, DataVo::class.java) data.forEach { realTimeExceptionAnalysisController.addOneData( it.toBaseRealTimeData(BaseRealTimeData::class.java) ) if (msgTxt == "start") { realTimeExceptionAnalysisController.initTask() } else { val data = GsonUtils.parserJsonToArrayBeans(msgTxt, DataVo::class.java) data.forEach { realTimeExceptionAnalysisController.addOneData( it.toBaseRealTimeData(BaseRealTimeData::class.java) ) } } } catch (e: Exception) { // ctx?.channel()?.writeAndFlush(TextWebSocketFrame("å½å为æµè¯ç¶æï¼ä¼ è¾çæ°æ®ä¸æ¯èµ°èªæ°æ®æ ¼å¼"))