From 18317700acceda5cbb2e3c6e19ce002da5ba8afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 8 Jan 2020 18:13:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E7=BB=98=E5=88=B6?= =?UTF-8?q?=E5=A4=A7=E8=80=8C=E5=85=A8=E7=9A=84Marker=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/service/MarkerServiceHandler.java | 59 ++++++++++++++++++- .../marker/MarkerInfoWindowAdapter.java | 36 +++++++++++ 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MarkerInfoWindowAdapter.java 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 0f9c08acef..f10ef4d247 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 @@ -3,8 +3,15 @@ package com.mogo.module.service; import android.content.Context; import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.map.marker.IMogoMarker; +import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.marker.IMogoMarkerManager; +import com.mogo.map.marker.MogoMarkerOptions; +import com.mogo.map.navi.IMogoNavi; import com.mogo.module.service.entity.MarkerResponse; +import com.mogo.module.service.marker.MapMarkerInfoView; +import com.mogo.module.service.marker.MapMarkerView; +import com.mogo.module.service.marker.MarkerInfoWindowAdapter; import com.mogo.service.MogoServicePaths; import com.mogo.service.connection.IMogoOnMessageListener; import com.mogo.service.connection.IMogoSocketManager; @@ -12,6 +19,10 @@ import com.mogo.service.imageloader.IMogoImageloader; import com.mogo.service.map.IMogoMapService; import com.mogo.utils.logger.Logger; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + /** * author : donghongyu * e-mail : 1358506549@qq.com @@ -20,17 +31,29 @@ import com.mogo.utils.logger.Logger; * version: 1.0 */ public class MarkerServiceHandler { + private static final String TAG = "MarkerServiceHandler"; + + private static MogoMarkerClickListener mogoMarkerClickListener; private static IMogoMapService mMapService; private static IMogoMarkerManager mMarkerManager; + private static IMogoNavi mNavi; + private static IMogoImageloader mImageloader; private static IMogoSocketManager mMogoSocketManager; + private static MarkerInfoWindowAdapter markerInfoWindowAdapter; - public static void init(Context context) { + public static void init(final Context context) { mMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(context); mImageloader = (IMogoImageloader) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_IMAGE_LOADER).navigation(context); mMarkerManager = mMapService.getMarkerManager(context); + mNavi = mMapService.getNavi(context); + markerInfoWindowAdapter = new MarkerInfoWindowAdapter(context, getNavi(), getImageloader()); + + mogoMarkerClickListener = new MogoMarkerClickListener(); + + // 长连接 mMogoSocketManager = (IMogoSocketManager) ARouter.getInstance().build(MogoServicePaths.PATH_SOCKET_MANAGER).navigation(); mMogoSocketManager.registerOnMessageListener(401001, new IMogoOnMessageListener() { @@ -42,6 +65,28 @@ public class MarkerServiceHandler { @Override public void onMsgReceived(MarkerResponse obj) { Logger.e("donghongyu", "===" + obj); + + MapMarkerInfoView mapMarkerInfoView = new MapMarkerInfoView(context); + MapMarkerView mapMarkerView = new MapMarkerView(context); + + ArrayList optionsList = new ArrayList<>(); + for (int i = 0; i < 10; i++) { + MogoMarkerOptions options = new MogoMarkerOptions() + .owner(TAG) + .latitude(39.974525d + new Random().nextDouble()) + .longitude(116.41733d + new Random().nextDouble()); + if (i % 2 == 0) { + options.icon(mapMarkerInfoView); + } else { + options.icon(mapMarkerView); + } + optionsList.add(options); + } + List iMogoMarkers = getMarkerManager().addMarkers(TAG, optionsList, true); + for (IMogoMarker iMogoMarker : iMogoMarkers) { + iMogoMarker.setInfoWindowAdapter(markerInfoWindowAdapter); + iMogoMarker.setOnMarkerClickListener(mogoMarkerClickListener); + } } }); @@ -55,6 +100,10 @@ public class MarkerServiceHandler { return mMarkerManager; } + public static IMogoNavi getNavi() { + return mNavi; + } + public static IMogoImageloader getImageloader() { return mImageloader; } @@ -63,4 +112,12 @@ public class MarkerServiceHandler { return mMogoSocketManager; } + + static class MogoMarkerClickListener implements IMogoMarkerClickListener { + + @Override + public boolean onMarkerClicked(IMogoMarker marker) { + return false; + } + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MarkerInfoWindowAdapter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MarkerInfoWindowAdapter.java new file mode 100644 index 0000000000..385853793f --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MarkerInfoWindowAdapter.java @@ -0,0 +1,36 @@ +package com.mogo.module.service.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.navi.IMogoNavi; +import com.mogo.service.imageloader.IMogoImageloader; + +/** + * author : donghongyu + * e-mail : 1358506549@qq.com + * date : 2020-01-0818:11 + * desc : + * version: 1.0 + */ +public class MarkerInfoWindowAdapter implements IMogoInfoWindowAdapter { + + private static final String TAG = "MarkerInfoWindowAdapter"; + + private Context mContext; + private IMogoNavi mNavi; + private IMogoImageloader mImageloader; + + public MarkerInfoWindowAdapter( Context mContext, IMogoNavi mNavi, IMogoImageloader iMogoImageloader ) { + this.mContext = mContext; + this.mNavi = mNavi; + this.mImageloader = iMogoImageloader; + } + + @Override + public View getInfoWindow(IMogoMarker marker) { + return null; + } +}