[6.2.0] fix handler thread of map cost
This commit is contained in:
@@ -129,7 +129,7 @@ object ConfigStartUp {
|
||||
}
|
||||
|
||||
val mapParams = MapParams.init()
|
||||
mapParams.setDebugMode(false)
|
||||
mapParams.setDebugMode(true)
|
||||
// 1-使用本地地图数据,0-使用在线地图数据
|
||||
// .setDataFileSource(1)
|
||||
.setIsRecordLogs(false)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
//设置地图风格
|
||||
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user