From 42aa1959a5bc15452f697eadd83d9df9ecdfee94 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 12:03:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E7=9C=9F?= =?UTF-8?q?=E5=AE=9E=E6=95=B0=E6=8D=AE=E7=9A=84marker=E7=BB=98=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- .../com/mogo/launcher/MogoApplication.java | 1 - .../module/service/MarkerServiceHandler.java | 86 ++++++++++++++++--- 3 files changed, 77 insertions(+), 12 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 8a8f75bfe2..703e5d4b89 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index d2f1206eb8..3af687459b 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -27,7 +27,6 @@ public class MogoApplication extends AbsMogoApplication { DebugConfig.setNetMode( DebugConfig.NET_MODE_QA ); MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, "CARD_TYPE_ROAD_ONLINECAR")); MogoModulePaths.addModule( new MogoModule( TanluConstants.TAG, "CARD_TYPE_ROAD_CODITION" ) ); - MogoModulePaths.addModule(new MogoModule( OnLineCarConstants.TAG, "CARD_TYPE_ROAD_ONLINECAR")); // MogoModulePaths.addModule(new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME)); } 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 7e57af5d2c..83e167e32b 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 @@ -9,7 +9,13 @@ import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.map.navi.IMogoNavi; import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.module.service.entity.MarkerCarChat; +import com.mogo.module.service.entity.MarkerCardResult; +import com.mogo.module.service.entity.MarkerExploreWay; +import com.mogo.module.service.entity.MarkerLocation; +import com.mogo.module.service.entity.MarkerOnlineCar; import com.mogo.module.service.entity.MarkerResponse; +import com.mogo.module.service.entity.MarkerShareMusic; import com.mogo.module.service.marker.MapMarkerView; import com.mogo.module.service.marker.MarkerInfoWindowAdapter; import com.mogo.service.MogoServicePaths; @@ -20,6 +26,8 @@ import com.mogo.service.map.IMogoMapService; import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; +import java.util.ArrayList; +import java.util.List; import java.util.Random; /** @@ -32,7 +40,7 @@ import java.util.Random; public class MarkerServiceHandler { private static final String TAG = "MarkerServiceHandler"; - private static MogoMarkerClickListener mogoMarkerClickListener; + private static MoGoMarkerClickListener mogoMarkerClickListener; private static IMogoMapService mMapService; private static IMogoMarkerManager mMarkerManager; @@ -54,8 +62,7 @@ public class MarkerServiceHandler { markerInfoWindowAdapter = new MarkerInfoWindowAdapter(context, getNavi(), getImageloader()); mMapUIController = mMapService.getMapUIController(); - - mogoMarkerClickListener = new MogoMarkerClickListener(); + mogoMarkerClickListener = new MoGoMarkerClickListener(); // 长连接 mMogoSocketManager = (IMogoSocketManager) ARouter.getInstance().build(MogoServicePaths.PATH_SOCKET_MANAGER).navigation(); @@ -67,14 +74,56 @@ public class MarkerServiceHandler { } @Override - public void onMsgReceived(MarkerResponse obj) { - Logger.e("donghongyu", "===" + obj); + public void onMsgReceived(MarkerResponse response) { + Logger.e(TAG, "===" + response); - for (int i = 0; i < 10; i++) { - drawMapMarker(); + // 解析不同的Marker类型,然后对应的进行绘制 + if (response != null && response.getResult() != null) { + MarkerCardResult markerCardResult = response.getResult(); + + List carChat = markerCardResult.getCarChat(); + List onlineCar = markerCardResult.getOnlineCar(); + List exploreWay = markerCardResult.getExploreWay(); + List shareMusic = markerCardResult.getShareMusic(); + + ArrayList optionsList = new ArrayList<>(); + + if (carChat != null) { + for (MarkerCarChat markerCarChat : carChat) { + MarkerLocation markerLocation = markerCarChat.getLocation(); + drawMapMarker(markerCarChat.getType(), markerLocation, optionsList); + } + } + + if (onlineCar != null) { + for (MarkerOnlineCar markerOnlineCar : onlineCar) { + MarkerLocation markerLocation = markerOnlineCar.getLocation(); + drawMapMarker(markerOnlineCar.getType(), markerLocation, optionsList); + } + } + + if (exploreWay != null) { + for (MarkerExploreWay markerExploreWay : exploreWay) { + MarkerLocation markerLocation = markerExploreWay.getLocation(); + drawMapMarker(markerExploreWay.getType(), markerLocation, optionsList); + } + } + + if (shareMusic != null) { + for (MarkerShareMusic markerShareMusic : shareMusic) { + MarkerLocation markerLocation = markerShareMusic.getLocation(); + drawMapMarker(markerShareMusic.getType(), markerLocation, optionsList); + } + } + + List iMogoMarkers = getMarkerManager().addMarkers(TAG, optionsList, true); + for (IMogoMarker iMogoMarker : iMogoMarkers) { + iMogoMarker.setInfoWindowAdapter(markerInfoWindowAdapter); + iMogoMarker.setOnMarkerClickListener(mogoMarkerClickListener); + } } - } + } }); } @@ -106,7 +155,7 @@ public class MarkerServiceHandler { /** * 地图上的Marker点击回调 */ - static class MogoMarkerClickListener implements IMogoMarkerClickListener { + static class MoGoMarkerClickListener implements IMogoMarkerClickListener { @Override public boolean onMarkerClicked(IMogoMarker marker) { @@ -116,9 +165,23 @@ public class MarkerServiceHandler { } } + public static void drawMapMarker(String markerTag, MarkerLocation markerLocation, + ArrayList optionsList) { + Logger.e(markerTag, "=====绘制Marker===="); + + MapMarkerView mapMarkerView = new MapMarkerView(mContext); + + MogoMarkerOptions options = new MogoMarkerOptions() + .icon(mapMarkerView) + .owner(markerTag) + .latitude(markerLocation.getLat()) + .longitude(markerLocation.getLon()); + + optionsList.add(options); + } public static void drawMapMarker() { - TipToast.shortTip("绘制Marker"); + Logger.e(TAG, "=====绘制Marker===="); MapMarkerView mapMarkerView = new MapMarkerView(mContext); @@ -132,5 +195,8 @@ public class MarkerServiceHandler { marker.setOnMarkerClickListener(mogoMarkerClickListener); getMapUIController().changeZoom(false); + + getMapUIController().changeZoom(10); + } } 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 2/2] =?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);