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" } }