From 8744b0f19052e7f5cacd9a66f473d5973606168d Mon Sep 17 00:00:00 2001 From: EmArrow Date: Fri, 21 Jun 2024 14:49:31 +0800 Subject: [PATCH] [6.5.0] road cross func --- app/build.gradle | 2 +- .../hmi/ui/setting/DebugSettingView.kt | 22 +-- .../eagle/core/function/MapBizProvider.kt | 2 +- .../roadcross/RoadCrossCameraManager.kt | 145 ++++++++++++++---- .../roadcross/net/INDERoadCameraApiService.kt | 5 +- .../net/NDERoadCameraNetWorkModel.kt | 74 ++++++++- .../core/function/view/CameraMarkerView.kt | 73 +++++++++ .../eagle/core/function/view/MapBizView.kt | 7 +- .../main/res/drawable-nodpi/road_camera.png | Bin 0 -> 11938 bytes .../res/drawable-nodpi/road_camera_big.png | Bin 0 -> 36209 bytes .../drawable-nodpi/road_camera_big_press.png | Bin 0 -> 19542 bytes .../drawable-nodpi/road_camera_left_light.png | Bin 0 -> 8388 bytes .../road_camera_left_light_select.png | Bin 0 -> 8788 bytes .../res/drawable-nodpi/road_camera_press.png | Bin 0 -> 8530 bytes .../road_camera_right_light.png | Bin 0 -> 8172 bytes .../road_camera_right_light_select.png | Bin 0 -> 8670 bytes .../drawable/bg_map_marker_yellow_info.xml | 15 -- .../bg_module_small_map_view_border.xml | 26 ---- .../res/drawable/bg_shape_reverse_yellow.xml | 17 -- ...p_marker_camera_view_left_light_select.xml | 8 + ..._marker_camera_view_right_light_select.xml | 8 + .../map_marker_camera_view_select.xml | 8 + .../call/map/CallerMapRoadListenerManager.kt | 11 +- gradle/bytex/bytex_lancetx.gradle | 2 +- gradle/bytex/bytex_matrix.gradle | 2 +- gradle/bytex/bytex_thread_opt.gradle | 2 +- .../renders/marker/BitmapDescriptorFactory.kt | 2 +- .../map/sdk/open/renders/marker/Marker.kt | 2 +- .../mogo/map/overlay/IMoGoOverlayManager.kt | 3 + .../java/com/mogo/map/overlay/point/Point.kt | 2 +- .../com/mogo/map/overlay/proxy/IMapOverlay.kt | 7 + .../main/java/com/mogo/map/AMapViewWrapper.kt | 2 + .../map/overlay/MoGoOverlayManagerImpl.kt | 7 + .../overlay/wrapper/point/AMapPointWrapper.kt | 25 ++- 34 files changed, 360 insertions(+), 119 deletions(-) create mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/CameraMarkerView.kt create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera.png create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_big.png create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_big_press.png create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_left_light.png create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_left_light_select.png create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_press.png create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_right_light.png create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_right_light_select.png delete mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_map_marker_yellow_info.xml delete mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_module_small_map_view_border.xml delete mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_shape_reverse_yellow.xml create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_left_light_select.xml create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_right_light_select.xml create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_select.xml diff --git a/app/build.gradle b/app/build.gradle index 0cdd1b7736..696bd12edc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' -apply from: rootProject.file('gradle/bytex/bytex.gradle') +//apply from: rootProject.file('gradle/bytex/bytex.gradle') Properties properties = new Properties() properties.load(project.rootProject.file("gradle.properties").newDataInputStream()) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index df1965b8e1..96abdb293e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -72,6 +72,7 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsFuncConfigList import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager +import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.obu.CallerObuApiManager import com.mogo.eagle.core.function.call.obu.CallerObuConnectListenerManager @@ -100,6 +101,7 @@ import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.map.uicontroller.VisualAngleMode.* import com.mogo.test.crashreport.CrashReportConstants import com.mogo.test.crashreport.ITestCrashReportProvider +import com.zhidaoauto.map.data.road.RoadCross import com.zhjt.mogo.adas.data.AdasConstants import com.zhjt.service.chain.ChainLog import kotlinx.android.synthetic.main.view_debug_setting.view.* @@ -417,15 +419,17 @@ internal class DebugSettingView @JvmOverloads constructor( * 状态中心 */ tbStatusCenter.setOnCheckedChangeListener { buttonView, isChecked -> - if (isChecked) { - buttonView.setCompoundDrawables(null, null, iconDown, null) - //展示状态中心 - statusCenterLayout.visibility = View.VISIBLE - } else { - buttonView.setCompoundDrawables(null, null, iconRight, null) - //隐藏状态中心 - statusCenterLayout.visibility = View.GONE - } + val cross = RoadCross() + CallerMapRoadListenerManager.invokeRoadChange(0, cross) +// if (isChecked) { +// buttonView.setCompoundDrawables(null, null, iconDown, null) +// //展示状态中心 +// statusCenterLayout.visibility = View.VISIBLE +// } else { +// buttonView.setCompoundDrawables(null, null, iconRight, null) +// //隐藏状态中心 +// statusCenterLayout.visibility = View.GONE +// } } /** diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/MapBizProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/MapBizProvider.kt index c2d80a7c3b..e960a03449 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/MapBizProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/MapBizProvider.kt @@ -27,7 +27,7 @@ class MapBizProvider :IMoGoFunctionServerProvider, IMogoRoma { MapIdentifySubscriber.instance MogoRouteOverlayManager.getInstance().init() MapPointCloudSubscriber.instance - RoadCrossCameraManager.instance.init() + RoadCrossCameraManager.instance.init(context) SpeedLimitDataManager.getInstance().start() if(DeviceUtils.isLenovoModel() || DeviceUtils.isEB5Model()){ //todo 新增稳定设备类型需要添加,目的避免在nuc设备上使用此类功能 aiCloudIdentifyDataManager.initServer(AbsMogoApplication.getApp()) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/RoadCrossCameraManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/RoadCrossCameraManager.kt index add9c8038e..010580b0ae 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/RoadCrossCameraManager.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/RoadCrossCameraManager.kt @@ -1,11 +1,19 @@ package com.mogo.eagle.core.function.business.roadcross +import android.annotation.SuppressLint +import android.content.Context +import android.util.Log import com.mogo.eagle.core.data.deva.chain.ChainConstant import com.mogo.eagle.core.data.road.CameraDeviceInfo import com.mogo.eagle.core.function.business.roadcross.net.NDERoadCameraNetWorkModel.Companion.ndeRoadCameraNetWorkModel import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager -import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.eagle.core.function.view.CameraMarkerView +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAP +import com.mogo.map.overlay.core.Level +import com.mogo.map.overlay.point.Point import com.zhidaoauto.map.data.road.RoadCross import com.zhidaoauto.map.data.road.StopLine import com.zhjt.service.chain.ChainLog @@ -21,13 +29,19 @@ class RoadCrossCameraManager : CallerMapRoadListenerManager.OnRoadListener { } } + private var mContext: Context? = null + @Volatile private var isCameraRequest = false - @Volatile - private var roadCrossCameraList:List? = null - fun init() { - CallerMapRoadListenerManager.registerRoadListener(TAG, this) + @Volatile + private var roadCrossCameraList: List? = null + + private val overlayManager = CallerMapUIServiceManager.getOverlayManager() + + fun init(context: Context?) { + mContext = context + CallerMapRoadListenerManager.registerRoadListener(TAG, this) //todo emArrow test note } //todo 记录方法执行时间 @@ -35,33 +49,88 @@ class RoadCrossCameraManager : CallerMapRoadListenerManager.OnRoadListener { if (!isCameraRequest && newV < 100) { isCameraRequest = true val roadCrossEnd = CallerMapRoadListenerManager.getCrossInfo()?.cross_id_end - val loc = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + Log.d( + "emArrow", + "触发接口调用 dis: $distance , roadCrossEnd: ${roadCrossEnd ?: "null"} " + ) if (roadCrossEnd != null) { - ndeRoadCameraNetWorkModel.getRoadCrossInfo(roadCrossEnd, loc.longitude, loc.latitude, onSuccess = { - // 地图上打marker(注意marker方向),marker点击获取对应ip - if(it.roadUniqueId != null && it.roadUniqueId == roadCrossEnd){ - roadCrossCameraList = it.deviceInfoList - UiThreadHandler.post { - + ndeRoadCameraNetWorkModel.getRoadCrossInfo(roadCrossEnd, + onSuccess = { + if (it.roadUniqueId == null) { + traceError("roadUniqueId is null") + return@getRoadCrossInfo } - }else{ - - } - }, onError = { - - }) + if (it.deviceInfoList.isEmpty()) { + traceError("deviceInfoList isEmpty") + return@getRoadCrossInfo + } + if (it.roadUniqueId != roadCrossEnd) { + traceError("cloud roadId :${it.roadUniqueId} is not equal currentCross : $roadCrossEnd") + return@getRoadCrossInfo + } + roadCrossCameraList = it.deviceInfoList + // 地图上打marker(注意marker方向),marker点击获取对应ip + it.deviceInfoList.forEach { deviceInfo -> + addCameraDeviceMarker(deviceInfo) + } + batchRequestCrossLive(it.deviceInfoList) + }, + onError = { + traceError("roadCrossInfo request errorMsg: $it") + }) } else { - roadCrossTrace( - TAG, mapOf( - "errorMsg" to "roadCross is null", - "lat" to loc.latitude, - "lon" to loc.longitude - ) - ) + traceError("roadCross is null") } + } else { + Log.d("emArrow", "distance:$distance") } } + private fun addCameraDeviceMarker(cameraDeviceInfo: CameraDeviceInfo) { + mContext?.let { + val builder = + Point.Options.Builder(TAG, Level.MAP_MARKER) + .setId(cameraDeviceInfo.deviceIp) + .anchor(0.5f, 1f) + .scale(0.6f) + .set3DMode(false) + .flat(false) + .isUseGps(true) + .controlAngle(false) + .icon(CameraMarkerView(it)) + .longitude(cameraDeviceInfo.lon) + .latitude(cameraDeviceInfo.lat) + .onClick { id -> + Log.d("emArrow", "Marker click :$id") + ndeRoadCameraNetWorkModel.singleRequestCrossLive(id, + onSuccess = { + + }, + onError = { + + }) + } + CallerLogger.d("$M_MAP$TAG", "new road cross camera=$overlayManager") + overlayManager?.showOrUpdatePoint(builder.build()) + } + } + + @SuppressLint("NewApi") + private fun batchRequestCrossLive(cameraDeviceInfo: List) { + val list = mutableListOf() + cameraDeviceInfo.forEach { + list.add(it.deviceIp) + } + ndeRoadCameraNetWorkModel.batchRequestCrossLive(list, + onSuccess = { + it.forEach { +// overlayManager?.setInfoWindowView(it.ip,) + } + }, onError = { + + }) + } + override fun onStopLineInfo(info: StopLine) { super.onStopLineInfo(info) distance = info.distance @@ -69,20 +138,44 @@ class RoadCrossCameraManager : CallerMapRoadListenerManager.OnRoadListener { override fun onRoadChange(cross: Boolean, roadCross: RoadCross?) { super.onRoadChange(cross, roadCross) + val data = CameraDeviceInfo("172.18.1.60", 112.582913287, 26.9320508672) + addCameraDeviceMarker(data) + val data1 = CameraDeviceInfo("172.18.1.42", 112.582947017, 26.9328373092) + addCameraDeviceMarker(data1) + val data2 = CameraDeviceInfo("172.18.1.72", 112.582421, 26.932519) + addCameraDeviceMarker(data2) + // 出路口 if (!cross) { // 停止请求摄像头数据 ndeRoadCameraNetWorkModel.cancelRequest("roadCross") + // 清除marker + roadCrossCameraList?.let { + it.forEach { camera -> + overlayManager?.removePoint(camera.deviceIp) + } + } // 释放控制 isCameraRequest = false } } + private fun traceError(msg: String) { + val loc = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + roadCrossTrace( + TAG, mapOf( + "errorMsg" to msg, + "lat" to loc.latitude, + "lon" to loc.longitude + ) + ) + } + @ChainLog( linkChainLog = ChainConstant.CHAIN_TYPE_STATUS, linkCode = ChainConstant.CHAIN_SOURCE_MAP, nodeAliasCode = ChainConstant.CHAIN_CODE_MAP_ROAD_CROSS_ERROR, - paramIndexes = [0, 1] + paramIndexes = [0] ) private fun roadCrossTrace(tag: String, paramMap: Any) { diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/net/INDERoadCameraApiService.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/net/INDERoadCameraApiService.kt index 5e62465973..be6a630256 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/net/INDERoadCameraApiService.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/net/INDERoadCameraApiService.kt @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.business.roadcross.net import com.mogo.eagle.core.data.BaseResponse +import com.mogo.eagle.core.data.road.RoadCameraLive import com.mogo.eagle.core.data.road.RoadCrossCamera import retrofit2.http.Body import retrofit2.http.GET @@ -33,7 +34,7 @@ interface INDERoadCameraApiService { @Query("ip") ip: String, @Query("lon") lon: Double, @Query("lat") lat: Double - ): BaseResponse + ): BaseResponse // 批量ip查询设备直播流与缩略图 @Headers("Content-type:application/json;charset=UTF-8") @@ -42,6 +43,6 @@ interface INDERoadCameraApiService { @Header("MogoAuthKey") authKey: String, @Header("MogoReqTime") time: String, @Body map: MutableMap - ): BaseResponse + ): BaseResponse> } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/net/NDERoadCameraNetWorkModel.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/net/NDERoadCameraNetWorkModel.kt index 70248faafe..dd580e5313 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/net/NDERoadCameraNetWorkModel.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/roadcross/net/NDERoadCameraNetWorkModel.kt @@ -2,7 +2,9 @@ package com.mogo.eagle.core.function.business.roadcross.net import com.mogo.commons.constants.HostConst import com.mogo.eagle.core.data.BaseResponse +import com.mogo.eagle.core.data.road.RoadCameraLive import com.mogo.eagle.core.data.road.RoadCrossCamera +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.eagle.core.network.apiCall import com.mogo.eagle.core.network.cancel @@ -25,18 +27,20 @@ class NDERoadCameraNetWorkModel private constructor() { fun getRoadCrossInfo( crossID: String, - lon: Double, - lat: Double, onSuccess: ((RoadCrossCamera) -> Unit), onError: ((String) -> Unit) ) { request>("roadCross") { loader { apiCall { - val time = System.currentTimeMillis().toString() - val md5String = "${ROAD_CAMERA.uppercase(Locale.getDefault())}$time" + val loc = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + val pair = getAuth(ROAD_CAMERA) getNetWorkApi().roadCameraRequest( - Md5Util.getMD5Result(md5String), time, crossID, lon, lat + pair.first, + pair.second, + crossID, + loc.longitude, + loc.latitude ) } } @@ -49,8 +53,68 @@ class NDERoadCameraNetWorkModel private constructor() { } } + fun singleRequestCrossLive( + ip: String, onSuccess: ((RoadCameraLive) -> Unit), + onError: ((String) -> Unit) + ) { + request>("roadCross") { + loader { + apiCall { + val loc = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + val pair = getAuth(SINGLE_LIVE) + getNetWorkApi().cameraLiveSingleRequest( + pair.first, + pair.second, + ip, + loc.longitude, + loc.latitude + ) + } + } + onSuccess { + onSuccess.invoke(it.result) + } + onError { + onError.invoke(it.message.toString()) + } + } + } + + fun batchRequestCrossLive( + list: MutableList, onSuccess: ((List) -> Unit), + onError: ((String) -> Unit) + ) { + request>>("roadCross") { + loader { + apiCall { + val loc = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + val map = mutableMapOf( + "lon" to loc.longitude, + "lat" to loc.latitude, + "ipList" to list + ) + val pair = getAuth(BATCH_LIVE) + getNetWorkApi().cameraLiveBatchRequest(pair.first, pair.second, map) + } + } + onSuccess { + onSuccess.invoke(it.result) + } + onError { + onError.invoke(it.message.toString()) + } + } + } + fun cancelRequest(tag: String) { cancel(tag) } + private fun getAuth(url: String): Pair { + val time = System.currentTimeMillis().toString() + val md5String = "${url.uppercase(Locale.getDefault())}$time" + val auth = Md5Util.getMD5Result(md5String) + return Pair(auth, time) + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/CameraMarkerView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/CameraMarkerView.kt new file mode 100644 index 0000000000..75bb869254 --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/CameraMarkerView.kt @@ -0,0 +1,73 @@ +package com.mogo.eagle.core.function.view + +import android.content.Context +import android.util.AttributeSet +import android.view.ViewGroup +import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener +import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager +import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager +import com.mogo.eagle.core.function.map.R +import me.jessyan.autosize.utils.AutoSizeUtils + + +class CameraMarkerView(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : + androidx.appcompat.widget.AppCompatImageView(context, attrs, defStyleAttr), + IMoGoSkinModeChangeListener { + + companion object { + private const val TAG = "CameraMarkerView" + } + + init { + if (this.layoutParams == null) { + this.setLayoutParams( + ViewGroup.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ) + ) + } + modeChange(CallerMoGoUiSettingManager.getDayMode()) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerSkinModeListenerManager.addListener(TAG, this) + } + + override fun onSkinModeChange(skinMode: Int) { + modeChange(skinMode) + } + + private fun modeChange(mode: Int) { + when (mode) { + 0 -> { + setImageResource(R.drawable.map_marker_camera_view_select) + resize(106, 121) + } + 1 -> { + setImageResource(R.drawable.map_marker_camera_view_right_light_select) + resize(74, 83) + } + else -> { + setImageResource(R.drawable.map_marker_camera_view_select) + resize(106, 121) + } + } + } + + private fun resize(width: Int, height: Int) { + //设置宽高 + val params = layoutParams + params.width = AutoSizeUtils.dp2px(context, width.toFloat()) + params.height = AutoSizeUtils.dp2px(context, height.toFloat()) + layoutParams = params + requestLayout() + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerSkinModeListenerManager.removeListener(TAG) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt index cbbf92f0a5..139fd8365c 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt @@ -59,7 +59,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, //设置倾斜手势是否可用。 it.setTiltGesturesEnabled(false) //设置双指缩放手势是否可用。 - it.setZoomGesturesEnabled(false) + it.setZoomGesturesEnabled(true) } } @@ -109,7 +109,10 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, } override fun onChassisLocationWGS84(gnssInfo: MogoLocation) { - // 跟新地图控件 + // 跟新地图控件 112.582776,26.931655 + gnssInfo.longitude = 112.582776 + gnssInfo.latitude = 26.931655 //todo emArrow test + gnssInfo.heading = 15.0 setExtraGPSData(gnssInfo) accLimit = gnssInfo.acceleration < accThreshold } diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera.png new file mode 100644 index 0000000000000000000000000000000000000000..44515d8f7b3c1e6c17b139cb4512601003f4651d GIT binary patch literal 11938 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_big_press.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_big_press.png new file mode 100644 index 0000000000000000000000000000000000000000..daf3030cc820bcc1c6fd9f62e826188c68d62d47 GIT binary patch literal 19542 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 M07*qoM6N<$g4a64<^TWy literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_right_light.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/road_camera_right_light.png new file mode 100644 index 0000000000000000000000000000000000000000..d09b7898e5be9f5ee7115dbfacd0db0b8aaec9b3 GIT binary patch literal 8172 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_map_marker_yellow_info.xml b/core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_map_marker_yellow_info.xml deleted file mode 100644 index b2be8e312e..0000000000 --- a/core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_map_marker_yellow_info.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_module_small_map_view_border.xml b/core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_module_small_map_view_border.xml deleted file mode 100644 index 4f45cd6946..0000000000 --- a/core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_module_small_map_view_border.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_shape_reverse_yellow.xml b/core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_shape_reverse_yellow.xml deleted file mode 100644 index 6bc80c96dc..0000000000 --- a/core/function-impl/mogo-core-function-map/src/main/res/drawable/bg_shape_reverse_yellow.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_left_light_select.xml b/core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_left_light_select.xml new file mode 100644 index 0000000000..c30a57fff1 --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_left_light_select.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_right_light_select.xml b/core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_right_light_select.xml new file mode 100644 index 0000000000..c53f667c71 --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_right_light_select.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_select.xml b/core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_select.xml new file mode 100644 index 0000000000..d9a19e05e9 --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/res/drawable/map_marker_camera_view_select.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapRoadListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapRoadListenerManager.kt index 15de42c1ee..75922f9fc4 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapRoadListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapRoadListenerManager.kt @@ -45,22 +45,25 @@ object CallerMapRoadListenerManager { } } + private var mStopLine:StopLine? = null + fun invokeListenersOnStopLineGet(stopLine: StopLine) { + mStopLine = stopLine listeners.forEach { entry -> entry.value.onStopLineInfo(stopLine) } } private var mCross: Int by Delegates.observable(-1) { _, oldValue, newValue -> - if (oldValue != newValue) { - CallerLogger.d("$M_MAP onRoadChange", newValue) +// if (oldValue != newValue) { + CallerLogger.d("$M_MAP onRoadChange observable", newValue) listeners.forEach { entry -> when (newValue) { 1, 2 -> entry.value.onRoadChange(false, mRoadCross) else -> entry.value.onRoadChange(true, mRoadCross) } } - } +// } } private var mRoadCross: RoadCross? = null @@ -76,6 +79,8 @@ object CallerMapRoadListenerManager { paramIndexes = [0, 1] ) fun invokeRoadChange(cross: Int, roadCross: RoadCross) { + CallerLogger.d("$M_MAP onRoadChange", "oldValue: $mCross , " + "mStopLine:${mStopLine?.distance}" + + "newValue: $cross , oldCross:$mRoadCross , newCross:$roadCross") mCross = cross mRoadCross = roadCross diff --git a/gradle/bytex/bytex_lancetx.gradle b/gradle/bytex/bytex_lancetx.gradle index fcb77e1c5d..ac56f4968c 100644 --- a/gradle/bytex/bytex_lancetx.gradle +++ b/gradle/bytex/bytex_lancetx.gradle @@ -1,6 +1,6 @@ apply plugin: 'LancetX' LancetX { - enable true + enable false enableInDebug true blackList = [ "com.mogo.launcher.lancet.jank", diff --git a/gradle/bytex/bytex_matrix.gradle b/gradle/bytex/bytex_matrix.gradle index 05e07ead89..e7d52f4de5 100644 --- a/gradle/bytex/bytex_matrix.gradle +++ b/gradle/bytex/bytex_matrix.gradle @@ -2,7 +2,7 @@ if (!rootProject.isReleaseBuild()) { apply plugin: 'bytex.matrix' matrix { trace { - enable = true //if you don't want to use trace canary, set false + enable = false //if you don't want to use trace canary, set false baseMethodMapFile = "${project.buildDir}/matrix_output/customMethodMapping.txt" blackListFile = "${project.projectDir}/matrixTrace/blackMethodList.txt" } diff --git a/gradle/bytex/bytex_thread_opt.gradle b/gradle/bytex/bytex_thread_opt.gradle index 54e13f1319..200115b131 100644 --- a/gradle/bytex/bytex_thread_opt.gradle +++ b/gradle/bytex/bytex_thread_opt.gradle @@ -1,6 +1,6 @@ apply plugin: 'bytex.threadOpt' thread_opt { - enable true + enable false enableInDebug true logLevel "DEBUG" trace_enable !rootProject.isReleaseBuild() diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/renders/marker/BitmapDescriptorFactory.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/renders/marker/BitmapDescriptorFactory.kt index 0c7b3d69ee..78c0d6e665 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/renders/marker/BitmapDescriptorFactory.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/renders/marker/BitmapDescriptorFactory.kt @@ -70,7 +70,7 @@ object BitmapDescriptorFactory { View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED) ) view.layout(0, 0, view.measuredWidth, view.measuredHeight) - val bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888); + val bitmap = Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888); val canvas = Canvas(bitmap) // canvas.drawColor(Color.WHITE); view.draw(canvas); diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/renders/marker/Marker.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/renders/marker/Marker.kt index cc17fb6825..02bc0defe3 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/renders/marker/Marker.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/renders/marker/Marker.kt @@ -578,7 +578,7 @@ public class Marker(private var markerOptions: MarkerOptions,private var mMapCon if (CompileConfig.DEBUG) { Log.i(TAG, "markerop--matt--showInfoWindow--start:${id}") } - val view = TextView(context); + val view = TextView(context) view.layoutParams = FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,FrameLayout.LayoutParams.WRAP_CONTENT) view.textSize = 10.0f view.text = id diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/IMoGoOverlayManager.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/IMoGoOverlayManager.kt index e5d22b20b4..eb5b53740c 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/IMoGoOverlayManager.kt +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/IMoGoOverlayManager.kt @@ -1,5 +1,6 @@ package com.mogo.map.overlay +import android.view.View import com.mogo.map.MogoMap.Companion.DEFAULT import com.mogo.map.overlay.core.* import com.mogo.map.overlay.line.* @@ -11,6 +12,8 @@ interface IMoGoOverlayManager { fun showOrUpdatePoint(options: PointOptions, mapTag:String = DEFAULT): Point? + fun setInfoWindowView(id: String, view: View) + fun hidePoint(id: String) fun hidePoint(p: Point) diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/point/Point.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/point/Point.kt index 994a9efbc0..b08470048f 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/point/Point.kt +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/point/Point.kt @@ -245,7 +245,7 @@ data class Point(val id: String, val owner: String, val level: Level, val option internal var alpha = 1.0f /** - * 设置Marker覆盖物的透明度 + * 设置Marker覆盖物的缩放比 */ internal var scale = 1.0f diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/proxy/IMapOverlay.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/proxy/IMapOverlay.kt index b8c1c7df0d..f902200671 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/proxy/IMapOverlay.kt +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/proxy/IMapOverlay.kt @@ -1,5 +1,7 @@ package com.mogo.map.overlay.proxy +import android.view.View + interface IMapOverlay { @@ -30,6 +32,10 @@ interface IMapOverlay { */ fun isVisible(): Boolean + /** + * 设置 Marker 覆盖物的 InfoWindowView + */ + fun setInfoWindowView(view: View){} /** * 设置当前marker在最上面。 @@ -42,5 +48,6 @@ interface IMapOverlay { fun setUnTop() + fun onRemove(action: (id: String) -> Unit) } \ No newline at end of file diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt index 57d879a8c0..ea1b279ba8 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt @@ -7,6 +7,7 @@ import android.os.Bundle import android.os.Handler import android.os.HandlerThread import android.text.TextUtils +import android.util.Log import android.view.MotionEvent import android.view.View import com.autonavi.nge.map.OnMapScreenShotListener @@ -251,6 +252,7 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle private var roadCross: RoadCross? by Delegates.observable(null) { _, oldValue, newValue -> oldValue?.let { + Log.d("$M_MAP$TAG", "onRoadCrossInfo oldValue:$oldValue, newValue:$newValue") //对驶入驶出路口做二次过滤,防止多次回调 if (it.status == 0 && newValue!!.status == 1) { //径直进入路口 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt index 7a9a880957..21fb97b044 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt @@ -1,6 +1,7 @@ package com.mogo.map.overlay import android.graphics.* +import android.view.View import com.mogo.eagle.core.data.map.* import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.utilcode.util.* @@ -63,6 +64,12 @@ internal class MoGoOverlayManagerImpl: IMoGoOverlayManager { } } + override fun setInfoWindowView(id: String, view: View) { + points.filter { it.key.id == id && it.value.isVisible() }.onEach { + it.value.setInfoWindowView(view) + } + } + override fun hidePoint(id: String) { points.filter { it.key.id == id && it.value.isVisible() }.onEach { it.value.setVisible(false) diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/wrapper/point/AMapPointWrapper.kt b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/wrapper/point/AMapPointWrapper.kt index 9d55faa793..84853baeb0 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/wrapper/point/AMapPointWrapper.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/wrapper/point/AMapPointWrapper.kt @@ -1,15 +1,20 @@ package com.mogo.map.overlay.wrapper.point -import com.mogo.eagle.core.data.map.* +import android.view.View +import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.map.overlay.point.Point.Options -import com.mogo.map.overlay.proxy.point.* +import com.mogo.map.overlay.proxy.point.IMapPointOverlay import com.mogo.map.utils.ObjectUtils import com.zhidaoauto.map.data.point.LonLatPoint +import com.zhidaoauto.map.sdk.open.renders.marker.Marker import com.zhidaoauto.map.sdk.open.view.MapAutoView import java.util.concurrent.atomic.AtomicBoolean -import com.zhidaoauto.map.sdk.open.renders.marker.Marker -class AMapPointWrapper(private val id: String, private val delegate: Marker, private val mMapAutoView: MapAutoView): IMapPointOverlay { +class AMapPointWrapper( + private val id: String, + private val delegate: Marker, + private val mMapAutoView: MapAutoView +) : IMapPointOverlay { private val isDestroyed by lazy { AtomicBoolean(false) } @@ -54,6 +59,10 @@ class AMapPointWrapper(private val id: String, private val delegate: Marker, pri return delegate.isVisible() } + override fun setInfoWindowView(view: View) { + delegate.setInfoWindowView(view) + } + override fun setToTop() { if (isDestroyed.get() || isRemoved.get()) { return @@ -72,11 +81,15 @@ class AMapPointWrapper(private val id: String, private val delegate: Marker, pri if (isDestroyed.get() || isRemoved.get()) { return } - delegate.setMarkerOptions(ObjectUtils.fromMogo(opt,mMapAutoView)) + delegate.setMarkerOptions(ObjectUtils.fromMogo(opt, mMapAutoView)) } override fun addDynamicAnchorPosition(point: MogoLatLng, angle: Float, duration: Long) { - delegate.addDynamicAnchorPostion(LonLatPoint(point.lon, point.lat, angle.toDouble()), System.currentTimeMillis(), duration.toInt()) + delegate.addDynamicAnchorPostion( + LonLatPoint(point.lon, point.lat, angle.toDouble()), + System.currentTimeMillis(), + duration.toInt() + ) } override fun onRemove(action: (id: String) -> Unit) {