[dev_arch_opt_3.0]

[Change]
[
1、修改了高精地图的设置外部坐标的方法
2、修改了基础、出租车、Bus小地图中的位置回调,使用IMoGoChassisLocationGCJ02Listener。
3、TODO 有些需要高德地图的地方需要改为使用IMoGoChassisLocationGCJ02Listener,WGS84的坐标使用IMoGoChassisLocationWGS84Listener
]

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
donghongyu
2023-01-13 17:44:04 +08:00
parent 1f3a71e782
commit dd8428fb97
15 changed files with 171 additions and 244 deletions

View File

@@ -42,14 +42,14 @@ public interface IMogoMap {
* @param options
* @return
*/
IMogoMarker addMarker( String tag, MogoMarkerOptions options );
IMogoMarker addMarker(String tag, MogoMarkerOptions options);
/**
* 批量更新锚点位置
*
* @param optionsArrayList 锚点集合
*/
void updateBatchMarkerPosition(HashMap<String,MessagePad.TrackedObject> optionsArrayList);
void updateBatchMarkerPosition(HashMap<String, MessagePad.TrackedObject> optionsArrayList);
/**
* 添加感知使用到的3d模型
@@ -74,7 +74,7 @@ public interface IMogoMap {
* @param moveToCenter
* @return
*/
ArrayList< IMogoMarker > addMarkers( String tag, ArrayList< MogoMarkerOptions > options, boolean moveToCenter );
ArrayList<IMogoMarker> addMarkers(String tag, ArrayList<MogoMarkerOptions> options, boolean moveToCenter);
/**
* 从地图上删除所有的overlaymarkercirclepolyline 等对象)。
@@ -86,7 +86,7 @@ public interface IMogoMap {
*
* @param isKeepMyLocationOverlay
*/
void clear( boolean isKeepMyLocationOverlay );
void clear(boolean isKeepMyLocationOverlay);
/**
* 设置屏幕上的某个像素点为地图中心点。
@@ -94,47 +94,7 @@ public interface IMogoMap {
* @param x
* @param y
*/
void setPointToCenter( int x, int y );
/**
* 设置地图POI是否允许点击。
*
* @param touchPoiEnable
*/
void setTouchPoiEnable( boolean touchPoiEnable );
/**
* 设置是否打开交通路况图层。
*
* @param enable
*/
void setTrafficEnable( boolean enable );
/**
* 设置是否显示3D建筑物默认显示。
*
* @param enabled
*/
void showBuildings( boolean enabled );
/**
* 设置是否显示室内地图,默认不显示。
*
* @param enable
*/
void showIndoorMap( boolean enable );
/**
* 设置是否显示底图文字标注,默认显示。
*
* @param enable
*/
void showMapText( boolean enable );
/**
* 停止当前执行的改变地图状态的动画。
*/
void stopAnimation();
void setPointToCenter(int x, int y);
/**
* 获取比例尺
@@ -148,7 +108,7 @@ public interface IMogoMap {
*
* @param zoom
*/
void changeZoom( float zoom );
void changeZoom(float zoom);
/**
* 获取缩放比例
@@ -168,13 +128,14 @@ public interface IMogoMap {
* @param options
* @return
*/
IMogoPolyline addPolyline( MogoPolylineOptions options );
IMogoPolyline addPolyline(MogoPolylineOptions options);
/**
* 获取行驶方向一定长度的中心线
* @param lon 经度
* @param lat 纬
* @param angle 航向角
*
* @param lon 经
* @param lat 纬度
* @param angle 航向角
* @param distance 获取车道中心线的长度,> 0: 行驶方向前方距离, <0 行驶方向后方距离
* @return 中心线相关数据
*/
@@ -183,10 +144,13 @@ public interface IMogoMap {
/**
* 根据自车经纬度和航向角,获取道路名称
* @param lon 经度
* @param lat 纬
*
* @param lon 经
* @param lat 纬度
* @param angle 航向角
* @return 道路名称等相关信息
*/
RoadNameInfo getRoadName(double lon, double lat, float angle);
}

View File

@@ -272,9 +272,6 @@ public interface IMogoMapUIController {
}
default void syncLocation2Map(MessagePad.GnssInfo gnssInfo) {
}
/**
* 获取车速资源缓存 id
@@ -329,4 +326,10 @@ public interface IMogoMapUIController {
*/
void setAllGesturesEnabled(boolean isEnable);
/**
* 设置外界坐标系
*
* @param gnssInfo RTK 高精坐标,车辆惯导数据
*/
void setExtraGPSData(MessagePad.GnssInfo gnssInfo);
}

View File

@@ -985,39 +985,6 @@ public class AMapViewWrapper implements IMogoMapView,
CallerMapDataCollectorManager.INSTANCE.setIsInit();
}
@Override
public void syncLocation2Map(MessagePad.GnssInfo gnssInfo) {
if (!checkAMapView()) {
return;
}
if (gnssInfo.getLongitude() == -1) {
return;
}
LonLatPoint bean = new LonLatPoint();
bean.setAngle(gnssInfo.getHeading());
bean.setAltitude(gnssInfo.getAltitude());
bean.setLongitude(gnssInfo.getLongitude());
bean.setLatitude(gnssInfo.getLatitude());
bean.setSatelliteTime(Double.valueOf(gnssInfo.getSatelliteTime() * 1000).longValue());
bean.setSpeed((float) gnssInfo.getGnssSpeed());
// RTKAutopilotLocationBean bean = new RTKAutopilotLocationBean();
// bean.setYaw_rate(gnssInfo.getYawRate());
// bean.setHeading(gnssInfo.getHeading());
// bean.setAcceleration(gnssInfo.getAcceleration());
// bean.setAlt(gnssInfo.getAltitude());
// bean.setSystemTime(Double.valueOf(gnssInfo.getSystemTime()).longValue());
// bean.setSatelliteTime(Double.valueOf(gnssInfo.getSatelliteTime() * 1000).longValue());
// bean.setLon(gnssInfo.getLongitude());
// bean.setLat(gnssInfo.getLatitude());
// bean.setGnss_speed(((float) gnssInfo.getGnssSpeed()));
// bean.setReceiverDataTime(System.currentTimeMillis());
// 使用外部定位数据修改自车位置
// mMapView.getLocationClient().updateRTKAutoPilotLocation(bean);
mMapView.getLocationClient().updateLocation(bean);
CallerMapUIServiceManager.INSTANCE.getSingletonLocationClient(getContext()).updateLocation(bean);
CallerMapDataCollectorManager.INSTANCE.setIsInit();
}
@Override
public void stepInVrMode(boolean isDayMode) {
// try {
@@ -1135,4 +1102,29 @@ public class AMapViewWrapper implements IMogoMapView,
mMapView.getMapAutoViewHelper().setAllGesturesEnabled(isEnable);
}
}
@Override
public void setExtraGPSData(MessagePad.GnssInfo gnssInfo) {
LocationClient locationClient = mMapView.getLocationClient();
if (locationClient != null) {
locationClient.setIsUseExtraGPSData(true);//设置是否使用外界坐标
locationClient.rtkEnable(true);//设置是否是高精定位
LonLatPoint lonLatPoint = new LonLatPoint();
lonLatPoint.setAngle(gnssInfo.getHeading());
lonLatPoint.setAltitude(gnssInfo.getAltitude());
lonLatPoint.setLongitude(gnssInfo.getLongitude());
lonLatPoint.setLatitude(gnssInfo.getLatitude());
lonLatPoint.setSatelliteTime(Double.valueOf(gnssInfo.getSatelliteTime() * 1000).longValue());
lonLatPoint.setSpeed((float) gnssInfo.getGnssSpeed());
locationClient.updateLocation(lonLatPoint);//更新新自动驾驶RTK相关数据
CallerMapUIServiceManager.INSTANCE.getSingletonLocationClient(getContext()).updateLocation(lonLatPoint);
CallerMapDataCollectorManager.INSTANCE.setIsInit();
}
}
}

View File

@@ -53,7 +53,7 @@ public class AMapWrapper implements IMogoMap {
private static final String TAG = "AMapWrapper";
private static MapAutoViewHelper sAMap;
private IMogoMapUIController mUIcontroller;
private IMogoMapUIController mMapUIController;
private MapAutoViewHelper mAMap;
private MapAutoView mMapView;
private IMogoUiSettings mUiSettings;
@@ -63,10 +63,10 @@ public class AMapWrapper implements IMogoMap {
this.mAMap = map;
sAMap = map;
this.mMapView = mapView;
mUIcontroller = controller;
mMapUIController = controller;
// 设置实现自定义 info window
MapAutoApi.INSTANCE.setInfoWindowAdapter(new AMapInfoWindowAdapter());
AMapUIController.getInstance().initClient(mUIcontroller);
AMapUIController.getInstance().initClient(mMapUIController);
}
public static MapAutoViewHelper getAMap() {
@@ -86,7 +86,7 @@ public class AMapWrapper implements IMogoMap {
@Override
public IMogoMapUIController getUIController() {
return mUIcontroller;
return mMapUIController;
}
@Override
@@ -211,48 +211,6 @@ public class AMapWrapper implements IMogoMap {
}
}
@Override
public void setTouchPoiEnable(boolean touchPoiEnable) {
if (checkAMap()) {
mAMap.setTouchPoiEnable(touchPoiEnable);
}
}
@Override
public void setTrafficEnable(boolean enable) {
if (checkAMap()) {
mAMap.setTraffic(enable);
}
}
@Override
public void showBuildings(boolean enabled) {
if (checkAMap()) {
mAMap.showBuildings(enabled);
}
}
@Override
public void showIndoorMap(boolean enable) {
if (checkAMap()) {
// mAMap.showIndoorMap( enable );
}
}
@Override
public void showMapText(boolean enable) {
if (checkAMap()) {
mAMap.showMapText(enable);
}
}
@Override
public void stopAnimation() {
if (checkAMap()) {
// mAMap.stopAnimation();
}
}
@Override
public float getScalePerPixel() {
if (checkAMap()) {
@@ -279,8 +237,6 @@ public class AMapWrapper implements IMogoMap {
}
}
return 0;
}
@Override

View File

@@ -334,14 +334,6 @@ public class MogoMapUIController implements IMogoMapUIController {
}
}
@Override
public void syncLocation2Map(MessagePad.GnssInfo gnssInfo) {
initDelegate();
if (mDelegate != null) {
mDelegate.syncLocation2Map(gnssInfo);
}
}
@Override
public void destroy() {
mDelegate = null;
@@ -420,4 +412,12 @@ public class MogoMapUIController implements IMogoMapUIController {
mDelegate.setAllGesturesEnabled(isEnable);
}
}
@Override
public void setExtraGPSData(MessagePad.GnssInfo gnssInfo) {
initDelegate();
if (mDelegate != null) {
mDelegate.setExtraGPSData(gnssInfo);
}
}
}

View File

@@ -10,8 +10,11 @@ import android.widget.FrameLayout;
import androidx.annotation.Nullable;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.map.uicontroller.AMapUIController;
import com.zhidaoauto.map.sdk.open.view.MapAutoView;
import mogo.telematics.pad.MessagePad;
/**
* @author congtaowang
* @since 2019-12-18
@@ -85,4 +88,9 @@ public class MogoMapView extends MogoBaseMapView implements ILifeCycle {
public void onLowMemory() {
super.onLowMemory();
}
public void setExtraGPSData(MessagePad.GnssInfo gnssInfo) {
AMapUIController.getInstance().setExtraGPSData(gnssInfo);
}
}

View File

@@ -287,14 +287,6 @@ public class AMapUIController implements IMogoMapUIController {
}
}
@Override
public void syncLocation2Map(MessagePad.GnssInfo gnssInfo) {
if (mClient != null) {
mClient.syncLocation2Map(gnssInfo);
}
}
@Override
public void stepInVrMode(boolean isDayMode) {
if (mClient != null) {
@@ -361,4 +353,11 @@ public class AMapUIController implements IMogoMapUIController {
mClient.setAllGesturesEnabled(isEnable);
}
}
@Override
public void setExtraGPSData(MessagePad.GnssInfo gnssInfo) {
if (mClient != null) {
mClient.setExtraGPSData(gnssInfo);
}
}
}