103 lines
2.7 KiB
Kotlin
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"
|
|
}
|
|
} |