[6.5.0][道路事件] 部分代码提交

This commit is contained in:
renwj
2024-06-27 16:56:21 +08:00
parent 3f65bc3976
commit 1f06c9a89e
14 changed files with 505 additions and 207 deletions

View File

@@ -2,11 +2,14 @@ package com.mogo.map
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAP
import com.mogo.map.MogoData.Companion.mogoMapData
import com.mogo.map.entities.Lane
import com.mogo.map.location.GDLocationClient.Companion.gdLocationClient
import com.mogo.map.utils.HDMapUtils.getHDCityCode
import com.zhidaoauto.map.data.road.CenterLine
import com.zhidaoauto.map.data.road.RoadNameInfo
import com.zhidaoauto.map.data.road.RoadRectInfos
import com.zhidaoauto.map.data.routeinfo.RoadInfo
import com.zhidaoauto.map.sdk.open.MapAutoApi
@@ -14,6 +17,7 @@ import com.zhidaoauto.map.sdk.open.abs.IResult
import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener
import com.zhidaoauto.map.sdk.open.data.CityInfo
import com.zhidaoauto.map.sdk.open.data.MapDataApi
import java.util.concurrent.CountDownLatch
/**
* 地图数据工具,涉及到数据调用可能会有耗时建议IO操作
@@ -243,5 +247,31 @@ object MapDataWrapper : IMogoData {
MapDataApi.cancelCacheHDData()
}
override fun getRoadInfo(
lon: Double,
lat: Double,
angle: Float
): com.mogo.map.entities.RoadInfo {
val latch = CountDownLatch(1)
var tempCode: Int = Int.MIN_VALUE
var tempData: RoadNameInfo? = null
Logger.d(TAG, "getRoadInfo --- 1 ---")
MapDataApi.getRoadName(lon, lat, angle, object : IResult<RoadNameInfo> {
override fun result(code: Int, result: RoadNameInfo?) {
Logger.d(TAG, "getRoadInfo ==> code: $code, result: $result")
tempCode = code
tempData = result
latch.countDown()
}
})
latch.await()
Logger.d(TAG, "getRoadInfo --- 2 ---: code -> $tempCode, data -> $tempData")
return com.mogo.map.entities.RoadInfo(tempCode, tempData?.tile_id?.toLong()?:0L, tempData?.road_id?.toInt() ?: 0, tempData?.road_name ?: "")
}
override fun getLaneInfo(tileId: Long, roadId: Int): List<Lane> {
return MapDataApi.getLaneInfo(tileId, roadId)?.map { itx ->
Lane(itx.laneId, itx.laneWidth, itx.laneLatLonPoints.map { Pair(it.longitude, it.latitude) })
} ?: emptyList()
}
}