[base_3.4.0-map-sdk]

This commit is contained in:
zhongchao
2023-08-17 16:41:21 +08:00
parent bfd591f5d5
commit 10b5933c03
19 changed files with 225 additions and 451 deletions

View File

@@ -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')

View File

@@ -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);
}

View File

@@ -131,6 +131,7 @@ object ConfigStartUp {
}
}
//todo 多实例优化
val mapParams = MapParams.init()
mapParams.setDebugMode(false) // 1-使用本地地图数据0-使用在线地图数据
//.setDataFileSource(1)

View File

@@ -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)
//设置倾斜手势是否可用。

View File

@@ -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

View File

@@ -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)
}

View File

@@ -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() {}
}

View File

@@ -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)
}
}
}

View File

@@ -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
}
}

View File

@@ -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?){}
}

View File

@@ -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)
)
}

View File

@@ -0,0 +1,13 @@
package com.mogo.map
class MogoData {
companion object{
val mogoData by lazy(LazyThreadSafetyMode.SYNCHRONIZED){
MogoData()
}
}
}

View File

@@ -31,6 +31,7 @@ public class MogoMap {
return sInstance;
}
//todo 多实例
public void init( Context context, IMogoMap map ) {
this.mContext = context;
this.mMap = map;

View File

@@ -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);
/**
* 设置锁屏模式
*/

View File

@@ -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) {
}
}

View File

@@ -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;
}
}

View File

@@ -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为默认获取瓦片层级级别
}
}

View File

@@ -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();

View File

@@ -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) {