[6.2.0] fix handler thread of map cost

This commit is contained in:
zhongchao
2023-11-22 20:59:51 +08:00
parent 510578c097
commit f8c4a8f23c
8 changed files with 88 additions and 87 deletions

View File

@@ -129,7 +129,7 @@ object ConfigStartUp {
}
val mapParams = MapParams.init()
mapParams.setDebugMode(false)
mapParams.setDebugMode(true)
// 1-使用本地地图数据0-使用在线地图数据
// .setDataFileSource(1)
.setIsRecordLogs(false)

View File

@@ -27,7 +27,7 @@ internal class MoGoBlockProviderImpl: IMoGoBlockProvider, IBlockListener {
.multiplier(2.0f)
.isDebug(false)
.period(5, SECONDS)
.junkRateThreshold(0.6f)
.junkRateThreshold(0.2f)
.recorder(null, 500, 500)
.build())
hasInit = true

View File

@@ -5,10 +5,7 @@ import android.graphics.Bitmap
import android.graphics.Point
import android.opengl.GLException
import android.opengl.GLSurfaceView
import android.os.Build
import android.os.Handler
import android.os.Looper
import android.os.Message
import android.os.*
import android.text.TextUtils
import android.util.Log
import android.view.GestureDetector
@@ -145,45 +142,82 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
// 耗时专用协程
private val mDemaningScope: CoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
private val mHandler: Handler = object : Handler(Looper.getMainLooper()) {
override fun handleMessage(msg: Message) {
when (msg.what) {
ZOOM_CHANGE -> mMapController?.dispatchZoomChanged()
ROTATE_CHANGE ->mMapController?.dispatchRotationAngleChanged((msg.obj as Float))
DAngle_CHANGE -> mMapController?.dispatchDAngleChanged()
FOCUS_CHANGE -> mMapController?.dispatchFocusChanged()
RENDER_CHANGE -> {
mEventController?.dispatchRenderListener(msg.arg1)
}
RENDER_COMPLETE -> {
if (DEBUG) {
Log.i(TAG, "mapop--load render complete-start")
private var mHandler:Handler
init {
val mapViewThread = HandlerThread("mapViewDrawer")
mapViewThread.start()
mHandler = object : Handler(mapViewThread.looper) {
override fun handleMessage(msg: Message) {
when (msg.what) {
ZOOM_CHANGE -> mMapController?.dispatchZoomChanged()
// ROTATE_CHANGE ->mMapController?.dispatchRotationAngleChanged((msg.obj as Float))
// DAngle_CHANGE -> mMapController?.dispatchDAngleChanged()
// FOCUS_CHANGE -> mMapController?.dispatchFocusChanged()
RENDER_CHANGE -> {
mEventController?.dispatchRenderListener(msg.arg1)
}
RENDER_COMPLETE -> {
if (DEBUG) {
Log.i(TAG, "mapop--load render complete-start")
}
// CommonEventController.instance?.dispatchCameraChangeFinishListener(CommonController.instance.mapAutoView?.getMapAutoViewHelper()?.getCameraPosition() ?: null)
if (DEBUG) {
Log.i(TAG, "mapop--load render complete-end")
if (DEBUG) {
Log.i(TAG, "mapop--load render complete-end")
}
}
}
LOAD_COMPLETE -> {
if (DEBUG) {
Log.i(TAG, "mapop--load complete-start")
LOAD_COMPLETE -> {
if (DEBUG) {
Log.i(TAG, "mapop--load complete-start")
}
mEventController?.dispatchMapLoadedListener()
}
mEventController?.dispatchMapLoadedListener()
}
INIT_COMPLETE -> {
if (DEBUG) {
Log.i(TAG, "mapop--init complete-start")
INIT_COMPLETE -> {
if (DEBUG) {
Log.i(TAG, "mapop--init complete-start")
}
mEventController?.dispatchMapLoadedInitListener()
}
mEventController?.dispatchMapLoadedInitListener()
}
}
}
}
// private val Hndler: Handler = object : Handler(Looper.getMainLooper()) {
// override fun handleMessage(msg: Message) {
// when (msg.what) {
// ZOOM_CHANGE -> mMapController?.dispatchZoomChanged()
// ROTATE_CHANGE ->mMapController?.dispatchRotationAngleChanged((msg.obj as Float))
// DAngle_CHANGE -> mMapController?.dispatchDAngleChanged()
// FOCUS_CHANGE -> mMapController?.dispatchFocusChanged()
// RENDER_CHANGE -> {
// mEventController?.dispatchRenderListener(msg.arg1)
// }
// RENDER_COMPLETE -> {
// if (DEBUG) {
// Log.i(TAG, "mapop--load render complete-start")
// }
//// CommonEventController.instance?.dispatchCameraChangeFinishListener(CommonController.instance.mapAutoView?.getMapAutoViewHelper()?.getCameraPosition() ?: null)
// if (DEBUG) {
// Log.i(TAG, "mapop--load render complete-end")
// }
// }
// LOAD_COMPLETE -> {
// if (DEBUG) {
// Log.i(TAG, "mapop--load complete-start")
// }
// mEventController?.dispatchMapLoadedListener()
// }
//
// INIT_COMPLETE -> {
// if (DEBUG) {
// Log.i(TAG, "mapop--init complete-start")
// }
// mEventController?.dispatchMapLoadedInitListener()
// }
// }
// }
// }
override fun getMapEngine(): MapEngine {
return mMapEngine
@@ -1149,10 +1183,10 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
}
fun onMapFocusChanging() {
if (DEBUG) {
Log.i(TAG, "mapop--onMapFocusChanging")
}
mHandler.sendEmptyMessage(FOCUS_CHANGE)
// if (DEBUG) {
// Log.i(TAG, "mapop--onMapFocusChanging")
// }
// mHandler.sendEmptyMessage(FOCUS_CHANGE)
}
fun onMapZoomChanging() {
@@ -1163,20 +1197,20 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
}
fun onMapRAngleChanging(angle:Float) {
if (DEBUG) {
Log.i(TAG, "mapop--onMapRAngleChanging")
}
val msg = Message.obtain()
msg.what = ROTATE_CHANGE
msg.obj = angle
mHandler.sendMessage(msg)
// if (DEBUG) {
// Log.i(TAG, "mapop--onMapRAngleChanging")
// }
// val msg = Message.obtain()
// msg.what = ROTATE_CHANGE
// msg.obj = angle
// mHandler.sendMessage(msg)
}
fun onMapDAngleChanging() {
if (DEBUG) {
Log.i(TAG, "mapop--onMapDAngleChanging")
}
mHandler.sendEmptyMessage(DAngle_CHANGE)
// if (DEBUG) {
// Log.i(TAG, "mapop--onMapDAngleChanging")
// }
// mHandler.sendEmptyMessage(DAngle_CHANGE)
}
override fun loadP(

View File

@@ -66,8 +66,10 @@ class MapController(private var context: Context?, private val mMapView: IMapVie
private var mMapPerspective = MAP_PERSPECTIVE_2D
private var isFollowCarMode = true
private var isMapNorth = false
@Volatile
private var lastZoom = 16
private var lonLat: LonLat? = null
@Volatile
private var isSetMapStyle = false
private var mRoamDis = ConstantExt.ROAM_DIS_1KM
private var mSpeed = ConstantExt.ROAM_SPEED_30
@@ -829,6 +831,7 @@ class MapController(private var context: Context?, private val mMapView: IMapVie
mMapView.getMapEngine().setRotateAngle(rotation)
}
@Volatile
var mMapStyleMode = 0
//设置地图风格

View File

@@ -56,6 +56,7 @@ class MapStyleParams: IMapStyleParams {
* const val MAP_STYLE_DAY_NAV = 3 //日间导航模式
* const val MAP_STYLE_NIGHT_NAV = 4 //夜间导航模式
*/
@Volatile
private var styleMode: Int = MapAutoApi.MAP_STYLE_NIGHT_VR
/**

View File

@@ -50,12 +50,4 @@ public interface IMogoMapListener {
default void onMapVisualAngleChanged(VisualAngleMode visualAngleMode) {
}
/**
* @param latLng 中点的经纬度
* @param zoom 缩放大小
* @param tilt 倾斜度
* @param bearing 旋转角度
*/
default void onMapChanged(MogoLatLng latLng, float zoom, float tilt, float bearing) {
}
}

View File

@@ -75,11 +75,4 @@ class MogoMapListenerHandler private constructor() : IMogoMapListener, IMogoMapL
}
}
override fun onMapChanged(location: MogoLatLng, zoom: Float, tilt: Float, bearing: Float) {
mMap.forEach {
val listener = it.value
listener.onMapChanged(location, zoom, tilt, bearing)
}
}
}

View File

@@ -44,7 +44,6 @@ import com.zhidaoauto.map.sdk.open.business.PointCloudHelper.setIsDrawPointCloud
import com.zhidaoauto.map.sdk.open.business.PointCloudHelper.setPointCloudColor
import com.zhidaoauto.map.sdk.open.business.PointCloudHelper.setPointCloudSize
import com.zhidaoauto.map.sdk.open.business.PointCloudHelper.updatePointCloudDataByPb
import com.zhidaoauto.map.sdk.open.camera.CameraPosition
import com.zhidaoauto.map.sdk.open.camera.CameraUpdateFactory.newLatLngBounds
import com.zhidaoauto.map.sdk.open.location.MyLocationStyle
import com.zhidaoauto.map.sdk.open.marker.BitmapDescriptorFactory.convertViewToBitmap
@@ -59,7 +58,7 @@ import java.util.concurrent.atomic.AtomicInteger
import kotlin.properties.Delegates
class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIController,
OnMapLoadedListener, OnCameraChangeListener, OnMapClickListener, OnMapTouchListener,
OnMapLoadedListener, OnMapClickListener, OnMapTouchListener,
OnMarkClickListener, OnMapStyleListener, OnMapViewVisualAngleChangeListener, OnRoadInfoListener,
ILog, OnRoamStatusListener, OnRoadSideFenceRegionListener {
@@ -119,7 +118,6 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle
mMapView.setOnMapLoadedListener(this)
mMapView.setOnMapTouchListener(this)
mMapView.setOnMapClickListener(this)
mMapView.setOnCameraChangeListener(this)
mMapView.setOnMapStyleListener(this)
mMapView.setOnRoamStatusListener(this)
mMapView.setOnMapViewVisualAngleChangeListener(this)
@@ -194,14 +192,6 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle
override fun onMapLoaded() {
i(M_MAP + TAG, "onMapLoaded: ")
if (checkAMapView()) {
val cameraPosition = mMapView.getMapAutoViewHelper()!!
.getCameraPosition()
mogoMapListenerHandler.onMapChanged(
ObjectUtils.fromAMap(cameraPosition.target),
cameraPosition.zoom,
cameraPosition.tilt,
cameraPosition.bearing
)
loadPreVehicleModel()
}
}
@@ -633,18 +623,6 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle
}
}
override fun onCameraChange(type: Int, value: Int) {}
override fun onCameraChangeFinish(position: CameraPosition?) {
position?.let {
mogoMapListenerHandler.onMapChanged(
ObjectUtils.fromAMap(position.target),
position.zoom,
position.tilt,
position.bearing
)
}
}
override fun onChangeMapStyle(style: Int) {
// CallerLogger.INSTANCE.d(M_MAP + TAG, "currentMapStyle = " + styleId + " , current = " + mCurrentUI);
// 映射地图样式ID到鹰眼样式ID