From 46008177256abc838a6f7341d65ab27156e9cdaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Thu, 9 Jan 2020 14:54:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=B0=86Marker?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E5=88=B0=E5=8D=A1=E7=89=87=E7=9A=84=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/module/main/MainActivity.java | 1 + .../module/main/cards/MogoModulesHandler.java | 9 +++++++++ .../module/main/cards/MogoModulesManager.java | 12 ++++++++++++ .../module/service/MarkerServiceHandler.java | 17 +++++++++++++++-- 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index 95a59f095f..515d5556ee 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -198,6 +198,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override public boolean onMarkerClicked( IMogoMarker marker ) { switch2( marker.getOwner() ); + mMogoModuleHandler.onMarkerReceive(marker.getOwner(),marker); return false; } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java index 41c4ec0712..73d83521f3 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java @@ -3,6 +3,7 @@ package com.mogo.module.main.cards; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.location.IMogoLocationListener; +import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.navi.IMogoNaviListener; import com.mogo.service.module.IMogoModuleProvider; @@ -72,4 +73,12 @@ public interface MogoModulesHandler extends IMogoMapListener, * 销毁 */ void destroy(); + + + /** + * 卡片接收到Marker传入数据 + * @param cardType + * @param marker + */ + void onMarkerReceive(String cardType, IMogoMarker marker); } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java index 95c3dfe253..7e67b2b37a 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java @@ -14,6 +14,7 @@ import com.mogo.map.MogoLatLng; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationListener; import com.mogo.map.location.MogoLocation; +import com.mogo.map.marker.IMogoMarker; import com.mogo.map.model.MogoPoi; import com.mogo.map.navi.IMogoNaviListener; import com.mogo.map.navi.MogoNaviInfo; @@ -437,4 +438,15 @@ public class MogoModulesManager implements MogoModulesHandler, mMapLoadedCallback = null; mEnableModuleName = null; } + + @Override + public void onMarkerReceive(String cardType, IMogoMarker marker) { + for ( IMogoModuleProvider value : mModuleProviders.values() ) { + if (value.getModuleName().equals(cardType)) { + if (value.getMarkerClickListener() != null) { + value.getMarkerClickListener().onMarkerClicked(marker); + } + } + } + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index 83e167e32b..70f0e26c1e 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -77,6 +77,8 @@ public class MarkerServiceHandler { public void onMsgReceived(MarkerResponse response) { Logger.e(TAG, "===" + response); + getMarkerManager().removeMarkers(); + // 解析不同的Marker类型,然后对应的进行绘制 if (response != null && response.getResult() != null) { MarkerCardResult markerCardResult = response.getResult(); @@ -165,9 +167,18 @@ public class MarkerServiceHandler { } } + + /** + * 绘制Marker + * + * @param markerTag Marker类型 + * http://gitlab.zhidaoauto.com/ecos/yycp-service/CarLauncher-Docs/blob/master/%E5%8D%A1%E7%89%87%E7%B1%BB%E5%9E%8B%E5%AE%9A%E4%B9%89.md + * @param markerLocation 要绘制Marker的位置信息 + * @param optionsList 要加入的Marker集合 + */ public static void drawMapMarker(String markerTag, MarkerLocation markerLocation, ArrayList optionsList) { - Logger.e(markerTag, "=====绘制Marker===="); + Logger.e(markerTag, "绘制Marker====markerTag:" + markerTag); MapMarkerView mapMarkerView = new MapMarkerView(mContext); @@ -180,6 +191,8 @@ public class MarkerServiceHandler { optionsList.add(options); } + + //TODO 这里是用来测试的 public static void drawMapMarker() { Logger.e(TAG, "=====绘制Marker===="); @@ -187,7 +200,7 @@ public class MarkerServiceHandler { MogoMarkerOptions options = new MogoMarkerOptions() .icon(mapMarkerView) - .owner(TAG) + .owner("CARD_TYPE_USER_DATA") .latitude(39.574525d + new Random().nextDouble()) .longitude(116.21733d + new Random().nextDouble()); IMogoMarker marker = getMarkerManager().addMarker(TAG, options);