opt
This commit is contained in:
@@ -82,8 +82,6 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
||||
private AMapMarkerClickHandler mMarkerClickHandler;
|
||||
private EnumMapUI mCurrentUIMode;
|
||||
|
||||
// 自定义定位源的回调信息,前瞻线
|
||||
private LocationSource.OnLocationChangedListener mOnLocationChangedListener;
|
||||
private boolean mIsCarLocked = false;
|
||||
|
||||
private float mDefaultZoomLevel = 16.0f;
|
||||
@@ -212,7 +210,6 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
||||
initMapView();
|
||||
initListeners();
|
||||
initMyLocation();
|
||||
// initLocationSource();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -554,21 +551,8 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
||||
style.strokeWidth( 0 );
|
||||
style.radiusFillColor( Color.TRANSPARENT );
|
||||
mMapView.getMap().setMyLocationStyle( style );
|
||||
}
|
||||
}
|
||||
|
||||
private void initLocationSource() {
|
||||
if ( checkAMapView() ) {
|
||||
mMapView.getMap().setLocationSource( new LocationSource() {
|
||||
@Override
|
||||
public void activate( OnLocationChangedListener onLocationChangedListener ) {
|
||||
AMapNaviViewWrapper.this.mOnLocationChangedListener = onLocationChangedListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deactivate() {
|
||||
|
||||
}
|
||||
mMapView.getMap().setOnMyLocationChangeListener( location -> {
|
||||
Logger.d( TAG, "%s", location );
|
||||
} );
|
||||
}
|
||||
}
|
||||
@@ -835,9 +819,6 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
||||
|
||||
@Override
|
||||
public void changeMyLocation( Location location ) {
|
||||
if ( mOnLocationChangedListener != null ) {
|
||||
mOnLocationChangedListener.onLocationChanged( location );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -4,12 +4,14 @@ import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import android.location.Location;
|
||||
|
||||
import com.amap.api.maps.LocationSource;
|
||||
import com.amap.api.maps.model.Polyline;
|
||||
import com.amap.api.navi.AMapNavi;
|
||||
import com.amap.api.navi.enums.AimLessMode;
|
||||
import com.amap.api.navi.enums.NaviType;
|
||||
import com.amap.api.navi.model.NaviLatLng;
|
||||
import com.mogo.map.MogoLatLng;
|
||||
import com.mogo.map.impl.amap.AMapWrapper;
|
||||
import com.mogo.map.impl.amap.message.AMapMessageManager;
|
||||
import com.mogo.map.impl.amap.utils.ObjectUtils;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
@@ -51,6 +53,7 @@ public class NaviClient implements IMogoNavi {
|
||||
|
||||
private Location mCarLocation;
|
||||
private IMogoCarLocationChangedListener mCarLocationChangedListener;
|
||||
private LocationSource.OnLocationChangedListener mOnLocationChangedListener;
|
||||
|
||||
private NaviClient( Context context ) {
|
||||
mAMapNavi = AMapNavi.getInstance( context );
|
||||
@@ -289,4 +292,45 @@ public class NaviClient implements IMogoNavi {
|
||||
mAMapNaviListener.displayOverview();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUseExtraGPSData( boolean use ) {
|
||||
Logger.d( TAG, "设置外部gps源状态 %s", use );
|
||||
mAMapNavi.setIsUseExtraGPSData( use );
|
||||
if ( use ) {
|
||||
AMapWrapper.getAMap().setLocationSource( new LocationSource() {
|
||||
@Override
|
||||
public void activate( OnLocationChangedListener onLocationChangedListener ) {
|
||||
NaviClient.this.mOnLocationChangedListener = onLocationChangedListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deactivate() {
|
||||
}
|
||||
} );
|
||||
} else {
|
||||
AMapWrapper.getAMap().setLocationSource( null );
|
||||
mOnLocationChangedListener = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExtraGPSData( double lon, double lat, float speed, float accuracy, float bearing, long timestamp ) {
|
||||
if ( !mAMapNavi.getIsUseExtraGPSData() ) {
|
||||
Logger.d( TAG, "拒绝外部GPS数据" );
|
||||
return;
|
||||
}
|
||||
Location location = new Location( "外部GPS源" );
|
||||
location.setLongitude( lon );
|
||||
location.setLatitude( lat );
|
||||
location.setSpeed( speed );
|
||||
location.setAccuracy( accuracy );
|
||||
location.setBearing( bearing );
|
||||
location.setTime( timestamp );
|
||||
//type字段传1时代表WGS84坐标
|
||||
mAMapNavi.setExtraGPSData( 2, location );
|
||||
if ( mOnLocationChangedListener != null ) {
|
||||
mOnLocationChangedListener.onLocationChanged( location );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
import android.graphics.Rect;
|
||||
import android.location.Location;
|
||||
|
||||
import com.mogo.map.MogoLatLng;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -163,4 +165,16 @@ public interface IMogoNavi {
|
||||
* 查看全程
|
||||
*/
|
||||
void displayOverview();
|
||||
|
||||
/**
|
||||
* 设置使用外部定位源
|
||||
*
|
||||
* @param use true - 使用,false - 不适用
|
||||
*/
|
||||
void setUseExtraGPSData( boolean use );
|
||||
|
||||
/**
|
||||
* 设置外部数据源
|
||||
*/
|
||||
void setExtraGPSData( double lon, double lat, float speed, float accuracy, float bearing, long timestamp );
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mogo.map;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import android.location.Location;
|
||||
|
||||
import com.mogo.map.impl.amap.navi.NaviClient;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
@@ -201,4 +202,18 @@ public class MogoNavi implements IMogoNavi {
|
||||
mDelegate.displayOverview();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUseExtraGPSData( boolean use ) {
|
||||
if ( mDelegate != null ) {
|
||||
mDelegate.setUseExtraGPSData( use );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExtraGPSData( double lon, double lat, float speed, float accuracy, float bearing, long timestamp ) {
|
||||
if ( mDelegate != null ) {
|
||||
mDelegate.setExtraGPSData( lon, lat, speed, accuracy, bearing, timestamp );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user