@@ -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 ( )
}
}