diff --git a/app/build.gradle b/app/build.gradle index 7c6106bd98..d2097403e7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -176,7 +176,7 @@ android { // 分享时是否隐藏 adas buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false' // 是否需要实时上报坐标 - buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' + buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'false' } // e系列,采用Launcher方案 e8xx { diff --git a/foudations/httpdns-noop/src/main/java/com/mogo/httpdns/noop/HttpDnsNoop.java b/foudations/httpdns-noop/src/main/java/com/mogo/httpdns/noop/HttpDnsNoop.java index 244a98d740..9aed264e16 100644 --- a/foudations/httpdns-noop/src/main/java/com/mogo/httpdns/noop/HttpDnsNoop.java +++ b/foudations/httpdns-noop/src/main/java/com/mogo/httpdns/noop/HttpDnsNoop.java @@ -31,7 +31,9 @@ class HttpDnsNoop implements IMogoHttpDns { @Override public void getHttpDnsIp( String host, boolean useCache, IHttpDnsCallback callback ) { - + if ( callback != null ) { + callback.onParsed( null ); + } } @Override diff --git a/libraries/map-custom/build.gradle b/libraries/map-custom/build.gradle index 7e906108e9..986849f098 100644 --- a/libraries/map-custom/build.gradle +++ b/libraries/map-custom/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation project(':foudations:mogo-commons') } - implementation 'com.zhidaoauto.machine:map:1.0.0-vr-6.9' + implementation 'com.zhidaoauto.machine:map:1.0.0-vr-7.1.5' } apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapMarkerClickHandler.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapMarkerClickHandler.java index 0b89685535..f2775c4894 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapMarkerClickHandler.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapMarkerClickHandler.java @@ -19,6 +19,30 @@ import java.util.Map; */ public class AMapMarkerClickHandler { + private static volatile AMapMarkerClickHandler sInstance; + + private AMapMarkerClickHandler(){} + + public static AMapMarkerClickHandler getInstance(){ + if( sInstance == null ){ + synchronized( AMapMarkerClickHandler.class ) { + if( sInstance == null ){ + sInstance = new AMapMarkerClickHandler(); + } + } + } + return sInstance; + } + + public synchronized void release(){ + sInstance = null; + } + + private Object readResolve() { + // 阻止反序列化,必须实现 Serializable 接口 + return sInstance; + } + public boolean handleMarkerClicked( Marker marker ) { if ( marker == null ) { return false; diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java index 41f0249cea..5a903d4115 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java @@ -25,9 +25,9 @@ import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.MapCameraPosition; import com.mogo.map.uicontroller.MapControlResult; +import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; import com.zhidaoauto.map.sdk.open.MapAutoApi; -import com.zhidaoauto.map.sdk.open.MapParams; import com.zhidaoauto.map.sdk.open.abs.MapStatusListener; import com.zhidaoauto.map.sdk.open.abs.OnCameraChangeListener; import com.zhidaoauto.map.sdk.open.abs.OnMapClickListener; @@ -82,6 +82,7 @@ public class AMapViewWrapper implements IMogoMapView, private CarCursorOption mCarCursorOption = DEFAULT_OPTION; private Location mLastDriveLocationShadow = null; + private EnumMapUI mCurrentUI; public AMapViewWrapper( MapAutoView mMapView ) { startTime = System.currentTimeMillis(); @@ -161,7 +162,7 @@ public class AMapViewWrapper implements IMogoMapView, private void initListeners() { mMapView.setOnMarkClickListener( this ); - mMarkerClickHandler = new AMapMarkerClickHandler(); + mMarkerClickHandler = AMapMarkerClickHandler.getInstance(); mMapView.setOnMapLoadedListener( this ); mMapView.setOnMapTouchListener( this ); mMapView.setOnMapClickListener( this ); @@ -171,6 +172,7 @@ public class AMapViewWrapper implements IMogoMapView, mMapView.registerListener( this, MapAutoApi.LISTENER_TYPE_3D ); mMapView.setMOnCameraChangeListener( this ); mMapView.setOnMapStyleListener( this ); + Logger.d( TAG, "styleop - initListeners - setOnMapStyleListener - view %s", mMapView ); // mMapView.setOnPolylineClickListener( this ); // mMapView.setAMapNaviViewListener( this ); @@ -249,7 +251,7 @@ public class AMapViewWrapper implements IMogoMapView, @Override public void setTrafficEnabled( boolean visible ) { if ( checkAMapView() ) { - mMapView.getMapAutoViewHelper().setTraffic( visible ); +// mMapView.getMapAutoViewHelper().setTraffic( visible ); } } @@ -257,7 +259,6 @@ public class AMapViewWrapper implements IMogoMapView, public MapControlResult changeZoom( boolean zoom ) { if ( checkAMapView() ) { mDefaultZoomLevel = ( getMap().getZoomLevel() + 0.5f ); - if ( zoom ) { if ( mDefaultZoomLevel >= 20f ) { return MapControlResult.TARGET; @@ -290,7 +291,9 @@ public class AMapViewWrapper implements IMogoMapView, if ( DebugConfig.isDebug() ) { Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); } - + if ( mCurrentUI == EnumMapUI.Type_VR ) { + return MapControlResult.ERROR; + } getMap().changeZoom( zoom ); return MapControlResult.SUCCESS; } @@ -305,6 +308,7 @@ public class AMapViewWrapper implements IMogoMapView, case CarUp_2D: case CarUp_3D: case NorthUP_2D: + setUIMode( ui ); break; case Type_VR: mMapView.getMapAutoViewHelper().setMapStyle( MapAutoApi.MAP_STYLE_VR ); @@ -762,8 +766,27 @@ public class AMapViewWrapper implements IMogoMapView, @Override public void onChangeMapStyle( int i ) { - if ( i == MapParams.MAP_STYLE_VR ) { - MogoMapListenerHandler.getInstance().onMapModeChanged( EnumMapUI.Type_VR ); + if ( i == MapAutoApi.MAP_STYLE_DAY + || i == MapAutoApi.MAP_STYLE_DAY_NAV ) { + mCurrentUI = EnumMapUI.Type_Light; + } else if ( i == MapAutoApi.MAP_STYLE_NIGHT + || i == MapAutoApi.MAP_STYLE_NIGHT_NAV ) { + mCurrentUI = EnumMapUI.Type_Night; + } else if ( i == MapAutoApi.MAP_STYLE_VR ) { + mCurrentUI = EnumMapUI.Type_VR; + } else if ( i == MapAutoApi.MAP_PERSPECTIVE_2D ) { + mCurrentUI = EnumMapUI.CarUp_2D; + } else if ( i == MapAutoApi.MAP_PERSPECTIVE_3D ) { + mCurrentUI = EnumMapUI.CarUp_3D; + } + if ( mCurrentUI != null ) { + UiThreadHandler.post( () -> { + try { + MogoMapListenerHandler.getInstance().onMapModeChanged( mCurrentUI ); + } catch ( Exception e ) { + e.printStackTrace(); + } + } ); } } } diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java index e6c9a8d05d..1081ea35b3 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java @@ -91,7 +91,7 @@ class CustomMapApiBuilder implements IMogoMapApiBuilder { @Override public IMogoMapView getMapView( Context context ) { NavAutoApi.INSTANCE.init( context, MapParams.Companion.init() - .setDebugMode( false ) + .setDebugMode( true ) .setCoordinateType( MapParams.COORDINATETYPE_GCJ02 ) .setPerspectiveMode( MapParams.MAP_PERSPECTIVE_2D ) .setZoom( 16 ) diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/marker/AMapInfoWindowAdapter.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/marker/AMapInfoWindowAdapter.java index 1e06b9ddbb..78150eabb5 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/marker/AMapInfoWindowAdapter.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/marker/AMapInfoWindowAdapter.java @@ -2,32 +2,44 @@ package com.mogo.map.impl.custom.marker; import android.view.View; +import com.mogo.map.impl.custom.AMapMarkerClickHandler; import com.mogo.map.marker.IMogoInfoWindowAdapter; import com.mogo.map.marker.IMogoMarker; import com.zhidaoauto.map.sdk.open.abs.marker.InfoWindowAdapter; import com.zhidaoauto.map.sdk.open.marker.Marker; +import com.zhidaoauto.map.sdk.open.marker.OnInfoWindowClickListener; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.FileInputStream; + /** * @author congtaowang * @since 2019-12-24 *
* 自定义infowindow
*/
-public final class AMapInfoWindowAdapter implements InfoWindowAdapter {
+public final class AMapInfoWindowAdapter implements InfoWindowAdapter, OnInfoWindowClickListener {
public View getInfoWindow( Marker marker ) {
if ( marker.getMObject() instanceof IMogoMarker ) {
IMogoMarker mogoMarker = ( ( IMogoMarker ) marker.getMObject() );
IMogoInfoWindowAdapter delegate = mogoMarker.getInfoWindowAdapter();
if ( delegate != null ) {
- return delegate.getInfoWindow( mogoMarker );
+ final View infoView = delegate.getInfoWindow( mogoMarker );
+ marker.setOnInfoWindowClickListener( this );
+ return infoView;
}
}
return null;
}
+ @Override
+ public void onInfoWindowClick( @NotNull Marker marker ) {
+ AMapMarkerClickHandler.getInstance().handleMarkerClicked( marker );
+ }
+
@Nullable
@Override
public View getInfoContents(@Nullable Marker marker) {
diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/ObjectUtils.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/ObjectUtils.java
index c950276731..1852c8c8ea 100644
--- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/ObjectUtils.java
+++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/ObjectUtils.java
@@ -77,7 +77,6 @@ public class ObjectUtils {
// .icons( descriptors )
// .period( opt.getPeriod() )
.rotateAngle( opt.getRotate() )
- .marker3DIcon( opt.getIcon3DRes() )
.setFlat( opt.isFlat() )
.visible( opt.isVisible() )
.infoWindowEnable( opt.isInifoWindowEnable() )
@@ -86,6 +85,9 @@ public class ObjectUtils {
// .draggable( opt.isDraggable() )
.setInfoWindowOffset( opt.getOffsetX(), opt.getOffsetY() )
.zIndex( opt.getzIndex() );
+ if ( opt.getIcon3DRes() != 0 ) {
+ markerOptions.marker3DIcon( opt.getIcon3DRes() );
+ }
if ( !TextUtils.isEmpty( opt.getTitle() ) ) {
markerOptions.title( opt.getTitle() );
}
@@ -699,7 +701,7 @@ public class ObjectUtils {
target.setLonLatPoints( points );
}
target.setLineWidth( options.getWidth() );
- target.setColor( options.getColor());
+ target.setColor( options.getColor() );
// target.zIndex( options.getWidth() );
// target.visible( options.isVisible() );
//// target.geodesic( options.isGeodesic() );
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/MarkerDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/MarkerDrawer.java
index 8fea64910c..0f687f677f 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/MarkerDrawer.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/MarkerDrawer.java
@@ -60,10 +60,14 @@ class MarkerDrawer {
}
public IMogoMarker drawMapMarkerImpl( MarkerShowEntity markerShowEntity, int zIndex, IMogoMarkerClickListener listener ) {
+ return drawMapMarkerImpl(markerShowEntity, zIndex, 0, listener);
+ }
+
+ public IMogoMarker drawMapMarkerImpl( MarkerShowEntity markerShowEntity, int zIndex, int icon3DRes, IMogoMarkerClickListener listener ) {
if ( markerShowEntity == null || markerShowEntity.getMarkerLocation() == null ) {
return null;
}
- MogoMarkerOptions options = new MogoMarkerOptions().owner( markerShowEntity.getMarkerType() ).zIndex( zIndex ).object( markerShowEntity ).latitude( markerShowEntity.getMarkerLocation().getLat() ).longitude( markerShowEntity.getMarkerLocation().getLon() );
+ MogoMarkerOptions options = new MogoMarkerOptions().icon3DRes( icon3DRes ).owner( markerShowEntity.getMarkerType() ).zIndex( zIndex ).object( markerShowEntity ).latitude( markerShowEntity.getMarkerLocation().getLat() ).longitude( markerShowEntity.getMarkerLocation().getLon() );
IMarkerView markerView = MapMarkerAdapter.getMarkerView( AbsMogoApplication.getApp(), markerShowEntity, options );
if ( markerView instanceof OnlineCarMarkerView ) {
try {
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/OnlineCarDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/OnlineCarDrawer.java
index 5829eee710..621692464e 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/OnlineCarDrawer.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/OnlineCarDrawer.java
@@ -8,6 +8,7 @@ import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.module.common.ModuleNames;
import com.mogo.module.common.MogoApisHandler;
+import com.mogo.module.common.R;
import com.mogo.module.common.entity.MarkerCarPois;
import com.mogo.module.common.entity.MarkerLocation;
import com.mogo.module.common.entity.MarkerOnlineCar;
@@ -104,7 +105,7 @@ class OnlineCarDrawer {
String sn = MarkerDrawer.getInstance().getPrimaryKeyFromEntity( markerOnlineCar );
IMogoMarker mogoMarker = existCarMap.get( sn );
if ( mogoMarker == null || mogoMarker.isDestroyed() ) {
- mogoMarker = MarkerDrawer.getInstance().drawMapMarkerImpl( markerShowEntity, MarkerDrawer.MARKER_Z_INDEX_LOW, listener );
+ mogoMarker = MarkerDrawer.getInstance().drawMapMarkerImpl( markerShowEntity, MarkerDrawer.MARKER_Z_INDEX_LOW, R.raw.taxi, listener );
}
if ( mogoMarker != null ) {
mogoMarker.setVisible( true );
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/RoadConditionDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/RoadConditionDrawer.java
index 8fa79aaf08..fde64b7020 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/RoadConditionDrawer.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/RoadConditionDrawer.java
@@ -9,6 +9,7 @@ import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.marker.anim.OnMarkerAnimationListener;
import com.mogo.module.common.ModuleNames;
import com.mogo.module.common.MogoApisHandler;
+import com.mogo.module.common.drawer.marker.RoadConditionInfoWindow3DAdapter;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerLocation;
import com.mogo.module.common.entity.MarkerShowEntity;
@@ -84,10 +85,16 @@ class RoadConditionDrawer {
if ( mogoMarker == null || mogoMarker.isDestroyed() ) {
Logger.d( TAG, "draw road condition, sn = %s", sn );
try {
- if ( DebugConfig.isRoadEventAnimated() ) {
- post2AddAndStartAnimation( markerShowEntity, i * 100L, listener );
- } else {
+ if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
mogoMarker = MarkerDrawer.getInstance().drawMapMarkerImpl( markerShowEntity, MarkerDrawer.MARKER_Z_INDEX_HIGH, listener );
+ mogoMarker.setInfoWindowAdapter( new RoadConditionInfoWindow3DAdapter( markerShowEntity, AbsMogoApplication.getApp(), mogoMarker.getMogoMarkerOptions() ) );
+ mogoMarker.showInfoWindow();
+ } else {
+ if ( DebugConfig.isRoadEventAnimated() ) {
+ post2AddAndStartAnimation( markerShowEntity, i * 100L, listener );
+ } else {
+ mogoMarker = MarkerDrawer.getInstance().drawMapMarkerImpl( markerShowEntity, MarkerDrawer.MARKER_Z_INDEX_HIGH, listener );
+ }
}
} catch ( Exception e ) {
e.printStackTrace();
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/EmptyMarkerView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/EmptyMarkerView.java
new file mode 100644
index 0000000000..be4771ae5a
--- /dev/null
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/EmptyMarkerView.java
@@ -0,0 +1,46 @@
+package com.mogo.module.common.drawer.marker;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+
+import androidx.annotation.Nullable;
+
+import com.mogo.map.marker.IMogoMarker;
+
+public
+/**
+ * @author congtaowang
+ * @since 2020/12/16
+ *
+ * 描述
+ */
+class EmptyMarkerView extends View implements IMarkerView {
+
+ public EmptyMarkerView( Context context ) {
+ this( context, null );
+ }
+
+ public EmptyMarkerView( Context context, @Nullable AttributeSet attrs ) {
+ this( context, attrs, 0 );
+ }
+
+ public EmptyMarkerView( Context context, @Nullable AttributeSet attrs, int defStyleAttr ) {
+ super( context, attrs, defStyleAttr );
+ }
+
+ @Override
+ public View getView() {
+ return this;
+ }
+
+ @Override
+ public void setMarker( IMogoMarker marker ) {
+
+ }
+
+ @Override
+ protected void onMeasure( int widthMeasureSpec, int heightMeasureSpec ) {
+ setMeasuredDimension( 1, 1 );
+ }
+}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapMarkerAdapter.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapMarkerAdapter.java
index 94d682ca4a..8a130a1f59 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapMarkerAdapter.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapMarkerAdapter.java
@@ -5,6 +5,7 @@ import android.text.TextUtils;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.ModuleNames;
+import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.entity.MarkerShowEntity;
/**
@@ -23,17 +24,36 @@ public class MapMarkerAdapter {
* @param markerShowEntity 要填充的数据
* @return MarkerView
*/
- public static IMarkerView getMarkerView(Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options) {
+ public static IMarkerView getMarkerView( Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options ) {
if ( TextUtils.equals( markerShowEntity.getMarkerType(), ModuleNames.CARD_TYPE_USER_DATA ) ) {
return OnlineCarMarkerView.getInstance();
} else {
- if (markerShowEntity.isChecked()) {
- return new MapMarkerInfoView(context, markerShowEntity, options);
+ if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
+ return new EmptyMarkerView( context );
} else {
- return new MapMarkerView(context, markerShowEntity, options);
+ if ( markerShowEntity.isChecked() ) {
+ return new MapMarkerInfoView( context, markerShowEntity, options );
+ } else {
+ return new MapMarkerView( context, markerShowEntity, options );
+ }
}
}
}
+
+ /**
+ * 获取 MarkerShowEntity 填充好的 MarkerView
+ *
+ * @param context 上下文
+ * @param markerShowEntity 要填充的数据
+ * @return MarkerView
+ */
+ public static IMarkerView getMarkerInfoWindowView( Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options ) {
+ if ( markerShowEntity.isChecked() ) {
+ return new MapMarkerInfoView( context, markerShowEntity, options );
+ } else {
+ return new MapMarkerView( context, markerShowEntity, options );
+ }
+ }
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapMarkerInfoView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapMarkerInfoView.java
index 404ded1d88..9ded911563 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapMarkerInfoView.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapMarkerInfoView.java
@@ -13,6 +13,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.ModuleNames;
+import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerShareMusic;
import com.mogo.module.common.entity.MarkerShowEntity;
@@ -71,7 +72,11 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
Object bindObj = markerShowEntity.getBindObj();
- ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow );
+ if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
+ ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow_vr );
+ } else {
+ ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow );
+ }
clMarkerContent.setBackgroundResource( R.drawable.bg_map_marker_yellow_info );
ivReverseTriangle.setImageResource( R.drawable.bg_shape_reverse_yellow );
switch ( markerShowEntity.getMarkerType() ) {
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/RoadConditionInfoWindow3DAdapter.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/RoadConditionInfoWindow3DAdapter.java
new file mode 100644
index 0000000000..063be888e7
--- /dev/null
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/RoadConditionInfoWindow3DAdapter.java
@@ -0,0 +1,37 @@
+package com.mogo.module.common.drawer.marker;
+
+import android.content.Context;
+import android.view.View;
+
+import com.mogo.map.marker.IMogoInfoWindowAdapter;
+import com.mogo.map.marker.IMogoMarker;
+import com.mogo.map.marker.MogoMarkerOptions;
+import com.mogo.module.common.entity.MarkerShowEntity;
+
+public
+/**
+ * @author congtaowang
+ * @since 2020/12/15
+ *
+ * 描述
+ */
+class RoadConditionInfoWindow3DAdapter implements IMogoInfoWindowAdapter {
+
+ private MarkerShowEntity mEntity;
+ private Context mContext;
+ private MogoMarkerOptions mOptions;
+
+ public RoadConditionInfoWindow3DAdapter( MarkerShowEntity entity,
+ Context context,
+ MogoMarkerOptions options ) {
+ this.mEntity = entity;
+ this.mContext = context;
+ this.mOptions = options;
+ }
+
+ @Override
+ public View getInfoWindow( IMogoMarker marker ) {
+ IMarkerView creator = MapMarkerAdapter.getMarkerInfoWindowView( mContext, mEntity, mOptions );
+ return creator.getView();
+ }
+}
diff --git a/modules/mogo-module-common/src/main/res/raw/taxi.n3d b/modules/mogo-module-common/src/main/res/raw/taxi.n3d
new file mode 100644
index 0000000000..8352a248bc
Binary files /dev/null and b/modules/mogo-module-common/src/main/res/raw/taxi.n3d differ
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index a6db2c98b9..4da4fe8182 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -432,17 +432,13 @@ public class EntranceFragment extends MvpFragment