remake code
This commit is contained in:
@@ -31,4 +31,9 @@ mapAutoView.setOnMapViewVisualAngleChangeListener
|
||||
|
||||
8.5.25
|
||||
修改远景下拖动地图偶现黑屏问题
|
||||
关闭部分多余日志
|
||||
关闭部分多余日志
|
||||
|
||||
8.5.26
|
||||
更新顺义高精数据
|
||||
优化渲染效率
|
||||
修改切换后台黑屏问题
|
||||
@@ -95,7 +95,7 @@ class CustomMapApiBuilder implements IMogoMapApiBuilder {
|
||||
public IMogoMapView getMapView( Context context ) {
|
||||
Log.d(TAG,"setDebugMode==true");
|
||||
NavAutoApi.INSTANCE.init( context, MapParams.Companion.init()
|
||||
.setDebugMode( false )
|
||||
.setDebugMode( true )
|
||||
.setCoordinateType( MapParams.COORDINATETYPE_GCJ02 )
|
||||
.setPerspectiveMode( MapParams.MAP_PERSPECTIVE_2D )
|
||||
.setZoom( 20 )
|
||||
|
||||
@@ -12,7 +12,6 @@ import com.mogo.module.common.constants.DataTypes;
|
||||
import com.mogo.module.common.utils.SimpleHandlerThreadPool;
|
||||
import com.mogo.realtime.entity.ADASRecognizedResult;
|
||||
import com.mogo.service.adas.IMogoADASController;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
@@ -90,21 +89,17 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
// 复用之前存在的 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()) {
|
||||
updateCacheMarkerRes(marker, recognizedListResult);
|
||||
renderAdasOneFrame(marker, uniqueKey, recognizedListResult, newAdasRecognizedMarkersCaches);
|
||||
} else {
|
||||
// 新增添加进差集
|
||||
newDiffSet.add(recognizedListResult);
|
||||
}
|
||||
}
|
||||
Log.d("EmArrow", "复用 : cacheMarkerSize : " + mMarkersCaches.size());
|
||||
|
||||
removeUselessMarker();
|
||||
removeUselessLastRecord();
|
||||
Log.d("EmArrow", "复用 : removeUselessMarker cacheMarkerSize : " + mMarkersCaches.size());
|
||||
|
||||
// 能复用的 marker 数量
|
||||
int cachedMarkerSize = mMarkersCaches.size();
|
||||
@@ -113,7 +108,6 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
// 能复用的数量
|
||||
int size = Math.min(cachedMarkerSize, newDiffSetSize);
|
||||
|
||||
Log.d("EmArrow", "复用 : cacheMarkerSize : " + cachedMarkerSize + " newDiffSetSize : " + newDiffSetSize + " minSize : " + size);
|
||||
// 复用过期 marker
|
||||
if (newDiffSetSize > 0) {
|
||||
Iterator<Map.Entry<String, IMogoMarker>> entryIterator = mMarkersCaches.entrySet().iterator();
|
||||
@@ -128,23 +122,10 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
Log.d("EmArrow", "存在复用marker为空数据");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 复用,更新marker 3D资源
|
||||
// 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);
|
||||
if (old == null || old.type != recognizedListResult.type) {
|
||||
updateCacheMarkerRes(marker, recognizedListResult);
|
||||
}
|
||||
renderAdasOneFrame(marker, uniqueKey, recognizedListResult, newAdasRecognizedMarkersCaches);
|
||||
}
|
||||
|
||||
@@ -159,13 +140,31 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
renderAdasOneFrame(marker, uniqueKey, recognizedListResult, newAdasRecognizedMarkersCaches);
|
||||
}
|
||||
}
|
||||
Log.d("EmArrow", "清除前 dirty Markers size : " + mMarkersCaches.size());
|
||||
if (cachedMarkerSize - size > 0) {
|
||||
sendMessage(MSG_REMOVE_DIRTY_MARKERS, mMarkersCaches);
|
||||
}
|
||||
Log.d("EmArrow", "清除后 dirty Markers size : " + mMarkersCaches.size());
|
||||
mMarkersCaches = newAdasRecognizedMarkersCaches;
|
||||
Log.d("EmArrow", "复用 : 赋值 mMarkersCaches size : " + mMarkersCaches.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* todo 后面涉及到此类变化的数据均改动
|
||||
*
|
||||
* @param marker
|
||||
* @param recognizedListResult
|
||||
*/
|
||||
private void updateCacheMarkerRes(IMogoMarker marker, ADASRecognizedResult recognizedListResult) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
private void removeUselessLastRecord() { // todo 最好重新设计一个数据结构,用于多线程数据过期失效的场景,参见redis数据过期
|
||||
@@ -278,13 +277,12 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
|
||||
.gps(true)
|
||||
.anchorColor(carColor)
|
||||
.controlAngle(true)
|
||||
// .resName(mMarkerCachesResMd5Values.get(resIdVal))
|
||||
.resName(resIdVal)
|
||||
.resName(mMarkerCachesResMd5Values.get(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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user