This commit is contained in:
wangcongtao
2020-04-26 14:06:57 +08:00
parent 700501a859
commit 71b3bdbb49
8 changed files with 118 additions and 27 deletions

View File

@@ -49,6 +49,7 @@ import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.uicontroller.CarCursorOption;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.MapCameraPosition;
import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
@@ -862,4 +863,13 @@ public class AMapNaviViewWrapper implements IMogoMapView,
}
mMapView.getMap().setMyLocationStyle( style );
}
@Override
public MapCameraPosition getMapCameraPosition() {
if ( checkAMapView() ) {
CameraPosition cameraPosition = mMapView.getMap().getCameraPosition();
return ObjectUtils.fromAMap( cameraPosition );
}
return null;
}
}

View File

@@ -12,6 +12,7 @@ import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.uicontroller.CarCursorOption;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.MapCameraPosition;
import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.utils.logger.Logger;
@@ -260,4 +261,12 @@ public class AMapUIController implements IMogoMapUIController {
mClient.setCarCursorOption( option );
}
}
@Override
public MapCameraPosition getMapCameraPosition() {
if ( mClient != null ) {
return mClient.getMapCameraPosition();
}
return null;
}
}

View File

@@ -7,6 +7,7 @@ import android.view.View;
import com.amap.api.location.AMapLocation;
import com.amap.api.maps.model.BitmapDescriptor;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.Poi;
@@ -69,6 +70,7 @@ import com.mogo.map.search.inputtips.query.MogoInputtipsQuery;
import com.mogo.map.search.poisearch.MogoPoiResult;
import com.mogo.map.search.poisearch.MogoSearchBound;
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
import com.mogo.map.uicontroller.MapCameraPosition;
import java.util.ArrayList;
import java.util.Iterator;
@@ -199,7 +201,7 @@ public class ObjectUtils {
return new MogoLatLng( point.getLatitude(), point.getLongitude() );
}
public static MogoLatLng fromAMap( LatLng point ) {
public static MogoLatLng CameraPositionfromAMap( LatLng point ) {
if ( point == null ) {
return null;
}
@@ -736,4 +738,18 @@ public class ObjectUtils {
target.setDottedLineType( PolylineOptions.DOTTEDLINE_TYPE_CIRCLE );
return target;
}
public static MogoLatLng fromAMap( LatLng latLng ) {
if ( latLng == null ) {
return null;
}
return new MogoLatLng( latLng.latitude, latLng.longitude );
}
public static MapCameraPosition fromAMap( CameraPosition position ) {
if ( position == null ) {
return null;
}
return new MapCameraPosition( fromAMap( position.target ), position.bearing, position.tilt, position.zoom );
}
}

View File

@@ -202,4 +202,11 @@ public interface IMogoMapUIController {
* @param option 为空时使用默认配置
*/
void setCarCursorOption( @Nullable CarCursorOption option );
/**
* 获取地图视图描述快照
*
* @return
*/
MapCameraPosition getMapCameraPosition();
}

View File

@@ -0,0 +1,40 @@
package com.mogo.map.uicontroller;
import com.mogo.map.MogoLatLng;
/**
* @author congtaowang
* @since 2020-04-26
* <p>
* 地图视图描述
*/
public class MapCameraPosition {
private final MogoLatLng mLonLat;
private final float mBearing;
private final float mTilt;
private final float mZoom;
public MapCameraPosition( MogoLatLng lonLat, float bearing, float tilt, float zoom ) {
this.mLonLat = lonLat;
this.mBearing = bearing;
this.mTilt = tilt;
this.mZoom = zoom;
}
public MogoLatLng getLonLat() {
return mLonLat;
}
public float getBearing() {
return mBearing;
}
public float getTilt() {
return mTilt;
}
public float getZoom() {
return mZoom;
}
}

View File

@@ -11,6 +11,7 @@ import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.uicontroller.CarCursorOption;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.map.uicontroller.MapCameraPosition;
import com.mogo.map.uicontroller.MapControlResult;
import java.util.List;
@@ -253,4 +254,12 @@ public class MogoMapUIController implements IMogoMapUIController {
mDelegate.setCarCursorOption( option );
}
}
@Override
public MapCameraPosition getMapCameraPosition() {
if ( mDelegate != null ) {
return mDelegate.getMapCameraPosition();
}
return null;
}
}