Files
MoGoEagleEye/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.kt
2023-09-13 18:31:30 +08:00

103 lines
2.7 KiB
Kotlin

package com.mogo.map
import android.content.Context
import android.os.Bundle
import android.util.AttributeSet
import android.view.ViewGroup
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
import com.zhidaoauto.map.sdk.open.view.MapAutoView
import com.zhidaoauto.map.sdk.open.view.MapStyleParams
/**
* @author congtaowang
* @since 2019-12-18
*
*
* 地图实例
*/
open class MogoMapView : MogoBaseMapView, ILifeCycle {
constructor(context: Context?) : super(context) {}
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {}
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr) {
}
private var mapAutoView: MapAutoView? = null
override fun addMapView(context: Context, attrs: AttributeSet) {
if (mapAutoView == null) {
mapAutoView = if (styleParams == null) {
MapAutoView(context, attrs)
} else {
MapAutoView(context, styleParams!!)
}
}
if (mMapView == null) {
mMapView = AMapViewWrapper(mapAutoView!!)
val mapView = mMapView.mapView
if (mapView != null) {
addView(
mapView, LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
)
} else {
e(TAG, "create MapView instance failed.")
}
}
}
/**
* 子类实现
* 代码StyleParams和XML初始化设置同时仅支持一种
*
* @return MapStyleParams
*/
protected val styleParams: MapStyleParams?
protected get() = null
override fun getInstanceTag(): String {
return MogoMap.DEFAULT
}
override fun onCreate(bundle: Bundle) {
super.onCreate(bundle)
d(TAG, "onCreate")
}
override fun onResume() {
super.onResume()
d(TAG, "onResume")
}
override fun onPause() {
super.onPause()
d(TAG, "onPause")
}
override fun onDestroy() {
super.onDestroy()
d(TAG, "onDestroy")
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
}
override fun onLowMemory() {
super.onLowMemory()
}
fun setExtraGPSData(gnssInfo: MogoLocation) {
map?.uiController?.setExtraGPSData(gnssInfo)
}
companion object {
private const val TAG = "MogoMapView"
}
}