[6.5.0][道路事件][视角切换] 逻辑优化2
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.mogo.map
|
||||
|
||||
import android.os.Looper
|
||||
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
|
||||
@@ -23,6 +24,7 @@ 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
|
||||
import java.util.concurrent.TimeUnit.SECONDS
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
|
||||
/**
|
||||
@@ -258,20 +260,33 @@ object MapDataWrapper : IMogoData {
|
||||
lat: Double,
|
||||
angle: Float
|
||||
): com.mogo.map.entities.RoadInfo {
|
||||
if (Looper.getMainLooper() == Looper.myLooper()) {
|
||||
throw AssertionError()
|
||||
}
|
||||
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()
|
||||
try {
|
||||
Logger.d(TAG, "getRoadInfo ==> code: $code, result: $result")
|
||||
tempCode = code
|
||||
tempData = result
|
||||
} finally {
|
||||
latch.countDown()
|
||||
}
|
||||
}
|
||||
})
|
||||
latch.await()
|
||||
Logger.d(TAG, "getRoadInfo --- 2 ---: code -> $tempCode, data -> $tempData")
|
||||
try {
|
||||
if (latch.await(5, SECONDS)) {
|
||||
Logger.d(TAG, "getRoadInfo --- 2 ---: code -> $tempCode, data -> $tempData")
|
||||
} else {
|
||||
Logger.d(TAG, "getRoadInfo --- 3 ---: code -> $tempCode, data -> $tempData")
|
||||
}
|
||||
} catch (e: InterruptedException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
return com.mogo.map.entities.RoadInfo(
|
||||
tempCode,
|
||||
tempData?.tile_id?.toLong() ?: 0L,
|
||||
@@ -308,16 +323,33 @@ object MapDataWrapper : IMogoData {
|
||||
}
|
||||
|
||||
override fun getCrossRoad(lon: Double, lat: Double, angle: Double): CrossRoad? {
|
||||
if (Looper.getMainLooper() == Looper.myLooper()) {
|
||||
throw AssertionError()
|
||||
}
|
||||
val latch = CountDownLatch(1)
|
||||
Logger.d(TAG, "getCrossRoad --- 1 ---")
|
||||
val temp = AtomicReference<CrossRoad>()
|
||||
MapDataApi.getCrossRoad(lon, lat, angle.toFloat(), object : IResult<RoadCross> {
|
||||
|
||||
override fun result(code: Int, result: RoadCross?) {
|
||||
temp.set(CrossRoad(result?.status ?: 0, result?.tile_id ?: "", result?.cross_id ?: "", result?.tile_id_end ?: "", result?.cross_id_end ?: ""))
|
||||
latch.countDown()
|
||||
try {
|
||||
Logger.d(TAG, "getCrossRoad --- 1 - 1 ---")
|
||||
temp.set(CrossRoad(result?.status ?: 0, result?.tile_id ?: "", result?.cross_id ?: "", result?.tile_id_end ?: "", result?.cross_id_end ?: ""))
|
||||
} finally {
|
||||
latch.countDown()
|
||||
}
|
||||
}
|
||||
})
|
||||
latch.await()
|
||||
try {
|
||||
Logger.d(TAG, "getCrossRoad --- 2 ---")
|
||||
if (latch.await(5, SECONDS)) {
|
||||
Logger.d(TAG, "getCrossRoad --- 3 ---")
|
||||
} else {
|
||||
Logger.d(TAG, "getCrossRoad --- 4 ---")
|
||||
}
|
||||
} catch (e: InterruptedException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
return temp.get()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user