[base_3.4.0-map-sdk]
This commit is contained in:
@@ -62,13 +62,11 @@ dependencies {
|
||||
api project(":OCH:mogo-och-data")
|
||||
|
||||
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
|
||||
api rootProject.ext.dependencies.mogoutils
|
||||
api rootProject.ext.dependencies.mogocommons
|
||||
api rootProject.ext.dependencies.mogo_core_function_call
|
||||
api rootProject.ext.dependencies.mogo_core_function_hmi
|
||||
api rootProject.ext.dependencies.mogo_core_function_map
|
||||
}else {
|
||||
api project(":core:mogo-core-utils")
|
||||
api project(":foudations:mogo-commons")
|
||||
api project(':core:mogo-core-function-call')
|
||||
api project(':core:function-impl:mogo-core-function-hmi')
|
||||
|
||||
@@ -21,7 +21,6 @@ import com.mogo.eagle.core.data.temp.EventLogout;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst;
|
||||
import com.mogo.och.common.module.biz.provider.LoginService;
|
||||
import com.mogo.och.common.module.voice.VoiceNotice;
|
||||
import com.mogo.och.taxi.R;
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
|
||||
import com.mogo.och.taxi.bean.OrderQueryRespBean;
|
||||
@@ -106,7 +105,6 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
return "TaxiFragment";
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||
@Override
|
||||
protected void initViews() {
|
||||
super.initViews();
|
||||
@@ -201,10 +199,6 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapLoaded() {
|
||||
}
|
||||
|
||||
public void updateAutopilotStatus(int status) {
|
||||
onAutopilotStatusChanged(status);
|
||||
}
|
||||
|
||||
@@ -131,6 +131,7 @@ object ConfigStartUp {
|
||||
}
|
||||
}
|
||||
|
||||
//todo 多实例优化
|
||||
val mapParams = MapParams.init()
|
||||
mapParams.setDebugMode(false) // 1-使用本地地图数据,0-使用在线地图数据
|
||||
//.setDataFileSource(1)
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.mogo.eagle.core.function.view
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.LifecycleObserver
|
||||
import chassis.Chassis
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
@@ -13,7 +12,6 @@ import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager
|
||||
import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager
|
||||
import com.mogo.map.MogoMapView
|
||||
|
||||
@@ -50,7 +48,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
|
||||
//设置旋转手势是否可用。
|
||||
it.setRotateGesturesEnabled(false)
|
||||
//设置比例尺控件是否可见
|
||||
it.setScaleControlsEnabled(true)
|
||||
it.setScaleControlsEnabled(false)
|
||||
//设置拖拽手势是否可用。
|
||||
it.setScrollGesturesEnabled(true)
|
||||
//设置倾斜手势是否可用。
|
||||
|
||||
@@ -15,8 +15,6 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
*/
|
||||
public interface IMogoMapService extends IProvider {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 地图UI控制
|
||||
*
|
||||
@@ -24,7 +22,6 @@ public interface IMogoMapService extends IProvider {
|
||||
*/
|
||||
IMogoMapUIController getMapUIController();
|
||||
|
||||
|
||||
/**
|
||||
* 覆盖物操作
|
||||
* @return
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.mogo.eagle.core.function.api.map.listener
|
||||
|
||||
/**
|
||||
*@author xiaoyuzhou
|
||||
*@date 2021/10/15 12:18 下午
|
||||
* 地图样式改变回调监听
|
||||
*/
|
||||
interface IMoGoMapStyleChangeListener {
|
||||
|
||||
/**
|
||||
* 地图样式改变回调监听
|
||||
*/
|
||||
fun onMapStyleModeChange(styleMode: Int)
|
||||
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
package com.mogo.eagle.core.function.api.map.smp;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author donghongyu
|
||||
* @date 12/10/20 1:36 PM
|
||||
*/
|
||||
public interface IMogoSmallMapProvider {
|
||||
|
||||
/**
|
||||
* 显示面板
|
||||
*/
|
||||
void showPanel();
|
||||
|
||||
/**
|
||||
* 隐藏面板
|
||||
*/
|
||||
void hidePanel();
|
||||
|
||||
/**
|
||||
* 绘制路径线
|
||||
*/
|
||||
void drawablePolyline(List<MogoLatLng> coordinates);
|
||||
|
||||
/**
|
||||
* 清除路径线
|
||||
*/
|
||||
void clearPolyline();
|
||||
|
||||
/**
|
||||
* 查询全揽模式下V2X事件
|
||||
*/
|
||||
default void startQueryV2XEvents() {}
|
||||
|
||||
/**
|
||||
* 清除V2X事件
|
||||
*/
|
||||
default void clearV2XMarkers() {}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.mogo.eagle.core.function.call.map
|
||||
|
||||
import com.mogo.eagle.core.function.api.map.listener.IMoGoMapStyleChangeListener
|
||||
import com.mogo.eagle.core.function.call.base.CallerBase
|
||||
|
||||
/**
|
||||
* @author xiaoyuzhou
|
||||
* @date 2021/9/30 5:48 下午
|
||||
* 地图 样式改变 监听管理
|
||||
*/
|
||||
object CallerMapStyleListenerManager : CallerBase<IMoGoMapStyleChangeListener>() {
|
||||
|
||||
// 记录地图样式
|
||||
private var mMapStyleMode = 0
|
||||
|
||||
/**
|
||||
* 返回当前的地图皮肤
|
||||
*/
|
||||
fun getMapStyleMode(): Int {
|
||||
return mMapStyleMode
|
||||
}
|
||||
|
||||
override fun doSomeAfterAddListener(tag: String, listener: IMoGoMapStyleChangeListener) {
|
||||
listener.onMapStyleModeChange(mMapStyleMode)
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发 地图样式改变 监听
|
||||
*/
|
||||
fun invokeMapStyleChange() {
|
||||
invokeMapStyleChange(mMapStyleMode)
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发 地图样式改变 监听
|
||||
* @param mapStyleMode 选中状态
|
||||
*/
|
||||
fun invokeMapStyleChange(mapStyleMode: Int) {
|
||||
mMapStyleMode = mapStyleMode
|
||||
M_LISTENERS.forEach {
|
||||
val tag = it.key
|
||||
val listener = it.value
|
||||
listener.onMapStyleModeChange(mMapStyleMode)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -34,6 +34,14 @@ object CallerMapUIServiceManager {
|
||||
return serviceProvider?.mapUIController?.isCityDataCached ?: false
|
||||
}
|
||||
|
||||
fun cancelDownloadCacheData() {
|
||||
serviceProvider?.mapUIController?.cancelDownloadCacheData()
|
||||
}
|
||||
|
||||
fun getCityCode(): String? {
|
||||
return serviceProvider?.mapUIController?.cityCode
|
||||
}
|
||||
|
||||
fun getOverlayManager(): IMoGoOverlayManager? {
|
||||
return serviceProvider?.overlayManager
|
||||
}
|
||||
@@ -42,11 +50,4 @@ object CallerMapUIServiceManager {
|
||||
return serviceProvider?.getGDLocationServer(context)
|
||||
}
|
||||
|
||||
fun cancelDownloadCacheData() {
|
||||
serviceProvider?.mapUIController?.cancelDownloadCacheData()
|
||||
}
|
||||
|
||||
fun getCityCode(): String? {
|
||||
return serviceProvider?.mapUIController?.cityCode
|
||||
}
|
||||
}
|
||||
@@ -3,5 +3,5 @@ package com.zhidaoauto.map.sdk.open.abs
|
||||
interface OnMapLoadedListener {
|
||||
fun onMapInit()
|
||||
fun onMapLoaded()
|
||||
fun onRoadLoaded(roadInfo:String?)
|
||||
fun onRoadLoaded(roadInfo:String?){}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.mogo.map
|
||||
|
||||
import com.mogo.map.center.CenterLine
|
||||
|
||||
interface IMogoData {
|
||||
|
||||
fun setDebugMode(debugMode: Boolean)
|
||||
|
||||
/**
|
||||
* 获取行驶方向一定长度的中心线
|
||||
*
|
||||
* @param lon 经度
|
||||
* @param lat 纬度
|
||||
* @param angle 航向角
|
||||
* @param distance 获取车道中心线的长度,> 0: 行驶方向前方距离, <0 行驶方向后方距离
|
||||
* @return 中心线相关数据
|
||||
*/
|
||||
fun getCenterLineRangeInfo(lon: Double, lat: Double, angle: Float, distance: Float): CenterLine?
|
||||
|
||||
|
||||
fun getCenterLineRangeInfo(
|
||||
lon: Double,
|
||||
lat: Double,
|
||||
angle: Float,
|
||||
distance: Float,
|
||||
call: ((Int, com.mogo.map.center.CenterLine?) -> Unit)
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.mogo.map
|
||||
|
||||
class MogoData {
|
||||
|
||||
companion object{
|
||||
|
||||
val mogoData by lazy(LazyThreadSafetyMode.SYNCHRONIZED){
|
||||
MogoData()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -31,6 +31,7 @@ public class MogoMap {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
//todo 多实例
|
||||
public void init( Context context, IMogoMap map ) {
|
||||
this.mContext = context;
|
||||
this.mMap = map;
|
||||
|
||||
@@ -38,13 +38,6 @@ public interface IMogoMapUIController {
|
||||
*/
|
||||
void changeZoom2(float zoom);
|
||||
|
||||
/**
|
||||
* 设置地图是否是Debug模式
|
||||
*
|
||||
* @param debugMode 是否开启Debug模式
|
||||
*/
|
||||
void setDebugMode(Boolean debugMode);
|
||||
|
||||
/**
|
||||
* 进入VR 模式
|
||||
*
|
||||
@@ -241,36 +234,6 @@ public interface IMogoMapUIController {
|
||||
*/
|
||||
void changeCurrentIcon(@RawRes int iconId);
|
||||
|
||||
/**
|
||||
* 获取瓦片id
|
||||
*
|
||||
* @param lon 经度
|
||||
* @param lat 纬度
|
||||
* @return 瓦片id
|
||||
*/
|
||||
long getTileId(double lon, double lat);
|
||||
|
||||
|
||||
/**
|
||||
* 获取限速
|
||||
*
|
||||
* @param lon
|
||||
* @param lat
|
||||
* @param angle
|
||||
* @return
|
||||
*/
|
||||
int getLimitSpeed(double lon, double lat, float angle);
|
||||
|
||||
/**
|
||||
* 获取车道中心线信息
|
||||
*
|
||||
* @param lon
|
||||
* @param lat
|
||||
* @param angle
|
||||
* @return
|
||||
*/
|
||||
CenterLine getCenterLineInfo(double lon, double lat, float angle);
|
||||
|
||||
/**
|
||||
* 自研地图是否匹配道路
|
||||
*
|
||||
@@ -309,20 +272,6 @@ public interface IMogoMapUIController {
|
||||
*/
|
||||
void setMapDAngle(float angle);
|
||||
|
||||
/**
|
||||
* 获取行车方向
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
float getAngle(double startLon, double startLat, double endLon, double endLat);
|
||||
|
||||
/**
|
||||
* 获取当前道路方向
|
||||
*
|
||||
* @return angle
|
||||
*/
|
||||
Double getRoadAngle(Double lon, Double lat, float angle);
|
||||
|
||||
/**
|
||||
* 设置锁屏模式
|
||||
*/
|
||||
|
||||
@@ -40,7 +40,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapDevaListenerManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapRomaListener;
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapStyleListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
@@ -112,7 +111,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
.naviCursorRes(R.drawable.ic_amap_navi_cursor)
|
||||
.build();
|
||||
private CarCursorOption mCarCursorOption = DEFAULT_OPTION;
|
||||
private EnumMapUI mCurrentUI = EnumMapUI.MAP_STYLE_NIGHT_VR;
|
||||
private volatile EnumMapUI mCurrentUI = EnumMapUI.MAP_STYLE_NIGHT_VR;
|
||||
private VisualAngleMode mVisualAngleMode = MODE_MEDIUM_SIGHT;
|
||||
|
||||
private IHdCacheListener hdCacheListener;
|
||||
@@ -154,6 +153,21 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
|
||||
}
|
||||
|
||||
private void initListeners() {
|
||||
mMapView.setOnMarkClickListener(this);
|
||||
mMapView.setOnMapLoadedListener(this);
|
||||
mMapView.setOnMapTouchListener(this);
|
||||
mMapView.setOnMapClickListener(this);
|
||||
mMapView.setOnCameraChangeListener(this);
|
||||
mMapView.setOnMapStyleListener(this);
|
||||
mMapView.setOnRoamStatusListener(this);
|
||||
mMapView.setOnMapViewVisualAngleChangeListener(this);
|
||||
mMapView.setOnRoadInfoListener(this, 1);
|
||||
//todo 多实例改造
|
||||
MapAutoApi.INSTANCE.registerLogListener(this, mMapView.getEventController());
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "styleop - initListeners - setOnMapStyleListener - view " + mMapView);
|
||||
}
|
||||
|
||||
private void initMapView() {
|
||||
if (mMapView == null) {
|
||||
return;
|
||||
@@ -176,21 +190,73 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
});
|
||||
}
|
||||
|
||||
private void initListeners() {
|
||||
mMapView.setOnMarkClickListener(this);
|
||||
mMapView.setOnMapLoadedListener(this);
|
||||
mMapView.setOnMapTouchListener(this);
|
||||
mMapView.setOnMapClickListener(this);
|
||||
mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_ZOOM);
|
||||
mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_ROTATE);
|
||||
mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_3D);
|
||||
mMapView.setOnCameraChangeListener(this);
|
||||
mMapView.setOnMapStyleListener(this);
|
||||
mMapView.setOnRoamStatusListener(this);
|
||||
mMapView.setOnMapViewVisualAngleChangeListener(this);
|
||||
mMapView.setOnRoadInfoListener(this, 1);
|
||||
MapAutoApi.INSTANCE.registerLogListener(this, mMapView.getEventController());
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "styleop - initListeners - setOnMapStyleListener - view " + mMapView);
|
||||
private Context getContext() {
|
||||
return mMapView.getContext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getMapView() {
|
||||
return mMapView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoMap getMap() {
|
||||
return mIMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle bundle) {
|
||||
if (mMapView != null) {
|
||||
mMapView.onCreate(bundle);
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onCreate");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
if (mMapView != null) {
|
||||
mMapView.onResume();
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onResume");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
if (mMapView != null) {
|
||||
mMapView.onPause();
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onPause");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
if (mMapView != null) {
|
||||
mMapView.onDestroy();
|
||||
mMapView.setOnMarkClickListener(null);
|
||||
mMapView.setOnMapLoadedListener(null);
|
||||
mMapView.setOnMapTouchListener(null);
|
||||
mMapView.setOnMapClickListener(null);
|
||||
mMapView.setOnCameraChangeListener(null);
|
||||
mMapView.setOnMapStyleListener(null);
|
||||
mMapView.setOnMapViewVisualAngleChangeListener(null);
|
||||
//todo 多实例改造
|
||||
MapAutoApi.INSTANCE.unregisterLogListener(this, mMapView.getEventController());
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onDestroy");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
if (mMapView != null) {
|
||||
mMapView.onSaveInstanceState(outState);
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onSaveInstanceState");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLowMemory() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -260,73 +326,6 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
private Context getContext() {
|
||||
return mMapView.getContext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getMapView() {
|
||||
return mMapView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoMap getMap() {
|
||||
return mIMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle bundle) {
|
||||
if (mMapView != null) {
|
||||
mMapView.onCreate(bundle);
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onCreate");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
if (mMapView != null) {
|
||||
mMapView.onResume();
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onResume");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
if (mMapView != null) {
|
||||
mMapView.onPause();
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onPause");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
if (mMapView != null) {
|
||||
mMapView.onDestroy();
|
||||
mMapView.setOnMarkClickListener(null);
|
||||
mMapView.setOnMapLoadedListener(null);
|
||||
mMapView.setOnMapTouchListener(null);
|
||||
mMapView.setOnMapClickListener(null);
|
||||
mMapView.setOnCameraChangeListener(null);
|
||||
MapAutoApi.INSTANCE.unregisterLogListener(this, mMapView.getEventController());
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onDestroy");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
if (mMapView != null) {
|
||||
mMapView.onSaveInstanceState(outState);
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "map onSaveInstanceState");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLowMemory() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public MapControlResult changeZoom(float zoom) {
|
||||
if (isVrMold()) {
|
||||
@@ -339,18 +338,10 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
|
||||
@Override
|
||||
public void changeZoom2(float zoom) {
|
||||
// if (isVrMold()) {
|
||||
// return;
|
||||
// }
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "changeZoom2 : " + zoom);
|
||||
getMap().changeZoom2(zoom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDebugMode(Boolean debugMode) {
|
||||
MapAutoApi.INSTANCE.setDebugMode(debugMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
|
||||
MapAutoViewHelper mapAutoViewHelper = mMapView.getMapAutoViewHelper();
|
||||
@@ -679,21 +670,11 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTileId(double lon, double lat) {
|
||||
return getMap().getUIController().getTileId(lon, lat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void result(@NonNull String filePath) {
|
||||
CallerMapDevaListenerManager.INSTANCE.invokeUploadLogFile(filePath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapClick(@Nullable LonLatPoint lonLatPoint) {
|
||||
MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onMapClick(ObjectUtils.fromAMap(lonLatPoint));
|
||||
}
|
||||
|
||||
//渲染第一帧
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
@@ -728,10 +709,6 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRoadLoaded(@Nullable String s) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouch(@Nullable MotionEvent motionEvent) {
|
||||
MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onTouch(motionEvent);
|
||||
@@ -739,13 +716,8 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMarkClick(@NotNull Marker markerInfo) {
|
||||
// mMarkerClickHandler.handleMarkerClicked(markerInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRoamStatus(int status, @NonNull String msg) {
|
||||
CallerMapRomaListener.INSTANCE.invokeMapRomaStatus(status, msg);
|
||||
public void onMapClick(@Nullable LonLatPoint lonLatPoint) {
|
||||
MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onMapClick(ObjectUtils.fromAMap(lonLatPoint));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -755,12 +727,6 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onMapVisualAngleChanged(mVisualAngleMode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前视距类型
|
||||
*
|
||||
* @param mode 当前类型
|
||||
* @return 当前类型
|
||||
*/
|
||||
private VisualAngleMode getVisualAngleMode(int mode) {
|
||||
switch (mode) {
|
||||
case 0:
|
||||
@@ -798,7 +764,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
|
||||
@Override
|
||||
public void onChangeMapStyle(int styleId) {
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "currentMapStyle = " + styleId);
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "currentMapStyle = " + styleId + " , current = " + mCurrentUI);
|
||||
// 映射地图样式ID到鹰眼样式ID
|
||||
if (styleId == MapAutoApi.MAP_STYLE_DAY
|
||||
|| styleId == MapAutoApi.MAP_STYLE_DAY_NAV) {
|
||||
@@ -818,9 +784,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
if (mCurrentUI != null) {
|
||||
UiThreadHandler.post(() -> {
|
||||
try {
|
||||
CallerLogger.INSTANCE.d(M_MAP + TAG, "currentUI = " + mCurrentUI);
|
||||
MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onMapModeChanged(mCurrentUI);
|
||||
CallerMapStyleListenerManager.INSTANCE.invokeMapStyleChange(styleId);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -828,6 +792,16 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMarkClick(@NotNull Marker markerInfo) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRoamStatus(int status, @NonNull String msg) {
|
||||
CallerMapRomaListener.INSTANCE.invokeMapRomaStatus(status, msg);
|
||||
}
|
||||
|
||||
|
||||
// 是否使用RTK数据
|
||||
private boolean mRtkEnable = false;
|
||||
|
||||
@@ -880,12 +854,6 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getAngle(double startLon, double startLat, double endLon, double endLat) {
|
||||
return MapAutoApi.INSTANCE.getAngle(startLon, startLat, endLon, endLat);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 加载3D模型
|
||||
*/
|
||||
@@ -1005,6 +973,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
PointCloudHelper.INSTANCE.setPointCloudColor(color, mMapView.getMapController());
|
||||
}
|
||||
|
||||
//todo 多实例改造
|
||||
@Override
|
||||
public void cacheHDDataByCity(IHdCacheListener listener) {
|
||||
if (mMapView.getMapAutoViewHelper() != null) {
|
||||
@@ -1048,6 +1017,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
}
|
||||
}
|
||||
|
||||
//todo 多实例改造
|
||||
@Override
|
||||
public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) {
|
||||
if (mMapView.getMapAutoViewHelper() != null) {
|
||||
@@ -1095,14 +1065,11 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
Integer id = HDMapUtils.getHDCityCode(gdCityCode);
|
||||
if (id != null) {
|
||||
//TODO 回调改造
|
||||
mMapView.getMapAutoViewHelper().getAllCityCode(new IResult<ArrayList<CityInfo>>() {
|
||||
@Override
|
||||
public void result(int code, @androidx.annotation.Nullable ArrayList<CityInfo> cityInfoList) {
|
||||
if (cityInfoList != null) {
|
||||
for (CityInfo cityInfo : cityInfoList) {
|
||||
if (id == cityInfo.getCityCode()) {
|
||||
mMapView.getMapAutoViewHelper().getAllCityCode((code, cityInfoList) -> {
|
||||
if (cityInfoList != null) {
|
||||
for (CityInfo cityInfo : cityInfoList) {
|
||||
if (id == cityInfo.getCityCode()) {
|
||||
// return cityInfo.isCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1138,4 +1105,9 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操
|
||||
mMapView.getMapAutoViewHelper().animateTo(lon, lat, v1, v2, v3, v4, duration, isGps);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRoadLoaded(@androidx.annotation.Nullable String roadInfo) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,6 @@ public class AMapWrapper implements IMogoMap {
|
||||
|
||||
private static final String TAG = "AMapWrapper";
|
||||
|
||||
private static MapAutoViewHelper sAMap;
|
||||
private final IMogoMapUIController mMapUIController;
|
||||
private MapAutoViewHelper mAMap;
|
||||
private final MapAutoView mMapView;
|
||||
@@ -48,7 +47,6 @@ public class AMapWrapper implements IMogoMap {
|
||||
public AMapWrapper(MapAutoViewHelper map, MapAutoView mapView, IMogoMapUIController controller) {
|
||||
CallerLogger.INSTANCE.i(TAG, "autoop--AMapWrapper: init" + this);
|
||||
this.mAMap = map;
|
||||
sAMap = map;
|
||||
this.mMapView = mapView;
|
||||
mMapUIController = controller;
|
||||
// 设置实现自定义 info window
|
||||
@@ -56,10 +54,6 @@ public class AMapWrapper implements IMogoMap {
|
||||
AMapUIController.getInstance().initClient(mMapUIController);
|
||||
}
|
||||
|
||||
public static MapAutoViewHelper getAMap() {
|
||||
return sAMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoUiSettings getUiSettings() {
|
||||
if (!checkAMap()) {
|
||||
@@ -260,7 +254,6 @@ public class AMapWrapper implements IMogoMap {
|
||||
|
||||
private boolean checkAMap() {
|
||||
mAMap = mMapView.getMapAutoViewHelper();
|
||||
sAMap = mAMap;
|
||||
if (mAMap == null) {
|
||||
CallerLogger.INSTANCE.e(TAG, "自研map实例为空,请检查");
|
||||
return false;
|
||||
@@ -271,11 +264,13 @@ public class AMapWrapper implements IMogoMap {
|
||||
@Override
|
||||
public float getRoadWidth(double lon, double lat, float angle, boolean isGpsLocation, boolean isRTK) {
|
||||
SinglePointRoadInfo singlePointRoadInfo = MapDataApi.INSTANCE.getSinglePointMatchRoad(lon, lat, angle, isGpsLocation, isRTK);
|
||||
|
||||
return singlePointRoadInfo != null ? singlePointRoadInfo.getLaneWidth() : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CenterLine getCenterLineRangeInfo(double lon, double lat, float angle, float distance) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public RoadNameInfo getRoadName(double lon, double lat, float angle) {
|
||||
@@ -287,5 +282,4 @@ public class AMapWrapper implements IMogoMap {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.map
|
||||
import android.util.Pair
|
||||
import com.mogo.eagle.core.data.map.CenterLine
|
||||
import com.mogo.map.utils.ObjectUtils
|
||||
import com.zhidaoauto.map.sdk.open.MapAutoApi
|
||||
import com.zhidaoauto.map.sdk.open.abs.IResult
|
||||
import com.zhidaoauto.map.sdk.open.data.MapDataApi
|
||||
import com.zhidaoauto.map.sdk.open.road.RoadRectInfos
|
||||
@@ -13,6 +14,13 @@ import com.zhidaoauto.map.sdk.open.routeinfo.RoadInfo
|
||||
*/
|
||||
object MapDataWrapper {
|
||||
|
||||
/**
|
||||
* 设置debug模式
|
||||
*/
|
||||
fun setDebugMode(debugMode: Boolean) {
|
||||
MapAutoApi.setDebugMode(debugMode)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车道中心线数据
|
||||
* @param lon 经度
|
||||
@@ -21,7 +29,7 @@ object MapDataWrapper {
|
||||
* @param call 回调
|
||||
*/
|
||||
@Synchronized
|
||||
fun getCenterLineInfo(lon: Double, lat: Double, angle: Float,call:IResult<CenterLine>){
|
||||
fun getCenterLineInfo(lon: Double, lat: Double, angle: Float,call:((Int, CenterLine?) -> Unit)){
|
||||
MapDataApi.getCenterLineInfo(
|
||||
lon,
|
||||
lat,
|
||||
@@ -31,42 +39,11 @@ object MapDataWrapper {
|
||||
code: Int,
|
||||
result: com.zhidaoauto.map.sdk.open.road.CenterLine?
|
||||
) {
|
||||
call.result(0,ObjectUtils.transformCenterLine(result))
|
||||
call.invoke(0,ObjectUtils.transformCenterLine(result))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车道限速
|
||||
* @param lon 经度
|
||||
* @param lat 纬度
|
||||
* @param angle 角度
|
||||
* @param call 回调
|
||||
*/
|
||||
fun getLimitSpeed(lon: Double, lat: Double, angle: Float,call : IResult<Int>) {
|
||||
MapDataApi.getLimitSpeed(lon, lat, angle, object : IResult<RoadInfo> {
|
||||
override fun result(code: Int, result: RoadInfo?) {
|
||||
call.result(code,result?.speed?:0)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取道路角度
|
||||
* @param lon 经度
|
||||
* @param lat 纬度
|
||||
* @param angle 角度
|
||||
* @param call 回调
|
||||
*/
|
||||
fun getRoadAngle(lon: Double, lat: Double, angle: Float,call : IResult<Double>) {
|
||||
MapDataApi.getRoadRectInfo(lon, lat, angle, object : IResult<RoadRectInfos> {
|
||||
override fun result(code: Int, result: RoadRectInfos?) {
|
||||
call.result(code,result?.angle?:0.0)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 按距离获取道路数据
|
||||
* @param lon 经度
|
||||
@@ -79,10 +56,9 @@ object MapDataWrapper {
|
||||
lat: Double,
|
||||
angle: Float,
|
||||
distance: Float,
|
||||
call:IResult<com.mogo.map.center.CenterLine>
|
||||
call:((Int,com.mogo.map.center.CenterLine?) -> Unit)
|
||||
) {
|
||||
try {
|
||||
|
||||
MapDataApi.getCenterLineRangeInfo(
|
||||
lon,
|
||||
lat,
|
||||
@@ -104,7 +80,7 @@ object MapDataWrapper {
|
||||
info.angle?:0.0
|
||||
)
|
||||
}
|
||||
call.result(code,ret)
|
||||
call.invoke(code,ret)
|
||||
}
|
||||
})
|
||||
} catch (t: Throwable) {
|
||||
@@ -123,4 +99,54 @@ object MapDataWrapper {
|
||||
return ret
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车道限速
|
||||
* @param lon 经度
|
||||
* @param lat 纬度
|
||||
* @param angle 角度
|
||||
* @param call 回调
|
||||
*/
|
||||
fun getLimitSpeed(lon: Double, lat: Double, angle: Float,call : ((Int) -> Unit)) {
|
||||
MapDataApi.getLimitSpeed(lon, lat, angle, object : IResult<RoadInfo> {
|
||||
override fun result(code: Int, result: RoadInfo?) {
|
||||
call.invoke(result?.speed?:0)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取道路角度
|
||||
* @param lon 经度
|
||||
* @param lat 纬度
|
||||
* @param angle 角度
|
||||
* @param call 回调
|
||||
*/
|
||||
fun getRoadAngle(lon: Double, lat: Double, angle: Float,call : IResult<Double>) {
|
||||
MapDataApi.getRoadRectInfo(lon, lat, angle, object : IResult<RoadRectInfos> {
|
||||
override fun result(code: Int, result: RoadRectInfos?) {
|
||||
call.result(code,result?.angle?:0.0)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取行车方向
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
fun getAngle(startLon: Double, startLat: Double, endLon: Double, endLat: Double): Float {
|
||||
return MapAutoApi.getAngle(startLon, startLat, endLon, endLat)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取瓦片id
|
||||
*
|
||||
* @param lon 经度
|
||||
* @param lat 纬度
|
||||
* @return 瓦片id
|
||||
*/
|
||||
fun getTileId(lon: Double, lat: Double): Long {
|
||||
return MapAutoApi.getTileID(lon, lat, 13) // 13为默认获取瓦片层级级别
|
||||
}
|
||||
|
||||
}
|
||||
@@ -76,14 +76,6 @@ public class MogoMapUIController implements IMogoMapUIController {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDebugMode(Boolean debugMode) {
|
||||
initDelegate();
|
||||
if (mDelegate != null) {
|
||||
mDelegate.setDebugMode(debugMode);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
|
||||
initDelegate();
|
||||
@@ -326,30 +318,6 @@ public class MogoMapUIController implements IMogoMapUIController {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTileId(double lon, double lat) {
|
||||
if (mDelegate != null) {
|
||||
return mDelegate.getTileId(lon, lat);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLimitSpeed(double lon, double lat, float angle) {
|
||||
if (mDelegate != null) {
|
||||
return mDelegate.getLimitSpeed(lon, lat, angle);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CenterLine getCenterLineInfo(double lon, double lat, float angle) {
|
||||
if (mDelegate != null) {
|
||||
return mDelegate.getCenterLineInfo(lon, lat, angle);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rtkEnable(boolean enable) {
|
||||
initDelegate();
|
||||
@@ -396,23 +364,6 @@ public class MogoMapUIController implements IMogoMapUIController {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getAngle(double startLon, double startLat, double endLon, double endLat) {
|
||||
initDelegate();
|
||||
if (mDelegate != null) {
|
||||
return mDelegate.getAngle(startLon, startLat, endLon, endLat);
|
||||
}
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getRoadAngle(Double lon, Double lat, float angle) {
|
||||
if (mDelegate != null) {
|
||||
return mDelegate.getRoadAngle(lon, lat, angle);
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLockMode(boolean isLock) {
|
||||
initDelegate();
|
||||
|
||||
@@ -63,13 +63,6 @@ public class AMapUIController implements IMogoMapUIController {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDebugMode(Boolean debugMode) {
|
||||
if (mClient != null) {
|
||||
mClient.setDebugMode(debugMode);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) {
|
||||
if (mClient != null) {
|
||||
@@ -282,27 +275,6 @@ public class AMapUIController implements IMogoMapUIController {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTileId(double lon, double lat) {
|
||||
return MapAutoApi.INSTANCE.getTileID(lon, lat, 13); // 13为默认获取瓦片层级级别
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLimitSpeed(double lon, double lat, float angle) {
|
||||
if(mClient!= null){
|
||||
return mClient.getLimitSpeed(lon, lat, angle);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CenterLine getCenterLineInfo(double lon, double lat, float angle) {
|
||||
if(mClient != null){
|
||||
return mClient.getCenterLineInfo(lon, lat, angle);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rtkEnable(boolean enable) {
|
||||
if (mClient != null) {
|
||||
@@ -310,7 +282,6 @@ public class AMapUIController implements IMogoMapUIController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void stepInVrMode(boolean isDayMode) {
|
||||
if (mClient != null) {
|
||||
@@ -341,22 +312,6 @@ public class AMapUIController implements IMogoMapUIController {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getAngle(double startLon, double startLat, double endLon, double endLat) {
|
||||
if (mClient != null) {
|
||||
return mClient.getAngle(startLon, startLat, endLon, endLat);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getRoadAngle(Double lon, Double lat, float angle) {
|
||||
if (mClient != null) {
|
||||
return mClient.getRoadAngle(lon, lat, angle);
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLockMode(boolean isLock) {
|
||||
if (mClient != null) {
|
||||
|
||||
Reference in New Issue
Block a user