package com.mogo.map; import android.content.Context; import android.os.Bundle; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import androidx.annotation.Nullable; import com.mogo.map.impl.amap.AMapBaseMapView; import com.mogo.map.impl.amap.uicontroller.AMapUIController; import com.mogo.map.impl.custom.CustomMapView; import com.mogo.utils.logger.Logger; /** * @author congtaowang * @since 2019-12-18 *
* 地图实例 */ public class MogoMapView extends MogoBaseMapView implements ILifeCycle { private static final String TAG = "MogoMapView"; public MogoMapView( Context context ) { super( context ); } public MogoMapView( Context context, @Nullable AttributeSet attrs ) { super( context, attrs ); } public MogoMapView( Context context, @Nullable AttributeSet attrs, int defStyleAttr ) { super( context, attrs, defStyleAttr ); } private boolean mIsVrMode = false; @Override protected void addDleMaps() { mCustomMapView = new CustomMapView().create( getContext() ); if ( mCustomMapView != null ) { final View mapView = mCustomMapView.getMapView(); if ( mapView != null ) { addView( mapView, new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ) ); } else { Logger.e( TAG, "create MapView instance failed." ); } } else { Logger.e( TAG, "create IMogoMapView instance failed." ); } mAMapView = new AMapBaseMapView().create( getContext() ); if ( mAMapView != null ) { final View mapView = mAMapView.getMapView(); if ( mapView != null ) { addView( mapView, new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ) ); } else { Logger.e( TAG, "create MapView instance failed." ); } } else { Logger.e( TAG, "create IMogoMapView instance failed." ); } mMapView = mAMapView; mCustomMapView.getMapView().setVisibility( View.GONE ); MogoMap.getInstance().init( getContext(), mMapView.getMap() ); } @Override public void display2DMap( boolean invokeCreateAuto, boolean invokeResumeAuto ) { mIsVrMode = false; mMapView = mAMapView; MogoMarkerManager.getInstance( getContext() ).removeMarkers(); MogoMap.getInstance().init( getContext(), mAMapView.getMap() ); MogoMapUIController.getInstance().setDelegate( AMapUIController.getInstance() ); mCustomMapView.onPause(); mCustomMapView.getMapView().setVisibility( View.GONE ); mAMapView.onResume(); mAMapView.getMapView().setVisibility( View.VISIBLE ); } @Override public void displayVRMap( boolean invokeCreateAuto, boolean invokeResumeAuto ) { mIsVrMode = true; mMapView = mCustomMapView; MogoMarkerManager.getInstance( getContext() ).removeMarkers(); MogoMap.getInstance().init( getContext(), mCustomMapView.getMap() ); MogoMapUIController.getInstance().setDelegate( com.mogo.map.impl.custom.uicontroller.AMapUIController.getInstance() ); mCustomMapView.onResume(); mCustomMapView.getMapView().setVisibility( View.VISIBLE ); mAMapView.onPause(); mAMapView.getMapView().setVisibility( View.GONE ); } public boolean isVrMode() { return mIsVrMode; } @Override public void onCreate( Bundle bundle ) { super.onCreate( bundle ); Logger.d( TAG, "onCreate" ); } @Override public void onResume() { super.onResume(); Logger.d( TAG, "onResume" ); } @Override public void onPause() { super.onPause(); Logger.d( TAG, "onPause" ); } @Override public void onDestroy() { super.onDestroy(); Logger.d( TAG, "onDestroy" ); } @Override public void onSaveInstanceState( Bundle outState ) { super.onSaveInstanceState( outState ); } @Override public void onLowMemory() { super.onLowMemory(); } }