fix bug of addMarker

This commit is contained in:
zhongchao
2021-05-11 16:54:35 +08:00
parent 470fabfe1b
commit b467198505
4 changed files with 58 additions and 25 deletions

View File

@@ -139,7 +139,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
});
}
// 下发的数据
/*
* 云端下发数据与adas定频传输数据均发送至同一Handler线程处理
*/
// 云端下发的数据
MoGoAiCloudRealTime.registerOnMsgListener(new IMogoCloudOnMsgListener() {
@Override
public void onMsgSend(long id) {
@@ -151,14 +155,17 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
DebugConfig.setStatus(DebugConfig.sDownloadSnapshot, true);
Message msg = mSnapshotHandler.obtainMessage();
msg.obj = mogoSnapshotSetData;
msg.what = MSG_SNAPSHOT;
msg.sendToTarget();
}
});
// adas 每隔一秒传递的数据
// adas 每隔一定频率传递过来的数据
MarkerServiceHandler.getApis().getAdasControllerApi().addAdasRecognizedDataCallback(resultList -> {
// 绘制近景识别到的车辆
AdasRecognizedResultDrawer.getInstance().renderAdasRecognizedResult(resultList);
Message msg = mSnapshotHandler.obtainMessage();
msg.obj = resultList;
msg.what = MSG_ADAS;
msg.sendToTarget();
//添加自车的定位图标,碰撞只有一个预警,还需要和adas 联调,
// for ( ADASRecognizedResult result : resultList) {
@@ -202,15 +209,34 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
}
}
private final static int MSG_SNAPSHOT = 1;
private final static int MSG_ADAS = 2;
/**
* todo 后续从云端和adas侧拿到的数据 需求对数据流进行重新架构以扩展除添加marker外的其他预警类业务
* todo (应需要模块主动注册adas或云端数据回调在具体模块内添加绘制需求需要与地图侧确认是否支持并发)
*/
private final Handler mSnapshotHandler = new Handler(WorkThreadHandler.newInstance("snapshot-thread").getLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.obj instanceof MogoSnapshotSetData) {
SnapshotSetDataDrawer.getInstance().renderSnapshotData(((MogoSnapshotSetData) msg.obj));
} else if (msg.obj == null) {
SnapshotSetDataDrawer.getInstance().renderSnapshotData(null);
switch (msg.what) {
case MSG_SNAPSHOT:
if (msg.obj instanceof MogoSnapshotSetData) {
SnapshotSetDataDrawer.getInstance().renderSnapshotData(((MogoSnapshotSetData) msg.obj));
} else {
SnapshotSetDataDrawer.getInstance().renderSnapshotData(null);
}
break;
case MSG_ADAS:
// 绘制近景识别到的车辆
if (msg.obj instanceof List) {
List<ADASRecognizedResult> recognizedResults = (List<ADASRecognizedResult>) msg.obj;
AdasRecognizedResultDrawer.getInstance().renderAdasRecognizedResult(recognizedResults);
}
break;
default:
break;
}
}
};