[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

@@ -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
/**