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 c5655e7cc7..6a2100fecc 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 @@ -100,6 +100,7 @@ public class ObjectUtils { .setFlat( opt.isFlat() ) .visible( opt.isVisible() ) .infoWindowEnable( opt.isInifoWindowEnable() ) + .scale(opt.getScale()) .alpha( opt.getAlpha() ) // .draggable( opt.isDraggable() ) .setInfoWindowOffset( opt.getOffsetX(), opt.getOffsetY() ) diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkerOptions.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkerOptions.java index ef265d0788..d6307452fe 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkerOptions.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkerOptions.java @@ -43,6 +43,9 @@ public class MogoMarkerOptions extends Observable { // 设置Marker覆盖物的透明度 private float alpha = 1.0f; + // 设置Marker覆盖物的缩放 + private float scale = 1.0f; + // Marker覆盖物的坐标是否是Gps private boolean isGps = false; @@ -220,6 +223,12 @@ public class MogoMarkerOptions extends Observable { return this; } + public MogoMarkerOptions scale( float scale ) { + this.scale = scale; + return this; + } + + public MogoMarkerOptions gps( boolean gps ) { isGps = gps; return this; @@ -326,6 +335,10 @@ public class MogoMarkerOptions extends Observable { return alpha; } + public float getScale() { + return scale; + } + public boolean isGps() { return isGps; } @@ -403,6 +416,7 @@ public class MogoMarkerOptions extends Observable { ", visible=" + visible + ", inifoWindowEnable=" + inifoWindowEnable + ", alpha=" + alpha + + " ,scale=" + scale+ ", isGps=" + isGps + ", u=" + u + ", v=" + v + diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java index c11fdb7201..13d96a30c5 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java @@ -2,6 +2,7 @@ package com.mogo.module.v2x.manager.impl; import android.content.Context; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.commons.AbsMogoApplication; @@ -39,10 +40,12 @@ import com.mogo.module.v2x.utils.MarkerUtils; import com.mogo.utils.ViewUtils; import com.mogo.utils.logger.Logger; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; +import static com.mogo.module.service.strategy.CarIconDisplayStrategy.sFrameVr; import static com.mogo.module.v2x.V2XConst.MODULE_NAME; import static com.mogo.module.v2x.V2XConst.V2X_EVENT_ALARM_POI; @@ -271,21 +274,35 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager { } else { mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple); } + // 当前Marker设置为最上面 + mAlarmInfoMarker.setToTop(); } else { - optionsRipple.icons(V2XMarkerAdapter.getV2XRoadEventViewGif(context, roadEventEntity)); - optionsRipple.period(100); - mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple); + if (V2XServiceManager.getMoGoStatusManager().isVrMode()) { + ArrayList mBitmapFrames = new ArrayList<>(); + for (int i : sFrameVr) { + mBitmapFrames.add(BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), i)); + } + optionsRipple.icons(mBitmapFrames); + optionsRipple.period(20); + optionsRipple.scale(0.4f); + mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple); - MogoMarkerOptions options = new MogoMarkerOptions().object(roadEventEntity) - .latitude(roadEventEntity.getLocation().getLat()).longitude(roadEventEntity.getLocation().getLon()); - options.anchor(0.5f, 0.5f); - options.zIndex(MarkerDrawer.MARKER_Z_INDEX_HIGH); - options.icon3DRes(com.mogo.module.common.R.raw.othercar); - options.anchorColor("#C6D83EFF"); - m3DMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, options); + MogoMarkerOptions options = new MogoMarkerOptions().object(roadEventEntity) + .latitude(roadEventEntity.getLocation().getLat()).longitude(roadEventEntity.getLocation().getLon()); + options.anchor(0.5f, 0.5f); + options.icon3DRes(com.mogo.module.common.R.raw.othercar); + options.anchorColor("#FFBF29FF"); + m3DMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, options); + m3DMarker.setToTop(); + } else { + optionsRipple.icons(V2XMarkerAdapter.getV2XRoadEventViewGif(context, roadEventEntity)); + optionsRipple.period(100); + mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple); + // 当前Marker设置为最上面 + mAlarmInfoMarker.setToTop(); + } } - // 当前Marker设置为最上面 - mAlarmInfoMarker.setToTop(); + // 绘制连接线 V2XServiceManager.getMoGoV2XPolylineManager().drawablePolyline(context, roadEventEntity); // 缩放地图 diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XMarkerAdapter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XMarkerAdapter.java index e2233b6551..5b0d412d46 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XMarkerAdapter.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XMarkerAdapter.java @@ -132,34 +132,6 @@ public class V2XMarkerAdapter { */ public static ArrayList getV2XRoadEventOrangeMarkerView(Context context, V2XRoadEventEntity alarmInfo) { ArrayList icons = new ArrayList<>(); - if (V2XServiceManager.getMoGoStatusManager().isVrMode()) { - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0000)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0001)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0002)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0003)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0004)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0005)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0006)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0007)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0008)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0009)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0010)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0011)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0012)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0013)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0014)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0015)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0016)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0017)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0018)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0019)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0020)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0021)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0022)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0023)); - icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0024)); - - } else { icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00011)); icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00012)); icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00013)); @@ -198,8 +170,6 @@ public class V2XMarkerAdapter { icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00046)); icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00047)); icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00048)); - } - return icons; } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XMarkerRoadEventView.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XMarkerRoadEventView.kt index 10aeff917a..fa563f3fb4 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XMarkerRoadEventView.kt +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XMarkerRoadEventView.kt @@ -102,9 +102,7 @@ class V2XMarkerRoadEventView(context: Context, alarmInfo: V2XRoadEventEntity) : } // 故障车辆 V2XPoiTypeEnum.ALERT_CAR_TROUBLE_WARNING.toString() -> { - if (!V2XServiceManager.getMoGoStatusManager().isVrMode()) { - ivCar.setImageResource(R.drawable.icon_car_red) - } + ivCar.setImageResource(R.drawable.icon_car_red) } // 取快递 V2XPoiTypeEnum.ALERT_TRAFFIC_EXPRESS -> {