优化显示逻辑

This commit is contained in:
wangcongtao
2021-03-18 21:07:52 +08:00
parent f09accadee
commit 73bd8e771e
8 changed files with 60 additions and 31 deletions

View File

@@ -67,7 +67,7 @@ dependencies {
implementation project(':foudations:mogo-commons')
}
implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.3.8'
implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.3.9'
// implementation 'com.zhidaoauto.machine:map:1.0.0-vr-test-3.4'
}

View File

@@ -37,18 +37,25 @@ enum AdasRecognizedType {
this.code = code;
}
public static AdasRecognizedType[] VAL = {
classIdBackground,
classIdPerson,
classIdBicycle,
classIdCar,
classIdMoto,
classIdTrafficSign,
classIdTrafficBus,
null,
classIdTrafficTruck,
};
public String getRes() {
return res;
}
public static AdasRecognizedType valueFrom( int code ) {
if ( code == 0 ) {
return classIdCar;
}
for ( AdasRecognizedType value : AdasRecognizedType.values() ) {
if ( value.code == code ) {
return value;
}
if ( code >= 0 && code < VAL.length ) {
return VAL[code];
}
return null;
}

View File

@@ -221,19 +221,22 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
renderRef.addDynamicAnchorPosition( renderLoc, ( float ) recognizedListResult.heading, intervalRef );
} );
marker.setAnchorColor( getModelRenderColor(recognizedListResult.speed, recognizedListResult.lon, recognizedListResult.lat, recognizedListResult.heading) );
// marker.setAnchorColor( getModelRenderColor(recognizedListResult.speed, recognizedListResult.lon, recognizedListResult.lat, recognizedListResult.heading) );
} else {
marker.setRotateAngle( ( ( float ) recognizedListResult.heading ) );
marker.setPosition( recognizedListResult.lat, recognizedListResult.lon );
}
Message msg = new Message();
SpeedData obj = new SpeedData();
obj.context = mContext;
obj.marker = marker;
obj.speed = recognizedListResult.speed;
msg.obj = obj;
msg.what = MSG_DISPLAY_SPEED;
mRenderThreadHandler.sendMessage( msg );
if ( shouldShowSpeed( recognizedListResult.type ) ) {
Message msg = new Message();
SpeedData obj = new SpeedData();
obj.context = mContext;
obj.marker = marker;
obj.speed = recognizedListResult.speed;
msg.obj = obj;
msg.what = MSG_DISPLAY_SPEED;
mRenderThreadHandler.sendMessage( msg );
}
}
/**
@@ -255,8 +258,8 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
.anchor( 0.5f, 0.5f )
.set3DMode( true )
.gps( true )
// .anchorColor( getModelRenderColor( CloudRoadData.FROM_ADAS, recognizedListResult.type ) )
.anchorColor( getModelRenderColor(recognizedListResult.speed, recognizedListResult.lon, recognizedListResult.lat, recognizedListResult.heading) )
.anchorColor( getModelRenderColor( CloudRoadData.FROM_ADAS, recognizedListResult.type ) )
// .anchorColor( getModelRenderColor(recognizedListResult.speed, recognizedListResult.lon, recognizedListResult.lat, recognizedListResult.heading) )
.controlAngle( true )
.resName( mMarkerCachesResMd5Values.get( resIdVal ) )
.icon3DRes( resId )

View File

@@ -135,7 +135,7 @@ class BaseDrawer {
if ( msg.what == MSG_REMOVE_DIRTY_MARKERS ) {
if ( msg.obj instanceof Map ) {
removeDirtyMarkers( ( ( Map ) msg.obj ) );
Set<String> key = ( ( Map ) msg.obj ).keySet();
Set< String > key = ( ( Map ) msg.obj ).keySet();
for ( String id : key ) {
// 清除道路缓存
clearRoadCacheById( id );
@@ -186,6 +186,21 @@ class BaseDrawer {
return false;
}
/**
* 是否展示车速
* @param type
* @return
*/
public boolean shouldShowSpeed( int type ) {
AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom( type );
if ( recognizedType == AdasRecognizedType.classIdBicycle
|| recognizedType == AdasRecognizedType.classIdMoto
|| recognizedType == AdasRecognizedType.classIdPerson ) {
return false;
}
return true;
}
/**
* 获取3D锚点模型资源
*
@@ -393,6 +408,7 @@ class BaseDrawer {
/**
* 清理缓存路段数据
*
* @param id
*/
public static void clearRoadCacheById( String id ) {
@@ -459,6 +475,7 @@ class BaseDrawer {
/**
* 根据位置信息、车头朝向计算道路吸附
*
* @param id
* @param lon
* @param lat

View File

@@ -219,17 +219,19 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
renderRef.addDynamicAnchorPosition( point, (float)cloudRoadData.getHeading(), intervalRef );
} );
marker.setAnchorColor( getModelRenderColor(cloudRoadData.getSpeed(), cloudRoadData.getWgslon(), cloudRoadData.getWgslat(), cloudRoadData.getHeading()) );
// marker.setAnchorColor( getModelRenderColor(cloudRoadData.getSpeed(), cloudRoadData.getWgslon(), cloudRoadData.getWgslat(), cloudRoadData.getHeading()) );
} else {
marker.setRotateAngle( ( ( float ) cloudRoadData.getHeading() ) );
marker.setPosition( cloudRoadData.getWgslat(), cloudRoadData.getWgslon() );
}
SpeedData obj = new SpeedData();
obj.context = mContext;
obj.marker = marker;
obj.speed = cloudRoadData.getSpeed();
SimpleHandlerThreadPool.getInstance().postRender(obj::showSpeed);
if ( shouldShowSpeed( cloudRoadData.getType() ) ) {
SpeedData obj = new SpeedData();
obj.context = mContext;
obj.marker = marker;
obj.speed = cloudRoadData.getSpeed();
SimpleHandlerThreadPool.getInstance().postRender(obj::showSpeed);
}
}
/**
@@ -298,8 +300,8 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
String resIdVal = null;
if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
options.set3DMode( true );
// options.anchorColor( getModelRenderColor( data.getFromType(), data.getType() ) );
options.anchorColor( getModelRenderColor( data.getSpeed(), data.getWgslon(), data.getWgslat(), data.getHeading() ) );
options.anchorColor( getModelRenderColor( data.getFromType(), data.getType() ) );
// options.anchorColor( getModelRenderColor( data.getSpeed(), data.getWgslon(), data.getWgslat(), data.getHeading() ) );
int resId = getModelRes( data.getType() );
resIdVal = resId + "";
options.resName( mMarkerCachesResMd5Values.get( resIdVal ) );

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -108,9 +108,9 @@ class EnvStatusManager {
closePanel();
} );
mStatusTv = mPanelView.findViewById( R.id.module_services_status_tv );
mMainHandler.sendEmptyMessageDelayed( MSG, 0L );
}
mPanelView.show();
mMainHandler.sendEmptyMessageDelayed( MSG, 0L );
}
public void closePanel() {