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 11b9576edd..990e81cab3 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 @@ -284,11 +284,15 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } } else { Object object = mogoMarker.getObject(); - if (object != null) { - MarkerShowEntity markerShowEntity = (MarkerShowEntity) object; - markerShowEntity.setChecked(true); - IMarkerView markerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, mogoMarker.getMogoMarkerOptions()); - mogoMarker.setIcon(ViewUtils.fromView(markerView.getView())); + if ( object != null ) { + MarkerShowEntity markerShowEntity = ( MarkerShowEntity ) object; + markerShowEntity.setChecked( true ); + IMarkerView markerView = MapMarkerAdapter.getMarkerView( mContext, markerShowEntity, mogoMarker.getMogoMarkerOptions() ); + if ( markerView instanceof OnlineCarMarkerView ) { + mogoMarker.setIcon( markerView.getBitmap() ); + } else { + mogoMarker.setIcon( ViewUtils.fromView( markerView.getView() ) ); + } mogoMarker.setToTop(); } } @@ -305,11 +309,15 @@ public class MapMarkerManager implements IMogoMarkerClickListener, Logger.d( TAG, "关闭info window" ); } else { Object object = mogoMarker.getObject(); - if (object != null) { - MarkerShowEntity markerShowEntity = (MarkerShowEntity) object; - markerShowEntity.setChecked(false); - IMarkerView markerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, mogoMarker.getMogoMarkerOptions()); - mogoMarker.setIcon(ViewUtils.fromView(markerView.getView())); + if ( object != null ) { + MarkerShowEntity markerShowEntity = ( MarkerShowEntity ) object; + markerShowEntity.setChecked( false ); + IMarkerView markerView = MapMarkerAdapter.getMarkerView( mContext, markerShowEntity, mogoMarker.getMogoMarkerOptions() ); + if ( markerView instanceof OnlineCarMarkerView ) { + mogoMarker.setIcon( markerView.getBitmap() ); + } else { + mogoMarker.setIcon( ViewUtils.fromView( markerView.getView() ) ); + } } } } @@ -775,8 +783,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } MogoMarkerOptions options = new MogoMarkerOptions().owner(markerShowEntity.getMarkerType()).object(markerShowEntity).latitude(markerShowEntity.getMarkerLocation().getLat()).longitude(markerShowEntity.getMarkerLocation().getLon()); IMarkerView markerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, options); - if ( markerView.getView() == null ) { + if ( markerView instanceof OnlineCarMarkerView ) { options.icon(markerView.getBitmap()); + options.anchor( 0.5f, 0.5f ); } else { options.icon(markerView.getView()); }