[base_3.4.0-map-sdk]

This commit is contained in:
zhongchao
2023-08-17 16:41:21 +08:00
parent bfd591f5d5
commit 10b5933c03
19 changed files with 225 additions and 451 deletions

View File

@@ -3,6 +3,7 @@ package com.mogo.map
import android.util.Pair
import com.mogo.eagle.core.data.map.CenterLine
import com.mogo.map.utils.ObjectUtils
import com.zhidaoauto.map.sdk.open.MapAutoApi
import com.zhidaoauto.map.sdk.open.abs.IResult
import com.zhidaoauto.map.sdk.open.data.MapDataApi
import com.zhidaoauto.map.sdk.open.road.RoadRectInfos
@@ -13,6 +14,13 @@ import com.zhidaoauto.map.sdk.open.routeinfo.RoadInfo
*/
object MapDataWrapper {
/**
* 设置debug模式
*/
fun setDebugMode(debugMode: Boolean) {
MapAutoApi.setDebugMode(debugMode)
}
/**
* 获取车道中心线数据
* @param lon 经度
@@ -21,7 +29,7 @@ object MapDataWrapper {
* @param call 回调
*/
@Synchronized
fun getCenterLineInfo(lon: Double, lat: Double, angle: Float,call:IResult<CenterLine>){
fun getCenterLineInfo(lon: Double, lat: Double, angle: Float,call:((Int, CenterLine?) -> Unit)){
MapDataApi.getCenterLineInfo(
lon,
lat,
@@ -31,42 +39,11 @@ object MapDataWrapper {
code: Int,
result: com.zhidaoauto.map.sdk.open.road.CenterLine?
) {
call.result(0,ObjectUtils.transformCenterLine(result))
call.invoke(0,ObjectUtils.transformCenterLine(result))
}
})
}
/**
* 获取车道限速
* @param lon 经度
* @param lat 纬度
* @param angle 角度
* @param call 回调
*/
fun getLimitSpeed(lon: Double, lat: Double, angle: Float,call : IResult<Int>) {
MapDataApi.getLimitSpeed(lon, lat, angle, object : IResult<RoadInfo> {
override fun result(code: Int, result: RoadInfo?) {
call.result(code,result?.speed?:0)
}
})
}
/**
* 获取道路角度
* @param lon 经度
* @param lat 纬度
* @param angle 角度
* @param call 回调
*/
fun getRoadAngle(lon: Double, lat: Double, angle: Float,call : IResult<Double>) {
MapDataApi.getRoadRectInfo(lon, lat, angle, object : IResult<RoadRectInfos> {
override fun result(code: Int, result: RoadRectInfos?) {
call.result(code,result?.angle?:0.0)
}
})
}
/**
* 按距离获取道路数据
* @param lon 经度
@@ -79,10 +56,9 @@ object MapDataWrapper {
lat: Double,
angle: Float,
distance: Float,
call:IResult<com.mogo.map.center.CenterLine>
call:((Int,com.mogo.map.center.CenterLine?) -> Unit)
) {
try {
MapDataApi.getCenterLineRangeInfo(
lon,
lat,
@@ -104,7 +80,7 @@ object MapDataWrapper {
info.angle?:0.0
)
}
call.result(code,ret)
call.invoke(code,ret)
}
})
} catch (t: Throwable) {
@@ -123,4 +99,54 @@ object MapDataWrapper {
return ret
}
/**
* 获取车道限速
* @param lon 经度
* @param lat 纬度
* @param angle 角度
* @param call 回调
*/
fun getLimitSpeed(lon: Double, lat: Double, angle: Float,call : ((Int) -> Unit)) {
MapDataApi.getLimitSpeed(lon, lat, angle, object : IResult<RoadInfo> {
override fun result(code: Int, result: RoadInfo?) {
call.invoke(result?.speed?:0)
}
})
}
/**
* 获取道路角度
* @param lon 经度
* @param lat 纬度
* @param angle 角度
* @param call 回调
*/
fun getRoadAngle(lon: Double, lat: Double, angle: Float,call : IResult<Double>) {
MapDataApi.getRoadRectInfo(lon, lat, angle, object : IResult<RoadRectInfos> {
override fun result(code: Int, result: RoadRectInfos?) {
call.result(code,result?.angle?:0.0)
}
})
}
/**
* 获取行车方向
*
* @return
*/
fun getAngle(startLon: Double, startLat: Double, endLon: Double, endLat: Double): Float {
return MapAutoApi.getAngle(startLon, startLat, endLon, endLat)
}
/**
* 获取瓦片id
*
* @param lon 经度
* @param lat 纬度
* @return 瓦片id
*/
fun getTileId(lon: Double, lat: Double): Long {
return MapAutoApi.getTileID(lon, lat, 13) // 13为默认获取瓦片层级级别
}
}