From 7cd8d2a1e96de3d173bf5af64b4adc29c497db2a Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期六, 12 十月 2024 17:38:07 +0800 Subject: [PATCH] 1. 新增评估结果批量修改相关接口(完成) --- src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt | 2 src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt | 8 + src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/EvaluationUpdateVo.kt | 19 ++++ src/main/kotlin/cn/flightfeather/supervision/business/location/CoordinateUtil.kt | 17 +++ src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/ScoreUtil.kt | 43 ++++++++++ src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt | 12 ++- src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/ExternalDeviceRep.kt | 9 ++ src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt | 2 src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt | 128 +++++++++++++++++++++++++++++++- 9 files changed, 224 insertions(+), 16 deletions(-) diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/ScoreUtil.kt b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/ScoreUtil.kt index 12df325..84bb7e2 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/ScoreUtil.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/business/autooutput/score/ScoreUtil.kt @@ -7,6 +7,7 @@ import cn.flightfeather.supervision.domain.ds1.entity.Itemevaluation import cn.flightfeather.supervision.lightshare.vo.EvaluationVo import cn.flightfeather.supervision.lightshare.vo.ItemEvaluationVo +import cn.flightfeather.supervision.lightshare.vo.SubRulePair import java.util.* /** @@ -37,7 +38,47 @@ // 琛ュ厖鍚勬渶涓婄骇璇勫垎椤圭殑璁″垎 val fatherId = r.first.fatherid - for (t in (evaluationScene.topRules.value ?: emptyList())) { + for (t in (topRules ?: emptyList())) { + if (t.guid == fatherId) { + t.score += r.first.score + break + } + } + } + } + + /** + * 鏍规嵁鎵�閫夋渶娣卞眰璇勪及閫夐」锛屼互鍘熸湁璇勫垎涓哄熀纭�锛岀粰瑙勫垯璧嬪�煎搴斿垎鏁板強鑷姩璁$畻鍏朵綑鎵�鏈夋潯鐩緱鍒� + * @param evaluationScene 闇�瑕佽瘎浼扮殑瀵硅薄 + * @param selected 璇勪及琛ㄤ腑閫変腑鐨勮瘎浼版潯鐩富閿甶d闆嗗悎锛堝繀椤绘槸鏈�娣变竴灞傜殑璇勪及鏉$洰锛� + */ + fun scoreAssignSelected(evaluationScene: AopDataSource.EvaluationScene, selected: List<SubRulePair?>?) { + val topRules = evaluationScene.topRules.value + val subRules = evaluationScene.rules.value + val evaluation = evaluationScene.evaluation.value ?: return + val itemevaluationList = evaluationScene.itemevaluationList.value ?: return + subRules?.forEach { r -> + + r.second.forEach { e -> + // 棣栧厛灏嗗師鏈夌殑鍒嗘暟璧嬪�肩粰瀵瑰簲瑙勫垯 + val itemEva = itemevaluationList.find { it.esrguid == e.guid } + e.score = itemEva?.value?.toIntOrNull() ?: 0 + e.selected = itemEva?.extension1 == "true" + // 鏍规嵁浼犲叆鐨勯�変腑璇勪及鏉$洰涓婚敭id锛屼慨鏀瑰叾寰楀垎 + selected?.find { it?.id == e.guid }?.let {s -> + if (s.selected == true) { + e.setMaxScore() + } else { + e.clear() + } + } + } + // 鏍规嵁瀛愰」鐨勯�夋嫨鎯呭喌锛岃嚜鍔ㄨ绠楄鏉¤瘎浼扮殑鎬诲緱鍒� + subRuleCal(r) + + // 琛ュ厖鍚勬渶涓婄骇璇勫垎椤圭殑璁″垎 + val fatherId = r.first.fatherid + for (t in (topRules ?: emptyList())) { if (t.guid == fatherId) { t.score += r.first.score break diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt b/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt index f125125..4de46d6 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/business/bgtask/AopTaskCtrl.kt @@ -79,7 +79,7 @@ val name = "${districtName}${Constant.SceneType.getDes(sceneType)}鑷姩璇勫垎" val bgTask = backgroundTaskCtrl.startNewTask(BgTaskType.AUTO_SCORE, id, name) { // 鐩戞祴鏁版嵁鍒嗘瀽鍏ュ簱 -// dataAnalysis(districtCode, sceneType, taskId, year, month) + dataAnalysis(districtCode, sceneType, taskId, year, month) // 鑷姩璇勪及璁$畻鍏ュ簱 aopEvaluation.executeByTopTask(taskId, sceneType) // 鐜俊鐮佺粨鏋滆浆鎹㈠叆搴� diff --git a/src/main/kotlin/cn/flightfeather/supervision/business/location/CoordinateUtil.kt b/src/main/kotlin/cn/flightfeather/supervision/business/location/CoordinateUtil.kt index a2678ce..e145035 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/business/location/CoordinateUtil.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/business/location/CoordinateUtil.kt @@ -1,8 +1,6 @@ package cn.flightfeather.supervision.business.location -import kotlin.math.PI -import kotlin.math.cos -import kotlin.math.sin +import kotlin.math.* object CoordinateUtil { @@ -32,4 +30,17 @@ fun disToLng(distance: Double): Double { return distance * 0.00001 } + + fun calculateDistance(lon1: Double, lat1: Double, lon2: Double, lat2: Double): Double { + val R = 6371; // 鍦扮悆骞冲潎鍗婂緞锛屽崟浣嶅叕閲� + val dLat = (lat2 - lat1) * Math.PI / 180; + val dLon = (lon2 - lon1) * Math.PI / 180; + val a = sin(dLat / 2) * sin(dLat / 2) + + cos(lat1 * Math.PI / 180) * cos(lat2 * Math.PI / 180) * + sin(dLon / 2) * sin(dLon / 2); + val c = 2 * atan2(sqrt(a), sqrt(1 - a)); + val distance = R * c; + return distance; + } + } \ No newline at end of file diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt index c43bd1a..194501a 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/DeviceRep.kt @@ -10,7 +10,7 @@ import java.util.* /** - * + * 鍦烘櫙璁惧鏁版嵁搴撴煡璇� * @date 2024/7/24 * @author feiyu02 */ diff --git a/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/ExternalDeviceRep.kt b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/ExternalDeviceRep.kt new file mode 100644 index 0000000..8dd175a --- /dev/null +++ b/src/main/kotlin/cn/flightfeather/supervision/domain/ds1/repository/ExternalDeviceRep.kt @@ -0,0 +1,9 @@ +package cn.flightfeather.supervision.domain.ds1.repository + +/** + * 澶栭儴鐩戞祴璁惧鏁版嵁搴撴煡璇� + * @date 2024/9/29 + * @author feiyu02 + */ +class ExternalDeviceRep { +} \ No newline at end of file diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt index 84991cd..dc5839d 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/EvaluationServiceImpl.kt @@ -285,7 +285,13 @@ //1. 鏌ユ壘鍘嗗彶璁板綍锛屾煡鐪嬭瘎浼版槸鍚﹀凡瀛樺湪 // areaVo.scensetypeid ?: throw ResponseErrorException("鏌ヨ鏃跺繀椤婚�夋嫨涓�涓満鏅被鍨�") // val task = taskRep.findOneTask(areaVo) ?: throw ResponseErrorException("鏌ヨ鏃跺繀椤婚�夋嫨涓�涓満鏅被鍨�") - return evaluationRep.findAutoScore(areaVo) + val evaList = evaluationRep.findAutoScore(areaVo) + evaList?.forEach { + it?.subTaskId?.let { id-> + it.itemEvaluations = evaluationRep.findItemEvaluation(id) + } + } + return evaList } override fun downloadAutoEvaluation(areaVo: AreaVo, forceUpdate: Boolean, response: HttpServletResponse): Boolean { diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt index b3d99bc..29475cb 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/service/impl/ItemevaluationServiceImpl.kt @@ -120,10 +120,14 @@ try { source.loop() { _, evaluationScene -> if (evaluationScene.noRecord()) throw BizException("宸℃煡浠诲姟涓嶅瓨鍦�") - // 灏嗗垎鏁拌祴鍊煎埌瀵瑰簲鐨勮瘎浼拌鍒欎笅锛屽苟涓旇嚜鍔ㄨ绠楀叾浣欒鍒欑殑寰楀垎 - ScoreUtil.scoreAssign(evaluationScene, itemList) - // 鑾峰彇鎬诲垎鍜屽瓙椤瑰緱鍒嗘暟鎹簱琛ㄧ粨鏋勪綋锛屽苟鍏ュ簱 - ScoreUtil.updateEvaRecord(evaluationScene)?.let { aopOutput.updateDbEvaluation(evaluationScene, it) } + evaVo.subTaskEvaList?.find { + it.subTaskId == evaluationScene.subTask.value?.stguid + }?.let {stEva -> + // 灏嗗垎鏁拌祴鍊煎埌瀵瑰簲鐨勮瘎浼拌鍒欎笅锛屽苟涓旇嚜鍔ㄨ绠楀叾浣欒鍒欑殑寰楀垎 + ScoreUtil.scoreAssignSelected(evaluationScene, stEva.subRule) + // 鑾峰彇鎬诲垎鍜屽瓙椤瑰緱鍒嗘暟鎹簱琛ㄧ粨鏋勪綋锛屽苟鍏ュ簱 + ScoreUtil.updateEvaRecord(evaluationScene)?.let { aopOutput.updateDbEvaluation(evaluationScene, it) } + } } return true } catch (e: Exception) { diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/EvaluationUpdateVo.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/EvaluationUpdateVo.kt index 75f1f1a..2c6966e 100644 --- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/EvaluationUpdateVo.kt +++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/vo/EvaluationUpdateVo.kt @@ -1,5 +1,6 @@ package cn.flightfeather.supervision.lightshare.vo +import com.fasterxml.jackson.annotation.JsonInclude import io.swagger.annotations.ApiModel import io.swagger.annotations.ApiModelProperty @@ -8,9 +9,16 @@ * @date 2024/9/28 * @author feiyu02 */ +@JsonInclude(JsonInclude.Include.NON_NULL) @ApiModel("宸℃煡浠诲姟鐩戞祴鏁版嵁寮傚父鎵e垎") class EvaluationUpdateVo : AreaEvaVo() { + @ApiModelProperty("宸℃煡浠诲姟鐨勮瘎鍒嗕慨鏀硅鎯�") + var subTaskEvaList: List<SubTaskEva>? = null +} + +@ApiModel("宸℃煡浠诲姟鐩戞祴鏁版嵁鎵e垎璇︽儏") +class SubTaskEva { @ApiModelProperty("宸℃煡浠诲姟涓婚敭") var subTaskId: String? = null @@ -18,5 +26,14 @@ var ruleId: String? = null @ApiModelProperty("鍏蜂綋璇勪及鏉$洰鏄惁鍕鹃��", notes = "瀵硅薄缁撴瀯涓鸿瘎浼版潯鐩殑涓婚敭鍜屾槸鍚﹀嬀閫夊舰鎴愮殑閿�煎鍒楄〃") - var subRule: List<Pair<String, Boolean>>? = null + var subRule: List<SubRulePair?>? = null +} + +@ApiModel("鍏蜂綋璇勪及鏉$洰鍕鹃�夋儏鍐�") +class SubRulePair { + @ApiModelProperty("璇勪及瑙勫垯id") + var id: String? = null + + @ApiModelProperty("鏄惁閫変腑") + var selected: Boolean? = null } \ No newline at end of file diff --git a/src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt b/src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt index dc83b49..2fed9ec 100644 --- a/src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt +++ b/src/test/kotlin/cn/flightfeather/supervision/business/location/LocationRoadNearbyTest.kt @@ -9,6 +9,7 @@ import org.springframework.boot.test.context.SpringBootTest import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.test.context.junit4.SpringRunner +import kotlin.math.log @RunWith(SpringRunner::class) @ExtendWith(SpringExtension::class) @@ -45,10 +46,10 @@ // LocationRoadNearby.BasePlace("鍚曢潚璺�-鏈卞悤鍏矾-鏈卞钩鍏矾", Pair(121.136318,30.833325), Pair(121.148624,30.836094)), // LocationRoadNearby.BasePlace("娉栨咕鏀矾-鍚曢潚璺�-鏈卞钩鍏矾", Pair(121.155048,30.835229), Pair(121.148659,30.829861)), - LocationRoadNearby.BasePlace("寰愭眹涓婂笀澶�", Pair(121.419384,31.161433), Pair(121.419384,31.161433)), - LocationRoadNearby.BasePlace("闈欏畨鐩戞祴绔欏浗鎺х偣", Pair(121.429439, 31.223632), Pair(121.429439, 31.223632)), +// LocationRoadNearby.BasePlace("寰愭眹涓婂笀澶�", Pair(121.419384, 31.161433), Pair(121.419384, 31.161433)), +// LocationRoadNearby.BasePlace("闈欏畨鐩戞祴绔欏浗鎺х偣", Pair(121.429439, 31.223632), Pair(121.429439, 31.223632)), LocationRoadNearby.BasePlace("閲戝北澶ч亾2000鍙�", Pair(121.3404, 30.744262), Pair(121.3404, 30.744262)), - LocationRoadNearby.BasePlace("浠欓湠绔�", Pair(121.394775, 31.203982), Pair(121.394775, 31.203982)), +// LocationRoadNearby.BasePlace("浠欓湠绔�", Pair(121.394775, 31.203982), Pair(121.394775, 31.203982)), // LocationRoadNearby.BasePlace("绋嬫ˉ绔�", Pair(121.362928, 31.192925), Pair(121.362928, 31.192925)), // LocationRoadNearby.BasePlace("闀块槼绔�", Pair(121.424603, 31.223644), Pair(121.424603, 31.223644)), @@ -79,9 +80,128 @@ // 500.0, // 1000.0, // 2000.0, - 3000.0 +// 3000.0, + 5000.0 ).forEach { locationRoadNearby.searchList(bList, it) } } + + @Test + fun foo2() { + val bList = listOf( + LocationRoadNearby.BasePlace("1", Pair(121.334271, 31.238706), Pair(121.334271, 31.238706)), + LocationRoadNearby.BasePlace("2", Pair(121.343935, 31.239303), Pair(121.343935, 31.239303)), + LocationRoadNearby.BasePlace("3", Pair(121.3536, 31.239898), Pair(121.3536, 31.239898)), + LocationRoadNearby.BasePlace("4", Pair(121.363263, 31.240491), Pair(121.363263, 31.240491)), + LocationRoadNearby.BasePlace("5", Pair(121.372924, 31.241082), Pair(121.372924, 31.241082)), + LocationRoadNearby.BasePlace("6", Pair(121.382581, 31.241668), Pair(121.382581, 31.241668)), + LocationRoadNearby.BasePlace("7", Pair(121.392235, 31.242251), Pair(121.392235, 31.242251)), + LocationRoadNearby.BasePlace("8", Pair(121.401886, 31.24283), Pair(121.401886, 31.24283)), + LocationRoadNearby.BasePlace("9", Pair(121.411531, 31.243404), Pair(121.411531, 31.243404)), + LocationRoadNearby.BasePlace("10", Pair(121.421172, 31.243972), Pair(121.421172, 31.243972)), + LocationRoadNearby.BasePlace("11", Pair(121.430808, 31.244536), Pair(121.430808, 31.244536)), + LocationRoadNearby.BasePlace("12", Pair(121.440441, 31.245096), Pair(121.440441, 31.245096)), + LocationRoadNearby.BasePlace("13", Pair(121.334944, 31.230417), Pair(121.334944, 31.230417)), + LocationRoadNearby.BasePlace("14", Pair(121.344609, 31.231014), Pair(121.344609, 31.231014)), + LocationRoadNearby.BasePlace("15", Pair(121.354273, 31.231609), Pair(121.354273, 31.231609)), + LocationRoadNearby.BasePlace("16", Pair(121.363934, 31.232202), Pair(121.363934, 31.232202)), + LocationRoadNearby.BasePlace("17", Pair(121.373595, 31.232792), Pair(121.373595, 31.232792)), + LocationRoadNearby.BasePlace("18", Pair(121.383251, 31.233378), Pair(121.383251, 31.233378)), + LocationRoadNearby.BasePlace("19", Pair(121.392904, 31.233961), Pair(121.392904, 31.233961)), + LocationRoadNearby.BasePlace("20", Pair(121.402553, 31.234539), Pair(121.402553, 31.234539)), + LocationRoadNearby.BasePlace("21", Pair(121.412197, 31.235112), Pair(121.412197, 31.235112)), + LocationRoadNearby.BasePlace("22", Pair(121.421837, 31.235681), Pair(121.421837, 31.235681)), + LocationRoadNearby.BasePlace("23", Pair(121.431472, 31.236245), Pair(121.431472, 31.236245)), + LocationRoadNearby.BasePlace("24", Pair(121.441103, 31.236803), Pair(121.441103, 31.236803)), + LocationRoadNearby.BasePlace("25", Pair(121.335618, 31.222129), Pair(121.335618, 31.222129)), + LocationRoadNearby.BasePlace("26", Pair(121.345282, 31.222726), Pair(121.345282, 31.222726)), + LocationRoadNearby.BasePlace("27", Pair(121.354944, 31.223321), Pair(121.354944, 31.223321)), + LocationRoadNearby.BasePlace("28", Pair(121.364606, 31.223913), Pair(121.364606, 31.223913)), + LocationRoadNearby.BasePlace("29", Pair(121.374265, 31.224503), Pair(121.374265, 31.224503)), + LocationRoadNearby.BasePlace("30", Pair(121.38392, 31.225089), Pair(121.38392, 31.225089)), + LocationRoadNearby.BasePlace("31", Pair(121.393572, 31.225671), Pair(121.393572, 31.225671)), + LocationRoadNearby.BasePlace("32", Pair(121.40322, 31.226248), Pair(121.40322, 31.226248)), + LocationRoadNearby.BasePlace("33", Pair(121.412863, 31.226821), Pair(121.412863, 31.226821)), + LocationRoadNearby.BasePlace("34", Pair(121.422502, 31.227389), Pair(121.422502, 31.227389)), + LocationRoadNearby.BasePlace("35", Pair(121.432135, 31.227952), Pair(121.432135, 31.227952)), + LocationRoadNearby.BasePlace("36", Pair(121.441765, 31.228511), Pair(121.441765, 31.228511)), + LocationRoadNearby.BasePlace("37", Pair(121.336292, 31.213841), Pair(121.336292, 31.213841)), + LocationRoadNearby.BasePlace("38", Pair(121.345955, 31.214437), Pair(121.345955, 31.214437)), + LocationRoadNearby.BasePlace("39", Pair(121.355617, 31.215032), Pair(121.355617, 31.215032)), + LocationRoadNearby.BasePlace("40", Pair(121.365276, 31.215624), Pair(121.365276, 31.215624)), + LocationRoadNearby.BasePlace("41", Pair(121.374934, 31.216213), Pair(121.374934, 31.216213)), + LocationRoadNearby.BasePlace("42", Pair(121.384589, 31.216799), Pair(121.384589, 31.216799)), + LocationRoadNearby.BasePlace("43", Pair(121.394239, 31.21738), Pair(121.394239, 31.21738)), + LocationRoadNearby.BasePlace("44", Pair(121.403886, 31.217958), Pair(121.403886, 31.217958)), + LocationRoadNearby.BasePlace("45", Pair(121.413528, 31.21853), Pair(121.413528, 31.21853)), + LocationRoadNearby.BasePlace("46", Pair(121.423165, 31.219097), Pair(121.423165, 31.219097)), + LocationRoadNearby.BasePlace("47", Pair(121.432799, 31.21966), Pair(121.432799, 31.21966)), + LocationRoadNearby.BasePlace("48", Pair(121.442427, 31.220218), Pair(121.442427, 31.220218)), + LocationRoadNearby.BasePlace("49", Pair(121.336966, 31.205552), Pair(121.336966, 31.205552)), + LocationRoadNearby.BasePlace("50", Pair(121.346627, 31.206149), Pair(121.346627, 31.206149)), + LocationRoadNearby.BasePlace("51", Pair(121.356289, 31.206743), Pair(121.356289, 31.206743)), + LocationRoadNearby.BasePlace("52", Pair(121.365948, 31.207335), Pair(121.365948, 31.207335)), + LocationRoadNearby.BasePlace("53", Pair(121.375604, 31.207923), Pair(121.375604, 31.207923)), + LocationRoadNearby.BasePlace("54", Pair(121.385257, 31.208509), Pair(121.385257, 31.208509)), + LocationRoadNearby.BasePlace("55", Pair(121.394907, 31.20909), Pair(121.394907, 31.20909)), + LocationRoadNearby.BasePlace("56", Pair(121.404553, 31.209667), Pair(121.404553, 31.209667)), + LocationRoadNearby.BasePlace("57", Pair(121.414193, 31.210238), Pair(121.414193, 31.210238)), + LocationRoadNearby.BasePlace("58", Pair(121.42383, 31.210805), Pair(121.42383, 31.210805)), + LocationRoadNearby.BasePlace("59", Pair(121.433461, 31.211368), Pair(121.433461, 31.211368)), + LocationRoadNearby.BasePlace("60", Pair(121.443088, 31.211925), Pair(121.443088, 31.211925)), + LocationRoadNearby.BasePlace("61", Pair(121.337639, 31.197263), Pair(121.337639, 31.197263)), + LocationRoadNearby.BasePlace("62", Pair(121.3473, 31.19786), Pair(121.3473, 31.19786)), + LocationRoadNearby.BasePlace("63", Pair(121.356959, 31.198453), Pair(121.356959, 31.198453)), + LocationRoadNearby.BasePlace("64", Pair(121.366617, 31.199045), Pair(121.366617, 31.199045)), + LocationRoadNearby.BasePlace("65", Pair(121.376274, 31.199634), Pair(121.376274, 31.199634)), + LocationRoadNearby.BasePlace("66", Pair(121.385925, 31.200218), Pair(121.385925, 31.200218)), + LocationRoadNearby.BasePlace("67", Pair(121.395574, 31.200799), Pair(121.395574, 31.200799)), + LocationRoadNearby.BasePlace("68", Pair(121.405218, 31.201376), Pair(121.405218, 31.201376)), + LocationRoadNearby.BasePlace("69", Pair(121.414858, 31.201947), Pair(121.414858, 31.201947)), + LocationRoadNearby.BasePlace("70", Pair(121.424494, 31.202514), Pair(121.424494, 31.202514)), + LocationRoadNearby.BasePlace("71", Pair(121.434123, 31.203075), Pair(121.434123, 31.203075)), + LocationRoadNearby.BasePlace("72", Pair(121.44375, 31.203632), Pair(121.44375, 31.203632)), + LocationRoadNearby.BasePlace("73", Pair(121.338312, 31.188975), Pair(121.338312, 31.188975)), + LocationRoadNearby.BasePlace("74", Pair(121.347972, 31.189571), Pair(121.347972, 31.189571)), + LocationRoadNearby.BasePlace("75", Pair(121.357631, 31.190164), Pair(121.357631, 31.190164)), + LocationRoadNearby.BasePlace("76", Pair(121.367288, 31.190755), Pair(121.367288, 31.190755)), + LocationRoadNearby.BasePlace("77", Pair(121.376943, 31.191343), Pair(121.376943, 31.191343)), + LocationRoadNearby.BasePlace("78", Pair(121.386593, 31.191928), Pair(121.386593, 31.191928)), + LocationRoadNearby.BasePlace("79", Pair(121.396241, 31.192508), Pair(121.396241, 31.192508)), + LocationRoadNearby.BasePlace("80", Pair(121.405884, 31.193084), Pair(121.405884, 31.193084)), + LocationRoadNearby.BasePlace("81", Pair(121.415522, 31.193656), Pair(121.415522, 31.193656)), + LocationRoadNearby.BasePlace("82", Pair(121.425156, 31.194221), Pair(121.425156, 31.194221)), + LocationRoadNearby.BasePlace("83", Pair(121.434785, 31.194782), Pair(121.434785, 31.194782)), + LocationRoadNearby.BasePlace("84", Pair(121.444411, 31.195339), Pair(121.444411, 31.195339)), + LocationRoadNearby.BasePlace("85", Pair(121.338984, 31.180686), Pair(121.338984, 31.180686)), + LocationRoadNearby.BasePlace("86", Pair(121.348643, 31.181281), Pair(121.348643, 31.181281)), + LocationRoadNearby.BasePlace("87", Pair(121.358302, 31.181875), Pair(121.358302, 31.181875)), + LocationRoadNearby.BasePlace("88", Pair(121.367957, 31.182466), Pair(121.367957, 31.182466)), + LocationRoadNearby.BasePlace("89", Pair(121.377611, 31.183053), Pair(121.377611, 31.183053)), + LocationRoadNearby.BasePlace("90", Pair(121.387261, 31.183638), Pair(121.387261, 31.183638)), + LocationRoadNearby.BasePlace("91", Pair(121.396907, 31.184217), Pair(121.396907, 31.184217)), + LocationRoadNearby.BasePlace("92", Pair(121.406549, 31.184793), Pair(121.406549, 31.184793)), + LocationRoadNearby.BasePlace("93", Pair(121.416187, 31.185363), Pair(121.416187, 31.185363)), + LocationRoadNearby.BasePlace("94", Pair(121.42582, 31.18593), Pair(121.42582, 31.18593)), + LocationRoadNearby.BasePlace("95", Pair(121.435448, 31.18649), Pair(121.435448, 31.18649)), + LocationRoadNearby.BasePlace("96", Pair(121.445071, 31.187046), Pair(121.445071, 31.187046)), + LocationRoadNearby.BasePlace("97", Pair(121.339657, 31.172397), Pair(121.339657, 31.172397)), + LocationRoadNearby.BasePlace("98", Pair(121.349315, 31.172992), Pair(121.349315, 31.172992)), + LocationRoadNearby.BasePlace("99", Pair(121.358972, 31.173586), Pair(121.358972, 31.173586)), + LocationRoadNearby.BasePlace("100", Pair(121.368627, 31.174176), Pair(121.368627, 31.174176)), + LocationRoadNearby.BasePlace("101", Pair(121.378279, 31.174764), Pair(121.378279, 31.174764)), + LocationRoadNearby.BasePlace("102", Pair(121.387928, 31.175347), Pair(121.387928, 31.175347)), + LocationRoadNearby.BasePlace("103", Pair(121.397574, 31.175926), Pair(121.397574, 31.175926)), + LocationRoadNearby.BasePlace("104", Pair(121.407215, 31.176501), Pair(121.407215, 31.176501)), + LocationRoadNearby.BasePlace("105", Pair(121.41685, 31.177072), Pair(121.41685, 31.177072)), + LocationRoadNearby.BasePlace("106", Pair(121.426483, 31.177637), Pair(121.426483, 31.177637)), + LocationRoadNearby.BasePlace("107", Pair(121.436109, 31.178198), Pair(121.436109, 31.178198)), + LocationRoadNearby.BasePlace("108", Pair(121.445732, 31.178752), Pair(121.445732, 31.178752)), + ) + val locationRoadNearby = LocationRoadNearby(scenseMapper) + locationRoadNearby.searchList(bList, 0.9178855120092253 / 2 * 1000) +// val d = CoordinateUtil.calculateDistance(121.436109, 31.178198, 121.426483, 31.177637) +// println(d) + } } \ No newline at end of file -- Gitblit v1.9.3