fix bug
This commit is contained in:
@@ -84,13 +84,16 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
for (ADASRecognizedResult recognizedListResult : resultList) {
|
||||
|
||||
if (isUselessValue(recognizedListResult)) {
|
||||
Logger.d(TAG, "存在uuid为空数据");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 复用之前存在的 marker
|
||||
String uniqueKey = recognizedListResult.uuid;
|
||||
IMogoMarker marker = mMarkersCaches.remove(uniqueKey);
|
||||
// 对之前的marker 更新资源 todo 后面涉及到此类变化的数据均改动
|
||||
int resId = getModelRes(recognizedListResult.type);
|
||||
String resIdVal = resId + "";
|
||||
marker.use3DResource(resIdVal);
|
||||
if (marker != null && !marker.isDestroyed()) {
|
||||
renderAdasOneFrame(marker, uniqueKey, recognizedListResult, newAdasRecognizedMarkersCaches);
|
||||
} else {
|
||||
@@ -119,34 +122,33 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
String uniqueKey = recognizedListResult.uuid;
|
||||
Map.Entry<String, IMogoMarker> entry = entryIterator.next();
|
||||
entryIterator.remove();
|
||||
Logger.d(TAG, "复用 : remove markerCache , key : " + entry.getKey());
|
||||
ADASRecognizedResult old = mLastPositions.remove(entry.getKey());
|
||||
IMogoMarker marker = entry.getValue();
|
||||
if (marker == null) {
|
||||
Log.d("EmArrow", "存在复用marker为空数据");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 复用,更新marker 3D资源
|
||||
if (old == null || old.type != recognizedListResult.type) {
|
||||
String resIdVal = null;
|
||||
int resId = getModelRes(recognizedListResult.type);
|
||||
resIdVal = resId + "";
|
||||
String resName = mMarkerCachesResMd5Values.get(resIdVal);
|
||||
if (!TextUtils.isEmpty(resName)) {
|
||||
if (!TextUtils.equals(resName, marker.getMarkerResName())) {
|
||||
marker.use3DResource(resName);
|
||||
}
|
||||
} else {
|
||||
resName = marker.use3DResource(resId);
|
||||
mMarkerCachesResMd5Values.put(resIdVal, resName);
|
||||
}
|
||||
}
|
||||
|
||||
// if (old == null || old.type != recognizedListResult.type) {
|
||||
// int resId = getModelRes(recognizedListResult.type);
|
||||
// String resName = mMarkerCachesResMd5Values.get(resIdVal);
|
||||
// if (!TextUtils.isEmpty(resName)) {
|
||||
// if (!TextUtils.equals(resName, marker.getMarkerResName())) {
|
||||
// marker.use3DResource(resName);
|
||||
// }
|
||||
// } else {
|
||||
// resName = marker.use3DResource(resId);
|
||||
// mMarkerCachesResMd5Values.put(resIdVal, resName);
|
||||
// }
|
||||
// }
|
||||
int resId = getModelRes(recognizedListResult.type);
|
||||
String resIdVal = resId + "";
|
||||
marker.use3DResource(resIdVal);
|
||||
renderAdasOneFrame(marker, uniqueKey, recognizedListResult, newAdasRecognizedMarkersCaches);
|
||||
}
|
||||
|
||||
// 复用过后还需新增的 marker
|
||||
|
||||
for (int i = size; i < newDiffSetSize; i++) {
|
||||
ADASRecognizedResult recognizedListResult = newDiffSet.get(i);
|
||||
String uniqueKey = recognizedListResult.uuid;
|
||||
@@ -211,7 +213,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
Map<String, IMogoMarker> newAdasRecognizedMarkersCaches) {
|
||||
|
||||
final long start = System.currentTimeMillis();
|
||||
Log.d("EmArrow","renderAdasOneFrame uuid : "+ uniqueKey +" type : " + recognizedListResult.type);
|
||||
Log.d("EmArrow", "renderAdasOneFrame uuid : " + uniqueKey + " type : " + recognizedListResult.type);
|
||||
ADASRecognizedResult lastPosition = mLastPositions.remove(uniqueKey); //todo 缓存数据太多
|
||||
double lastLon = -1;
|
||||
double lastLat = -1;
|
||||
@@ -247,7 +249,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
marker.setAnchorColor(carColor);
|
||||
|
||||
if (shouldShowSpeed(recognizedListResult.type)) {
|
||||
showSelfSpeed(mContext, marker, recognizedListResult.speed, recognizedListResult.uuid, MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode());
|
||||
showSelfSpeed(marker, recognizedListResult.speed, recognizedListResult.uuid, recognizedListResult.type, MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,9 +264,8 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
return null;
|
||||
}
|
||||
|
||||
String resIdVal = null;
|
||||
int resId = getModelRes(recognizedListResult.type);
|
||||
resIdVal = resId + "";
|
||||
String resIdVal = resId + "";
|
||||
|
||||
String carColor = recognizedListResult.color;
|
||||
if (TextUtils.isEmpty(carColor)) {
|
||||
@@ -277,12 +278,13 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
.gps(true)
|
||||
.anchorColor(carColor)
|
||||
.controlAngle(true)
|
||||
.resName(mMarkerCachesResMd5Values.get(resIdVal))
|
||||
// .resName(mMarkerCachesResMd5Values.get(resIdVal))
|
||||
.resName(resIdVal)
|
||||
.icon3DRes(resId)
|
||||
.rotate((float) recognizedListResult.heading)
|
||||
.position(new MogoLatLng(recognizedListResult.lat, recognizedListResult.lon));
|
||||
IMogoMarker marker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(DataTypes.TYPE_MARKER_ADAS, options);
|
||||
cacheMarkerIconResMd5Val(resIdVal, marker);
|
||||
// cacheMarkerIconResMd5Val(resIdVal, marker);
|
||||
return marker;
|
||||
}
|
||||
|
||||
|
||||
@@ -293,12 +293,11 @@ class BaseDrawer {
|
||||
/**
|
||||
* 展示车辆速度
|
||||
*
|
||||
* @param context 上下文
|
||||
* @param mogoMarker {@link IMogoMarker}
|
||||
* @param speed 是否显示速度
|
||||
* @param isVrMode 是否是vrMode
|
||||
*/
|
||||
public void showSelfSpeed(Context context, IMogoMarker mogoMarker, double speed, String uuid, boolean isVrMode) {
|
||||
public void showSelfSpeed(IMogoMarker mogoMarker, double speed, String uuid, int type, boolean isVrMode) {
|
||||
Log.d("EmArrow", "showSelf uuid : " + uuid + " speed : " + speed);
|
||||
if (mogoMarker == null || mogoMarker.isDestroyed()) {
|
||||
return;
|
||||
@@ -313,7 +312,7 @@ class BaseDrawer {
|
||||
return;
|
||||
}
|
||||
mogoMarker.setInfoWindowOffset(0, 20);
|
||||
String text = speedIntVal + "\n" + uuid;
|
||||
String text = speedIntVal + "\n" + uuid + "\n" + type;
|
||||
mSpeedView.setText(text);
|
||||
mogoMarker.updateInfoWindowView(mSpeedView);
|
||||
}
|
||||
|
||||
@@ -292,7 +292,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
|
||||
marker.setAnchorColor(getModelRenderColor(cloudRoadData.getType(), cloudRoadData.getSpeed(), cloudRoadData.getWgslon(), cloudRoadData.getWgslat(), cloudRoadData.getHeading()));
|
||||
|
||||
if (shouldShowSpeed(cloudRoadData.getType())) {
|
||||
showSelfSpeed(mContext, marker, cloudRoadData.getSpeed(), cloudRoadData.getUuid(), MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode());
|
||||
showSelfSpeed(marker, cloudRoadData.getSpeed(), cloudRoadData.getUuid(),cloudRoadData.getType(), MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user