From 115f80a9727908deee6428f9e9264585758a982b Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 25 Aug 2022 19:34:39 +0800 Subject: [PATCH] =?UTF-8?q?[V2X]=E9=81=93=E8=B7=AF=E6=96=BD=E5=B7=A5?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E6=B7=BB=E5=8A=A0=E5=A4=9A=E8=BE=B9=E5=BD=A2?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E7=BB=98=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo-core-function-v2x/build.gradle | 2 - .../function/v2x/events/V2XEventManager.kt | 12 +- .../manager/impl/MoGoV2XMarkerManager.java | 2 +- .../scene/road/V2XRoadEventMarker.java | 103 +++++++++++++++++- .../function/v2x/events/utils/EntityUtils.kt | 3 +- .../src/main/res/raw/sanjiaozhui.nt3d | Bin 0 -> 20542 bytes gradle.properties | 2 +- .../mogo/map/overlay/MogoPolylineOptions.java | 12 ++ .../java/com/mogo/map/utils/ObjectUtils.java | 1 + .../common/entity/MarkerExploreWay.java | 4 + 10 files changed, 133 insertions(+), 8 deletions(-) create mode 100644 core/mogo-core-res/src/main/res/raw/sanjiaozhui.nt3d diff --git a/core/function-impl/mogo-core-function-v2x/build.gradle b/core/function-impl/mogo-core-function-v2x/build.gradle index ffcffaeeaa..16bcc91360 100644 --- a/core/function-impl/mogo-core-function-v2x/build.gradle +++ b/core/function-impl/mogo-core-function-v2x/build.gradle @@ -49,9 +49,7 @@ dependencies { implementation rootProject.ext.dependencies.arouter implementation rootProject.ext.dependencies.rxandroid implementation rootProject.ext.dependencies.flexbox - kapt rootProject.ext.dependencies.aroutercompiler -// implementation rootProject.ext.dependencies.adasHigh implementation rootProject.ext.dependencies.mogo_v2x implementation rootProject.ext.dependencies.mogoaicloudtrafficlive if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt index 69d88b6ec3..ae8c70fe1e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt @@ -7,6 +7,7 @@ import android.os.Handler import android.os.Looper import android.provider.Settings.System import android.util.* +import androidx.core.util.Pair import androidx.localbroadcastmanager.content.LocalBroadcastManager import com.mogo.cloud.commons.utils.* import com.mogo.cloud.passport.IMoGoTokenCallback @@ -14,8 +15,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.network.ParamsUtil import com.mogo.eagle.core.data.enums.TrafficTypeEnum -import com.mogo.eagle.core.data.map.MogoLatLng -import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.data.map.* import com.mogo.eagle.core.data.traffic.TrafficData import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.api.map.listener.IMoGoMapLocationListener @@ -472,6 +472,14 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb } }) } + this.roadwork?.polygonList?.takeIf { it.isNotEmpty() }?.also { old -> + l1.extras = HashMap>>().also { extra -> + extra["polygon"] = old.map { d -> + val p = CoordinateUtils.transformWgsToGcj(d.lat, d.lon) + Pair(p[0], p[1]) + } + } + } } private fun handleWarningTargetEvent(data: V2XWarningTarget) { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java index e96c9191e7..eadbc5084a 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java @@ -150,7 +150,7 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager { // 探路目前只有上报拥堵 v2XRoadEventEntity.setPoiType(markerExploreWay.getPoiType()); - v2XRoadEventEntity.setNoveltyInfo(EntityUtilsKt.toMarkExploreWay(markerExploreWay)); + v2XRoadEventEntity.setNoveltyInfo(EntityUtilsKt.toMarkExploreWay(markerExploreWay,markerCardResult.getExtras())); v2XRoadEventEntity.setExpireTime(20000); mV2XRoadEventEntityArrayList.add(v2XRoadEventEntity); } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventMarker.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventMarker.java index 0b8fcd17fb..37fd71976b 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventMarker.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventMarker.java @@ -1,15 +1,41 @@ package com.mogo.eagle.core.function.v2x.events.scenario.scene.road; +import android.graphics.Color; + +import androidx.core.util.Pair; + +import com.google.protobuf.FieldOrBuilder; +import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.eagle.core.function.v2x.R; import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoV2XMarkerManager; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoV2XPolylineManager; import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; +import com.mogo.map.MogoMarkerManager; +import com.mogo.map.MogoOverlayManager; +import com.mogo.map.marker.IMogoMarker; +import com.mogo.map.marker.MogoMarkerOptions; +import com.mogo.map.overlay.IMogoOverlayManager; +import com.mogo.map.overlay.IMogoPolyline; +import com.mogo.map.overlay.MogoPolylineOptions; +import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.V2XRoadEventEntity; +import java.util.ArrayList; +import java.util.List; + /** * 道路V2X事件的Marker */ public class V2XRoadEventMarker implements IV2XMarker { + + + private final List pyramids = new ArrayList<>(); + + private IMogoPolyline polyline; + + private IMogoOverlayManager overlayManager; + @Override public void drawPOI(V2XRoadEventEntity entity) { try { @@ -17,9 +43,74 @@ public class V2XRoadEventMarker implements IV2XMarker { IMoGoV2XMarkerManager marker = BridgeApi.INSTANCE.v2xMarker(); if (marker != null) { marker.clearAlarmPOI(); - if (entity != null) { marker.drawableAlarmPOI(BridgeApi.INSTANCE.context(), entity, null); + MarkerExploreWay noveltyInfo = entity.getNoveltyInfo(); + if (noveltyInfo != null && noveltyInfo.extras != null && noveltyInfo.extras.containsKey("polygon")) { + Object extra = noveltyInfo.extras.get("polygon"); + if (extra instanceof List) { + List l = (List) extra; + if (l.size() >= 3) { + List> polygons = new ArrayList<>(); + for (int i = 0; i < l.size(); i++) { + Object o = l.get(i); + if (!(o instanceof Pair)) { + continue; + } + Pair p = (Pair) o; + Object first = p.first; + Object second = p.second; + if (first == null || second == null) { + continue; + } + if (!(first instanceof Double) || !(second instanceof Double)) { + continue; + } + polygons.add(Pair.create((Double) first, (Double) second)); + } + + if (polygons.size() > 0) { + for (int i = 0; i < polygons.size(); i++) { + Pair p = polygons.get(i); + MogoMarkerOptions options = new MogoMarkerOptions() + .data(entity) + .latitude(p.second) + .longitude(p.first); + options.anchor(0.5f, 0.5f); + options.icon3DRes(R.raw.sanjiaozhui); + try { + pyramids.add(MogoMarkerManager.getInstance(BridgeApi.INSTANCE.context()).addMarker("road_pyramid_" + entity.getPoiType(), options)); + } catch (Throwable t) { + t.printStackTrace(); + } + } + + if (polygons.size() > 1) { + if (overlayManager == null) { + overlayManager = MogoOverlayManager.getInstance(); + MogoPolylineOptions options = new MogoPolylineOptions(); + List colors = new ArrayList<>(); + colors.add(Color.argb(100, 255, 0, 0)); + colors.add(Color.argb(100, 0, 255, 0)); + options.colorValues(colors); + List points = new ArrayList<>(); + for (int i = 0; i < polygons.size(); i++) { + Pair p = polygons.get(i); + points.add(new MogoLatLng(p.second, p.first)); + } + options.points(points); + options.useGradient(true); + options.useFacade(true); + options.setGps(true); + options.width(5f); + polyline = overlayManager.addPolyline(options); + } + + } + } + } + } + } } } } catch (Exception e) { @@ -41,5 +132,15 @@ public class V2XRoadEventMarker implements IV2XMarker { // 绘制上次的数据 v2xMarker.drawableLastAllPOI(); } + + if (polyline != null) { + polyline.remove(); + } + if (pyramids.size() > 0) { + for (IMogoMarker marker : pyramids) { + marker.remove(); + } + pyramids.clear(); + } } } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt index 0801ac79b7..2165993bf9 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt @@ -33,7 +33,7 @@ fun V2XMarkerUserInfo?.toMarkerUserInfo(): MarkerUserInfo? = if (this == null) n it.setAge(this.age) } -fun V2XMarkerExploreWay.toMarkExploreWay(): MarkerExploreWay = MarkerExploreWay().also { +fun V2XMarkerExploreWay.toMarkExploreWay(extras: Map? = null): MarkerExploreWay = MarkerExploreWay().also { it.items = this.items?.map { itx -> itx.toMarkerExploreWayItem() } it.userInfo = this.userInfo?.toMarkerUserInfo() it.distance = this.distance @@ -51,4 +51,5 @@ fun V2XMarkerExploreWay.toMarkExploreWay(): MarkerExploreWay = MarkerExploreWay( it.isFabulous = this.isFabulous it.uploadType = this.uploadType it.isCanLive = this.canLive != "0" + it.extras = extras } \ No newline at end of file diff --git a/core/mogo-core-res/src/main/res/raw/sanjiaozhui.nt3d b/core/mogo-core-res/src/main/res/raw/sanjiaozhui.nt3d new file mode 100644 index 0000000000000000000000000000000000000000..e0251bd11de65cd8265a30e7a94007f4cd43e0b7 GIT binary patch literal 20542 zcmeI4c|4U{{O=z_r6iPj%#?&=*pk|UAed|>~-7*q#+$b&i9v5-h` zePI8;7*q#+$OE6@btDp8bJ+hc2Gv0y@^C&vx@&s}{6YV}7*vOzFc;k8Q{goq*#9pE z)j=QfU_KG}ehIU#`GEcoy#H?uxegdK7t{cp5A6RJ19j*Lc`zSPlkgs4AMpRipgQP7 z9{8a35BvYcpgQQ=xvf24ps!(td#PX;=)a@Fu<4B$W?@PB4+hoiHmv0W2F+dFgJJ$x z)_h+4CXpzZ*L+Y0)lpA07p!?^;F=HUZ((2aA!neDdZM|)i6j!7k89`O`JfEB4n5J_ z9tRQ$u8&nci3HaNWl$aUL~{#G)}Al0&PKIseXxcogX*X!nhSWFmuoc)m{;Q@67WG8 zR7XA0TrhuLpEVya=ajxRACy6L)Dz7G>$zmV<^%cCk`izj*JoHC()RSC?HKV#pB7InoVKmm17|Njf75sCs z1^?^=4El_qb$)A(M7lx0=7Tb*j(VcGU_D`-gMPu*H6L;Y>Zm803-%E{<4?N(&Ie`4 zb?AxaqIEvl@^^hu2GvndG#9P&?8dd{3#=i^pgQV_=Av~Dn1RW)y+9dMM?KM8Fn?IX zV9o-=Yd$E0>Zm803)U0XIp|Lftoe{LP)9w{T(r)?p2GQ{47m zJ<(jW{>f_|KC`HfdV)E({CP&m8Tfpm4EijP*E94X*I})qKA;bEv<^`Q)zKP58B|B> z2W3zltqqhxb@F|O_eHM5Jw<&$AL{6Sp$w}3*IuAHx-ZZNo`2wZ6`oswjxyjZ1kc9k z86IWOvoy-140=vRd6YrVz$lM0J<(kB90=Ck;NiI!Fremv56YlA>WSup`NMNKm@{~;;e4P!s-vE0E?7_adjWiw;rc*-R7XA0 zT(G~82YU+VgEFX&dZM}LGlJGU%Ah*xx$`Y}`Y=rM2#KVTi(zxeFf7*WZ~t5phW#6Z z>aVl$-`$X0-~nRb1N(sgHwM)~AMzj<%nOVS<_7yV}V2Zw#sfAIO7Tz=N^jd_e!d7*vOz zFc-AI3-~bN{d~L+=M0&D(*c9#f;9*8gZuRr@0a{pL+B3}sH2`}?mWK6h4>s|@cF>L zH9pqAF;It|kO#S--r)RUAI$mR7*q$IkOymm)<5inHT*XQ)q$r|=-Rw#S};u33&Zj> z@ZWLp{*4L@d*qDI<B2GvndG#9vo`2ipB0^@

dZM|&1H`}wcz_(>gEFX&dZM{tJ;B&; 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 mPoints; private float mWidth = 10.0F; private int mColor = Color.BLACK; @@ -182,6 +183,12 @@ public class MogoPolylineOptions { return this; } + public MogoPolylineOptions useFacade(boolean useFacade) { + this.useFacade = useFacade; + return this; + } + + /** * @param isAboveMaskLayer * @return @@ -240,6 +247,11 @@ public class MogoPolylineOptions { return mIsGradient; } + public boolean useFacade() { + return useFacade; + } + + public float getTransparency() { return mTransparency; } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/utils/ObjectUtils.java b/libraries/mogo-map/src/main/java/com/mogo/map/utils/ObjectUtils.java index 30459af0d2..5dbc4c102f 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/utils/ObjectUtils.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/utils/ObjectUtils.java @@ -479,6 +479,7 @@ public class ObjectUtils { target.zIndex(options.getZIndex()); target.setColor(options.getColor()); target.useGradient(options.isGradient()); + target.useFacade(options.useFacade); if (options.getColorValues() != null) { target.colorValues(options.getColorValues()); } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java index 8c1b155556..7314267422 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWay.java @@ -7,6 +7,7 @@ import com.mogo.module.common.enums.EventTypeEnum; import java.io.Serializable; import java.util.List; +import java.util.Map; import java.util.Objects; @SuppressWarnings("unused") @@ -38,6 +39,8 @@ public class MarkerExploreWay implements Serializable { // 1 需要用户判断是否拥堵 进行UGC问答 private int infoCheckNode; + public Map extras = null; + public String getAddr() { if (TextUtils.isEmpty(addr)) { return "未知道路"; @@ -141,6 +144,7 @@ public class MarkerExploreWay implements Serializable { return infoId; } + public int getInfoIdInt() { try { return Integer.parseInt(infoId);