145 lines
3.4 KiB
Java
145 lines
3.4 KiB
Java
package com.mogo.map;
|
|
|
|
import android.content.Context;
|
|
import android.graphics.Rect;
|
|
|
|
import com.mogo.map.impl.amap.navi.NaviClient;
|
|
import com.mogo.map.navi.IMogoNavi;
|
|
import com.mogo.map.navi.MogoCalculatePath;
|
|
import com.mogo.map.navi.MogoNaviConfig;
|
|
import com.mogo.map.navi.OnCalculatePathItemClickInteraction;
|
|
|
|
import java.util.List;
|
|
|
|
/**
|
|
* @author congtaowang
|
|
* @since 2019-12-25
|
|
* <p>
|
|
* 导航代理
|
|
*/
|
|
public class MogoNavi implements IMogoNavi {
|
|
|
|
private IMogoNavi mDelegate;
|
|
|
|
private static volatile MogoNavi sInstance;
|
|
|
|
private MogoNavi(Context context) {
|
|
mDelegate = NaviClient.getInstance(context);
|
|
}
|
|
|
|
public static MogoNavi getInstance(Context context) {
|
|
if (sInstance == null) {
|
|
synchronized (MogoNavi.class) {
|
|
if (sInstance == null) {
|
|
sInstance = new MogoNavi(context);
|
|
}
|
|
}
|
|
}
|
|
return sInstance;
|
|
}
|
|
|
|
public synchronized void release() {
|
|
sInstance = null;
|
|
}
|
|
|
|
@Override
|
|
public void naviTo(MogoLatLng endPoint) {
|
|
if (mDelegate != null) {
|
|
mDelegate.naviTo(endPoint);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void naviTo(MogoLatLng endPoint, MogoNaviConfig config) {
|
|
if (mDelegate != null) {
|
|
mDelegate.naviTo(endPoint, config);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void naviTo(MogoLatLng endPoint, List<MogoLatLng> wayPoints) {
|
|
if (mDelegate != null) {
|
|
mDelegate.naviTo(endPoint, wayPoints);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void naviTo(MogoLatLng endPoint, List<MogoLatLng> wayPoints, MogoNaviConfig config) {
|
|
if (mDelegate != null) {
|
|
mDelegate.naviTo(endPoint, wayPoints, config);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void reCalculateRoute(MogoNaviConfig config) {
|
|
if (mDelegate != null) {
|
|
mDelegate.reCalculateRoute(config);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void stopNavi() {
|
|
if (mDelegate != null) {
|
|
mDelegate.stopNavi();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void startNavi(boolean isRealNavi) {
|
|
if (mDelegate != null) {
|
|
mDelegate.startNavi(isRealNavi);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean isNaviing() {
|
|
if (mDelegate != null) {
|
|
return mDelegate.isNaviing();
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public List<MogoCalculatePath> getCalculatedStrategies() {
|
|
if (mDelegate != null) {
|
|
return mDelegate.getCalculatedStrategies();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public OnCalculatePathItemClickInteraction getItemClickInteraction() {
|
|
if (mDelegate != null) {
|
|
return mDelegate.getItemClickInteraction();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void setLineClickInteraction(OnCalculatePathItemClickInteraction itemClickInteraction) {
|
|
if (mDelegate != null) {
|
|
mDelegate.setLineClickInteraction(itemClickInteraction);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void clearCalculatePaths() {
|
|
if (mDelegate != null) {
|
|
mDelegate.clearCalculatePaths();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setCalculatePathDisplayBounds(Rect bounds) {
|
|
if (mDelegate != null) {
|
|
mDelegate.setCalculatePathDisplayBounds(bounds);
|
|
}
|
|
}
|
|
|
|
@Override public void updateNaviConfig() {
|
|
if (mDelegate != null) {
|
|
mDelegate.updateNaviConfig();
|
|
}
|
|
}
|
|
}
|