diff --git a/config.gradle b/config.gradle index 27940105bc..c1d0b932b7 100644 --- a/config.gradle +++ b/config.gradle @@ -95,6 +95,7 @@ ext { mogoconnection : "com.mogo.connection:mogo-connection:${MOGO_CONNECTION_VERSION}", moduleextensions : "com.mogo.module:module-extensions:${MOGO_MODULE_EXTENSIONS_VERSION}", modulechatting : "com.mogo.module.carchatting:module-carchatting:${CARCHATTING_VERSION}", + // 在线车辆 moduleonlinecar : "com.mogo.module:module-onlinecar:${MOGO_MODULE_ONLINECAR_VERSION}", // 长链 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..8f7bbcaf3b 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,15 +3,24 @@ 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.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; import com.mogo.service.imageloader.IMogoImageloader; import com.mogo.service.map.IMogoMapService; +import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; +import java.util.Random; + /** * author : donghongyu * e-mail : 1358506549@qq.com @@ -20,17 +29,32 @@ 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) { + private static Context mContext; + + public static void init(final Context context) { + mContext = 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 +66,10 @@ public class MarkerServiceHandler { @Override public void onMsgReceived(MarkerResponse obj) { Logger.e("donghongyu", "===" + obj); + + for (int i = 0; i < 10; i++) { + drawMapMarker(); + } } }); @@ -55,6 +83,10 @@ public class MarkerServiceHandler { return mMarkerManager; } + public static IMogoNavi getNavi() { + return mNavi; + } + public static IMogoImageloader getImageloader() { return mImageloader; } @@ -63,4 +95,31 @@ public class MarkerServiceHandler { return mMogoSocketManager; } + + /** + * 地图上的Marker点击回调 + */ + static class MogoMarkerClickListener implements IMogoMarkerClickListener { + + @Override + public boolean onMarkerClicked(IMogoMarker marker) { + TipToast.shortTip("点击了大而全中的Marker"); + + return false; + } + } + + + public static void drawMapMarker() { + MapMarkerView mapMarkerView = new MapMarkerView(mContext); + + MogoMarkerOptions options = new MogoMarkerOptions() + .icon(mapMarkerView) + .owner(TAG) + .latitude(38.574525d + new Random().nextDouble()) + .longitude(115.41733d + new Random().nextDouble()); + IMogoMarker marker = getMarkerManager().addMarker(TAG, options); + marker.setInfoWindowAdapter(markerInfoWindowAdapter); + marker.setOnMarkerClickListener(mogoMarkerClickListener); + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java index 4e2d773096..97223ecf63 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java @@ -6,6 +6,7 @@ import android.view.LayoutInflater; import android.widget.LinearLayout; import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; import com.mogo.module.service.R; @@ -16,7 +17,7 @@ import com.mogo.module.service.R; * desc : 地图Marker图标带文本信息 * version: 1.0 */ -public class MapMarkerInfoView extends LinearLayout { +public class MapMarkerInfoView extends ConstraintLayout { public MapMarkerInfoView(Context context) { super(context); initView(context); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java index d288cfa493..4663420ddf 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java @@ -3,9 +3,9 @@ package com.mogo.module.service.marker; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; -import android.widget.LinearLayout; import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; import com.mogo.module.service.R; @@ -16,7 +16,7 @@ import com.mogo.module.service.R; * desc : 地图Marker图标 * version: 1.0 */ -public class MapMarkerView extends LinearLayout { +public class MapMarkerView extends ConstraintLayout { public MapMarkerView(Context context) { super(context); initView(context); 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..6aac1ddb47 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MarkerInfoWindowAdapter.java @@ -0,0 +1,37 @@ +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) { + MapMarkerInfoView mapMarkerInfoView = new MapMarkerInfoView(mContext); + return mapMarkerInfoView; + } +} diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_car_blue.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_car_blue.png new file mode 100644 index 0000000000..0bd9d83a57 Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_car_blue.png differ diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_car_gray.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_car_gray.png new file mode 100644 index 0000000000..37eae8f2ab Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_car_gray.png differ diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_location_blue.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_location_blue.png new file mode 100644 index 0000000000..34823616ee Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_location_blue.png differ diff --git a/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_triangle_blue.xml b/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_triangle_blue.xml index 8926a9e9c0..b752a1633a 100644 --- a/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_triangle_blue.xml +++ b/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_triangle_blue.xml @@ -12,6 +12,4 @@ - - diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml index c831059662..0d3b1ffbe3 100644 --- a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml +++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml @@ -1,9 +1,11 @@ - + android:orientation="vertical" + tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout" > @@ -27,4 +28,14 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - \ No newline at end of file + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml index c4e0a7e62c..48b96abba9 100644 --- a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml +++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml @@ -1,32 +1,66 @@ - + android:orientation="horizontal" + tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout" > - + app:layout_constraintTop_toTopOf="parent" > + + + + + + - \ No newline at end of file + app:layout_constraintEnd_toEndOf="@+id/llMarkerContent" + app:layout_constraintStart_toStartOf="@+id/llMarkerContent" + app:layout_constraintTop_toBottomOf="@+id/llMarkerContent" /> + + + \ No newline at end of file