diff --git a/.idea/misc.xml b/.idea/misc.xml index 97b9126cee..733acb1920 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,7 @@ - + \ No newline at end of file diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/data/ADASRecognizedResultConvert.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/data/ADASRecognizedResultConvert.java new file mode 100644 index 0000000000..8f95af1893 --- /dev/null +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/data/ADASRecognizedResultConvert.java @@ -0,0 +1,107 @@ +package com.mogo.commons.data; + +/** + * @author lixiaopeng + * @description adas识别数据需要转换一下 + * @since 2021/4/23 + */ +public class ADASRecognizedResultConvert { + + /** + * 识别物体类型 + */ + public int type; + + /** + * 识别物体唯一标识 + */ + public String uuid; + + /** + * 红绿灯颜色 + */ + public String color; + + /** + * 车ID + */ + public String carId; + + /** + * 识别物体的纬度 + */ + public double lat; + + /** + * 识别物体的经度 + */ + public double lon; + + /** + * 车头朝向 + */ + public double heading; + + /** + * 系统时间 + */ + public long systemTime; + + /** + * 定位卫星时间 + */ + public long satelliteTime; + + /** + * 海拔 + */ + public double alt; + + /** + * 速度 + */ + public double speed; + + /** + * 莫顿码 + */ + public long mortonCode; + + /** + * 实际距离 + * 使用distanceX和distanceY计算 + */ + public double distance; + + /** + * 数据来源精度 + * 0:普通定位 + * 1:高精定位 + */ + public int dataAccuracy; + + /** + * 道路ID + */ + private String roadId; + + /** + * 车道ID-2D路段 + */ + private String laneId; + + /** + * 车道号:中心线编号为0,中心线右侧编号为负数,3车道通行Road的车道编号,0,-1,-2,-3 + */ + private int laneNum; + + /** + * 限速 + */ + private double rateLimiting; + + /** + * 车道宽度 + */ + private double roadWidth; +} diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 46a19654e9..a613ac51e8 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -1037,4 +1037,14 @@ public class AMapNaviViewWrapper implements IMogoMapView, mMapView.getMap().moveCamera( CameraUpdateFactory.changeBearing( bearing ) ); } } + + @Override + public long getTileId(double lon, double lat) { + return getMap().getUIController().getTileId(lon,lat); + } + + @Override + public void setAdasRecognizedResult(String result) { + //liyz + } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewWrapper.java index 42d06f624f..57c8ca3287 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewWrapper.java @@ -810,4 +810,14 @@ public class AMapViewWrapper implements IMogoMapView, mMapView.getMap().moveCamera( CameraUpdateFactory.changeBearing( bearing ) ); } } + + @Override + public long getTileId(double lon, double lat) { + return getMap().getUIController().getTileId(lon,lat); + } + + @Override + public void setAdasRecognizedResult(String result) { + //liyz + } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java index 5061ea4b39..a3736b90b5 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java @@ -299,6 +299,13 @@ public class AMapUIController implements IMogoMapUIController { } } + @Override + public void setAdasRecognizedResult(String result) { + if ( mClient != null ) { + mClient.setAdasRecognizedResult(result); + } + } + @Override public long getTileId(double lon, double lat) { return 0; diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java index b3c6c20f0e..3ed503ae0f 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java @@ -16,6 +16,8 @@ import android.view.ViewGroup; import android.view.animation.Interpolator; import android.widget.TextView; +import com.autonavi.nge.map.LonLat; +import com.mogo.commons.data.ADASRecognizedResultConvert; import com.mogo.commons.debug.DebugConfig; import com.mogo.map.IMogoMap; import com.mogo.map.IMogoMapView; @@ -35,7 +37,9 @@ import com.mogo.map.uicontroller.MapCameraPosition; import com.mogo.map.uicontroller.MapControlResult; import com.mogo.utils.TipToast; import com.mogo.utils.UiThreadHandler; +import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; +import com.mogo.utils.network.utils.GsonUtil; import com.zhidaoauto.map.sdk.open.MapAutoApi; import com.zhidaoauto.map.sdk.open.abs.MapStatusListener; import com.zhidaoauto.map.sdk.open.abs.OnCameraChangeListener; @@ -284,6 +288,15 @@ public class AMapViewWrapper implements IMogoMapView, } + private ADASRecognizedResultConvert mAdasResultConvert; + + + @Override + public void setAdasRecognizedResult(String result) { + Log.d("liyz", "------- setAdasRecognizedResult ------>result = " + result); + mAdasResultConvert = GsonUtil.objectFromJson(result, ADASRecognizedResultConvert.class); + } + @Override public void setTrafficEnabled(boolean visible) { if (checkAMapView()) { @@ -759,12 +772,20 @@ public class AMapViewWrapper implements IMogoMapView, } } - if (mSelfMarker == null) { + if (mSelfMarker == null) { //TODO mAdasResultConvert +// Log.d("liyz", "-------1------>"); try { mSelfMarker = mMapView.getMapAutoViewHelper().getMyLocationStyle().getSelfMarker(); mSelfMarker.setInfoWindowEnable(true); + } catch (Exception e) { } +// } else { +// Log.d("liyz", "-------2------>"); +// mSelfMarker.marker3DIcon(R.raw.people); +// WorkThreadHandler.getInstance().postDelayed(() -> { +// mSelfMarker.marker3DIcon(R.raw.people); +// }, 10000); } showSelfSpeed(location.getSpeed()); } @@ -999,6 +1020,7 @@ public class AMapViewWrapper implements IMogoMapView, } } + //TODO @Override public void syncLocation2Map(JSONObject data) { if (!checkAMapView()) { diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/uicontroller/AMapUIController.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/uicontroller/AMapUIController.java index 184f7f7ff0..5aed07f73e 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/uicontroller/AMapUIController.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/uicontroller/AMapUIController.java @@ -357,4 +357,11 @@ public class AMapUIController implements IMogoMapUIController { mClient.clearRoadCacheById(id); } } + + @Override + public void setAdasRecognizedResult(String result) { + if (mClient != null) { + mClient.setAdasRecognizedResult(result); + } + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index 0634cec1f7..77d1460bab 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -6,7 +6,6 @@ import android.location.Location; import android.view.View; import android.view.animation.Interpolator; -import androidx.annotation.DrawableRes; import androidx.annotation.Nullable; import com.mogo.map.MogoLatLng; @@ -237,6 +236,8 @@ public interface IMogoMapUIController { */ void changeBearing( float bearing ); + void setAdasRecognizedResult(String result); + /** * 获取瓦片id * @param lon 经度 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index d6d009fed0..14b7db6a78 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -401,4 +401,12 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.clearRoadCacheById(id); } } + + @Override + public void setAdasRecognizedResult(String result) { + initDelegate(); + if (mDelegate != null) { + mDelegate.setAdasRecognizedResult(result); + } + } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java index 1cca2829bc..3e22d2154d 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java @@ -95,7 +95,6 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL MogoLatLng newLocation = Trigonometric.getNewLocation(mogoLatLng, 5, 180); IMogoMarker marker = drawMarker(markerShowEntity); - Log.d("liyz", "renderWarnData marker != null direction = " + data.getDirection()); //识别物 marker.addDynamicAnchorPosition(new MogoLatLng( data.getDirection() == 1 ? data.getStopLines().get(1).lat : data.getCollisionLat(), diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow.java index 959540c180..2099f36f8f 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow.java @@ -271,8 +271,6 @@ public class MediaWindow implements MediaView{ } } else { - - if (mWindowPlayPause != null){ mWindowPlayPause.setImageResource(R.drawable.module_media_window_pop_pause); } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java index 8c02e0b6f2..7899318da8 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java @@ -662,6 +662,7 @@ public class MockIntentHandler implements IntentHandler { mLocationMockHandler.sendEmptyMessageDelayed( 101, 100L ); } + public void onAdasCarDataCallback( ADASCarStateInfo stateInfo ) { if ( stateInfo != null && stateInfo.getValues() != null ) { JSONObject data = new JSONObject(); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index 3b7f234f6a..72db237f88 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -2,9 +2,11 @@ package com.mogo.module.service.marker; import android.content.Context; import android.graphics.Rect; +import android.location.Location; import android.os.Handler; import android.os.Message; import android.text.TextUtils; +import android.util.Log; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; @@ -12,9 +14,14 @@ import com.mogo.map.MogoLatLng; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.marker.IMogoMarkerManager; +import com.mogo.map.marker.MogoMarkerOptions; +import com.mogo.map.navi.IMogoCarLocationChangedListener2; import com.mogo.map.uicontroller.EnumMapUI; +import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.ModuleNames; +import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.api.CallChatApi; +import com.mogo.module.common.constants.AdasRecognizedType; import com.mogo.module.common.drawer.AdasRecognizedResultDrawer; import com.mogo.module.common.drawer.MarkerDrawer; import com.mogo.module.common.drawer.OnlineCarDrawer; @@ -25,6 +32,7 @@ import com.mogo.module.common.drawer.marker.MapMarkerAdapter; import com.mogo.module.common.drawer.marker.OnlineCarMarkerView; import com.mogo.module.common.entity.MarkerCardResult; import com.mogo.module.common.entity.MarkerExploreWay; +import com.mogo.module.common.entity.MarkerLocation; import com.mogo.module.common.entity.MarkerOnlineCar; import com.mogo.module.common.entity.MarkerResponse; import com.mogo.module.common.entity.MarkerShowEntity; @@ -35,6 +43,7 @@ import com.mogo.module.service.ServiceConst; import com.mogo.module.service.network.RefreshCallback; import com.mogo.module.service.network.RefreshModel; import com.mogo.realtime.api.MoGoAiCloudRealTime; +import com.mogo.realtime.entity.ADASRecognizedResult; import com.mogo.realtime.entity.MogoSnapshotSetData; import com.mogo.realtime.socket.IMogoCloudOnMsgListener; import com.mogo.service.adas.IMogoADASControlStatusChangedListener; @@ -45,6 +54,7 @@ import com.mogo.utils.ThreadPoolService; import com.mogo.utils.UiThreadHandler; import com.mogo.utils.ViewUtils; import com.mogo.utils.WorkThreadHandler; +import com.mogo.utils.network.utils.GsonUtil; import com.zhidao.carchattingprovider.ICallChatResponse; import org.json.JSONArray; @@ -56,6 +66,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_WARN_DATA; + /** * author : donghongyu * e-mail : 1358506549@qq.com @@ -153,10 +165,16 @@ public class MapMarkerManager implements IMogoMarkerClickListener, MarkerServiceHandler.getApis().getAdasControllerApi().addAdasRecognizedDataCallback( resultList -> { // 绘制近景识别到的车辆 AdasRecognizedResultDrawer.getInstance().renderAdasRecognizedResult( resultList ); - //绘制他车的线 lixp TODO - - //添加自车的定位图标 TODO + //绘制他车的线 liyz + //添加自车的定位图标,碰撞只有一个预警 TODO +// ADASRecognizedResult result = null; +// for (int i = 0; i < resultList.size(); i++) { +// result = resultList.get(i); +// } +// +// //通过这个传值 ADASRecognizedResult +// MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().setAdasRecognizedResult(GsonUtil.jsonFromObject(result)); } ); } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningWindow.java index c03fae1521..307b019ba7 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningWindow.java @@ -80,8 +80,7 @@ public class V2XWarningWindow extends V2XBasWindow implements IV2XWindow { break; } distance.setText(String.valueOf(mV2XWarningEntity.getDistance()) + "米"); - warningTextView.setText(mV2XWarningEntity.getWarningContent()); - mV2XWarningEntity.setTts(0); + warningTextView.setText(mV2XWarningEntity.getWarningContent());//验证云端数据是否 AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(mV2XWarningEntity.getTts()); } //3秒后移除提示弹框 diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index 63e3371371..0d37b62e52 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -169,6 +169,7 @@ public class MogoADASController implements IMogoADASController { if ( bean == null ) { continue; } + //liyz AdasAIDLOwnerCarRectModel model = new AdasAIDLOwnerCarRectModel(); model.setId( bean.getId() ); model.setXl( bean.getXl() ); @@ -190,6 +191,8 @@ public class MogoADASController implements IMogoADASController { model.setSpeed( bean.getSpeed() ); model.setDataAccuracy( bean.getDataAccuracy() ); model.setDistance( bean.getDistance() ); + + data.add( model ); Logger.d( TAG, "识别距离:x = %s, y = %s", model.getDistance_x(), model.getDistance_y() );