diff --git a/libraries/mapmodule/build.gradle b/libraries/mapmodule/build.gradle index c6307d3d65..ebf4a2fa69 100644 --- a/libraries/mapmodule/build.gradle +++ b/libraries/mapmodule/build.gradle @@ -66,6 +66,7 @@ dependencies { implementation 'com.zhidaoauto.map:net:1.0.1' implementation 'com.zhidaoauto.machine:mapcore:3.0.0.5' + implementation 'com.zhidaoauto.machine:data:1.0.0.1' } diff --git a/libraries/mapmodule/src/main/java/com/autonavi/nge/MapBox.java b/libraries/mapmodule/src/main/java/com/autonavi/nge/MapBox.java index e6fea0edc2..11326fc643 100644 --- a/libraries/mapmodule/src/main/java/com/autonavi/nge/MapBox.java +++ b/libraries/mapmodule/src/main/java/com/autonavi/nge/MapBox.java @@ -7,7 +7,6 @@ import com.zhidaoauto.map.sdk.inner.CompileConfig; import com.zhidaoauto.map.sdk.inner.road.RoadResultController; public class MapBox { - private static final String TAG = "MapBox"; static { System.loadLibrary("map"); } diff --git a/libraries/mapmodule/src/main/java/com/autonavi/nge/dm/NavigationCore.java b/libraries/mapmodule/src/main/java/com/autonavi/nge/dm/NavigationCore.java index 1eee05af19..3a7aef377a 100644 --- a/libraries/mapmodule/src/main/java/com/autonavi/nge/dm/NavigationCore.java +++ b/libraries/mapmodule/src/main/java/com/autonavi/nge/dm/NavigationCore.java @@ -1,4 +1,4 @@ -//package com.autonavi.nge.dm; +package com.autonavi.nge.dm;//package com.autonavi.nge.dm; // //import android.os.RemoteException; //import android.util.Log; diff --git a/libraries/mapmodule/src/main/java/com/autonavi/nge/guidance/RouteBookAdapter.kt b/libraries/mapmodule/src/main/java/com/autonavi/nge/guidance/RouteBookAdapter.kt index 9e22a0682f..8bd3267734 100644 --- a/libraries/mapmodule/src/main/java/com/autonavi/nge/guidance/RouteBookAdapter.kt +++ b/libraries/mapmodule/src/main/java/com/autonavi/nge/guidance/RouteBookAdapter.kt @@ -1,58 +1,58 @@ -//package com.autonavi.nge.guidance -// -//import android.util.Log -//import android.view.View -//import android.widget.ImageView -//import android.widget.LinearLayout -//import android.widget.TextView -//import com.chad.library.adapter.base.BaseQuickAdapter -//import com.chad.library.adapter.base.viewholder.BaseViewHolder -//import com.zhidaoauto.map.sdk.R -//import com.zhidaoauto.map.sdk.inner.CompileConfig -//import java.text.DecimalFormat -// -//class RouteBookAdapter : BaseQuickAdapter(R.layout.routebook_child_item) { -// -// private val TAG = javaClass.simpleName -// -// -// override fun getDefItemCount(): Int { -// return super.getDefItemCount() -// } -// -// override fun convert(helper: BaseViewHolder, item: RouteBookItem) { -// if (CompileConfig.DEBUG) { -// Log.i(TAG, "routebookop--helper.adapterPosition:${helper.adapterPosition}") -// } -// when (helper.adapterPosition) { -// 0 -> { -// helper.getView(R.id.routebook_child_item_info_ll).visibility = View.VISIBLE -// helper.getView(R.id.imgView).setImageResource(NaviDirRes.getResID(501)) -// helper.getView(R.id.orientation).text = "从${item.routeName?:"起点"}出发" -// helper.getView(R.id.length).visibility = View.GONE -// } -// else -> { -// helper.getView(R.id.orientation).text = item.routeName -// helper.getView(R.id.imgView).setImageResource(NaviDirRes.getResID(item.turnID)) -// if (item.routeName == "目的地") { -// helper.getView(R.id.length).visibility = View.GONE -// } else { -// helper.getView(R.id.length).visibility = View.VISIBLE -// val i = item.routelength -// if (i > 1000) { -// val df = DecimalFormat("#.0") -// val string = df.format(i.toDouble() / 1000) -// val strs = string.split(".") -// if (strs.size >= 2 && strs[1] == "0") { -// helper.getView(R.id.length).text = """继续前行${strs[0]}km${item.routeSpeech}""".trimIndent() -// } else { -// helper.getView(R.id.length).text = """继续前行${string}km${item.routeSpeech}""".trimIndent() -// } -// } else { -// helper.getView(R.id.length).text = """继续前行${i}m${item.routeSpeech}""".trimIndent() -// } -// } -// } -// } -// } -//} \ No newline at end of file +package com.autonavi.nge.guidance + +import android.util.Log +import android.view.View +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.TextView +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.zhidaoauto.map.sdk.R +import com.zhidaoauto.map.sdk.inner.CompileConfig +import java.text.DecimalFormat + +class RouteBookAdapter : BaseQuickAdapter(R.layout.routebook_child_item) { + + private val TAG = javaClass.simpleName + + + override fun getDefItemCount(): Int { + return super.getDefItemCount() + } + + override fun convert(helper: BaseViewHolder, item: RouteBookItem) { + if (CompileConfig.DEBUG) { + Log.i(TAG, "routebookop--helper.adapterPosition:${helper.adapterPosition}") + } + when (helper.adapterPosition) { + 0 -> { + helper.getView(R.id.routebook_child_item_info_ll).visibility = View.VISIBLE + helper.getView(R.id.imgView).setImageResource(NaviDirRes.getResID(501)) + helper.getView(R.id.orientation).text = "从${item.routeName?:"起点"}出发" + helper.getView(R.id.length).visibility = View.GONE + } + else -> { + helper.getView(R.id.orientation).text = item.routeName + helper.getView(R.id.imgView).setImageResource(NaviDirRes.getResID(item.turnID)) + if (item.routeName == "目的地") { + helper.getView(R.id.length).visibility = View.GONE + } else { + helper.getView(R.id.length).visibility = View.VISIBLE + val i = item.routelength + if (i > 1000) { + val df = DecimalFormat("#.0") + val string = df.format(i.toDouble() / 1000) + val strs = string.split(".") + if (strs.size >= 2 && strs[1] == "0") { + helper.getView(R.id.length).text = """继续前行${strs[0]}km${item.routeSpeech}""".trimIndent() + } else { + helper.getView(R.id.length).text = """继续前行${string}km${item.routeSpeech}""".trimIndent() + } + } else { + helper.getView(R.id.length).text = """继续前行${i}m${item.routeSpeech}""".trimIndent() + } + } + } + } + } +} \ No newline at end of file diff --git a/libraries/mapmodule/src/main/java/com/autonavi/nge/map/MapView.kt b/libraries/mapmodule/src/main/java/com/autonavi/nge/map/MapView.kt index 0e14a7427b..48e659b5a8 100644 --- a/libraries/mapmodule/src/main/java/com/autonavi/nge/map/MapView.kt +++ b/libraries/mapmodule/src/main/java/com/autonavi/nge/map/MapView.kt @@ -16,6 +16,7 @@ import android.view.MotionEvent import android.view.SurfaceHolder import android.view.View import com.alibaba.fastjson.JSON +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.CompileConfig.DEBUG import com.zhidaoauto.map.sdk.inner.abs.IEventController @@ -34,7 +35,6 @@ import com.zhidaoauto.map.sdk.open.abs.view.IMapStyleParams import com.zhidaoauto.map.sdk.open.marker.Marker import com.zhidaoauto.map.sdk.open.marker.MarkerInfo import com.zhidaoauto.map.sdk.open.marker.MarkerOptions -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.tools.MapTools import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -216,7 +216,7 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr override fun toScreen() { - isScreen = true + isScreen.set(true) } override fun setVrMode(isVr: Boolean) { @@ -606,7 +606,7 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr } var snapshotBitmap: Bitmap? = null - var isScreen = false + var isScreen:AtomicBoolean = AtomicBoolean() private var doubles = doubleArrayOf() open fun getDoubles(): DoubleArray { @@ -655,8 +655,8 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr msg.what = RENDER_CHANGE msg.arg1 = (System.currentTimeMillis()-time).toInt() mHandler.sendMessage(msg) - if (isScreen) { - isScreen = false + if (isScreen.get()) { + isScreen.set(false) snapshotBitmap = createBitmapFromGLSurface(0, 0, width, height, gl) mEventController?.dispatchScreenShotListener(snapshotBitmap) } @@ -897,7 +897,9 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr val markerInfo = jsonToObj(resultInfo) if (markerInfo != null) { - var marker: Marker = Marker(MarkerOptions(markerInfo.id,null).setGps(true).position(LonLatPoint(markerInfo.lon, markerInfo.lat)).setAssInfo(markerInfo.assInfo),mMapController,mMarkerCall) + var marker: Marker = Marker(MarkerOptions(markerInfo.id,null).setGps(true).position( + LonLatPoint(markerInfo.lon, markerInfo.lat) + ).setAssInfo(markerInfo.assInfo),mMapController,mMarkerCall) lastClickMarker?.let { if (!TextUtils.equals(it.getId(), marker.getId())) { it.hideInfoWindow() diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/IEventController.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/IEventController.kt index baf541820f..03f0794e84 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/IEventController.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/IEventController.kt @@ -3,6 +3,9 @@ package com.zhidaoauto.map.sdk.inner.abs import android.graphics.Bitmap import android.view.MotionEvent import com.autonavi.nge.map.OnMapScreenShotListener +import com.zhidaoauto.map.data.point.LonLatPoint +import com.zhidaoauto.map.data.road.RoadCross +import com.zhidaoauto.map.data.road.StopLine import com.zhidaoauto.map.sdk.open.abs.MapStatusListener import com.zhidaoauto.map.sdk.open.abs.OnCameraChangeListener import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener @@ -21,17 +24,10 @@ import com.zhidaoauto.map.sdk.open.camera.CameraPosition import com.zhidaoauto.map.sdk.open.location.MogoLocation import com.zhidaoauto.map.sdk.open.marker.Marker import com.zhidaoauto.map.sdk.open.marker.OnMarkClickListener -import com.zhidaoauto.map.sdk.open.query.LonLatPoint -import com.zhidaoauto.map.sdk.open.road.RoadCross -import com.zhidaoauto.map.sdk.open.road.StopLine interface IEventController { fun exit() - fun addHdDataDownListener(id: Int, onHdDataDownByCityListener: OnHdDataDownByCityListener) - fun removeHdDataDownListener(id: Int) - fun dispatchHdDataDownListener(id: Int, progress: Double) - fun dispatchHdDataDownStateListener(id: Int, state: Int) fun addCameraChangeListener(cameraChangeListener: OnCameraChangeListener) fun removeCameraChangeListener(cameraChangeListener: OnCameraChangeListener) fun dispatchCameraChangeListener(type: Int, value: Int) diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/ILockLocation.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/ILockLocation.kt index 862d65d759..410f6eda1e 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/ILockLocation.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/ILockLocation.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.inner.abs -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint interface ILockLocation { fun setLockCar(lock: Boolean) diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/ILonLatProxy.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/ILonLatProxy.kt index b694cc6687..9772c9752f 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/ILonLatProxy.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/ILonLatProxy.kt @@ -1,9 +1,9 @@ package com.zhidaoauto.map.sdk.inner.abs import com.autonavi.nge.map.LonLat -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint interface ILonLatProxy { - open fun switchLonLat(lonLat: LonLat):LonLatPoint + open fun switchLonLat(lonLat: LonLat): LonLatPoint open fun switchLonLat(lonLatPoint: LonLatPoint):LonLat } \ No newline at end of file diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/IMapController.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/IMapController.kt index b241378ebd..8162fc8112 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/IMapController.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/abs/IMapController.kt @@ -6,6 +6,7 @@ import android.view.View import com.autonavi.nge.map.LonLat import com.autonavi.nge.map.OnMapScreenShotListener import com.autonavi.nge.map.Pixels +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.element.MapCoordinate import com.zhidaoauto.map.sdk.inner.use.Clerk import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener @@ -16,7 +17,6 @@ import com.zhidaoauto.map.sdk.open.deadzone.DeadZone import com.zhidaoauto.map.sdk.open.deadzone.DeadZoneOptions import com.zhidaoauto.map.sdk.open.poyline.Polyline import com.zhidaoauto.map.sdk.open.poyline.PolylineOptions -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.weather.WeatherResult import kotlinx.coroutines.CoroutineScope @@ -185,9 +185,6 @@ interface IMapController { fun clearAllPrimitives(): Boolean fun drawDeadZone(strJsonOption: String) fun setDeadZoneVisible(b: Boolean) - fun cacheHDDataByCity(id: Int, listener: OnHdDataDownByCityListener) - fun cacheHDDataByCityLonLat(lon: Double, lat: Double, listener: OnHdDataDownByCityListener) - fun cancelCacheHDData() /** * 锚点 更新锚点属性 diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/controller/MapEventController.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/controller/MapEventController.kt index 49d2c01875..8179ee198c 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/controller/MapEventController.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/controller/MapEventController.kt @@ -3,11 +3,13 @@ package com.zhidaoauto.map.sdk.inner.controller import android.graphics.Bitmap import android.view.MotionEvent import com.autonavi.nge.map.OnMapScreenShotListener +import com.zhidaoauto.map.data.point.LonLatPoint +import com.zhidaoauto.map.data.road.RoadCross +import com.zhidaoauto.map.data.road.StopLine import com.zhidaoauto.map.sdk.inner.abs.IEventController import com.zhidaoauto.map.sdk.open.MapAutoApi import com.zhidaoauto.map.sdk.open.abs.MapStatusListener import com.zhidaoauto.map.sdk.open.abs.OnCameraChangeListener -import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener import com.zhidaoauto.map.sdk.open.abs.OnMapChangeListener import com.zhidaoauto.map.sdk.open.abs.OnMapClickListener import com.zhidaoauto.map.sdk.open.abs.OnMapLoadedListener @@ -23,9 +25,6 @@ import com.zhidaoauto.map.sdk.open.camera.CameraPosition import com.zhidaoauto.map.sdk.open.location.MogoLocation import com.zhidaoauto.map.sdk.open.marker.Marker import com.zhidaoauto.map.sdk.open.marker.OnMarkClickListener -import com.zhidaoauto.map.sdk.open.query.LonLatPoint -import com.zhidaoauto.map.sdk.open.road.RoadCross -import com.zhidaoauto.map.sdk.open.road.StopLine class MapEventController(): IEventController { @@ -46,7 +45,6 @@ class MapEventController(): IEventController { private var renderListenerList : ArrayList? = null private var mRoadInfoListenerList : ArrayList? = null private var mLogListenerList : ArrayList? = null - private var mHdDataDownloadListener: HashMap? = null private var mRoamStatusListenerList: ArrayList? = null @@ -85,47 +83,10 @@ class MapEventController(): IEventController { renderListenerList = null mLogListenerList?.clear() mLogListenerList = null - mHdDataDownloadListener?.clear() - mHdDataDownloadListener = null mRoamStatusListenerList?.clear() mRoamStatusListenerList = null } - override fun addHdDataDownListener(id: Int, onHdDataDownByCityListener: OnHdDataDownByCityListener){ - if(mHdDataDownloadListener == null){ - mHdDataDownloadListener = HashMap() - } - if(!mHdDataDownloadListener!!.keys.contains(id)) { - mHdDataDownloadListener?.put(id, onHdDataDownByCityListener) - } - } - - override fun removeHdDataDownListener(id: Int){ - mHdDataDownloadListener?.let { - if(it.keys.contains(id)) { - it.remove(id) - } - } - - } - - override fun dispatchHdDataDownListener(id: Int, progress: Double){ - mHdDataDownloadListener?.let { - for(listener in it.values){ - listener.onMapHDDataCacheProgressByCity(id,progress) - } - } - } - - override fun dispatchHdDataDownStateListener(id: Int, state: Int){ - mHdDataDownloadListener?.let { - for(listener in it.values){ - listener.onMapHDDataCacheStateByCity(id,state) - } - } - } - - override fun addCameraChangeListener(cameraChangeListener: OnCameraChangeListener){ if(mCameraChangeListenerList == null){ mCameraChangeListenerList = ArrayList() diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/location/LocationHelper.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/location/LocationHelper.kt index 1732ce3641..157fdc6045 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/location/LocationHelper.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/location/LocationHelper.kt @@ -9,10 +9,12 @@ import com.zhidaoauto.map.sdk.inner.abs.ILocationView import com.zhidaoauto.map.sdk.inner.abs.IMapController import com.zhidaoauto.map.sdk.inner.abs.IMarkerController import com.zhidaoauto.map.sdk.open.MapAutoApi +import com.zhidaoauto.map.sdk.open.abs.view.IMapStyleParams import com.zhidaoauto.map.sdk.open.location.MyLocationStyle import io.netty.util.internal.StringUtil -class LocationHelper(private var mContext: Context?, private var mMarkerController: IMarkerController?, private var mMapController: IMapController?):ILocationView { +class LocationHelper(private var mContext: Context?, private var mMarkerController: IMarkerController?, + private var mMapController: IMapController?, private var mMapStyleParams: IMapStyleParams?):ILocationView { private val TAG = "LocationHelper" private var myLocationEnabled: Boolean = false @@ -22,7 +24,7 @@ class LocationHelper(private var mContext: Context?, private var mMarkerControll if (CompileConfig.DEBUG) { Log.i(TAG, "selfop---markerop-LocationHelper constructor") } - myLocationStyle = MyLocationStyle(mContext, mMarkerController, mMapController) + myLocationStyle = MyLocationStyle(mContext, mMarkerController, mMapController,mMapStyleParams) val mMapStyle = mMapController?.getMapStyleParams()?.getStyleMode()?:MapAutoApi.MAP_STYLE_NIGHT switch(mMapStyle) diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/map/MapCameraMessageImpl.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/map/MapCameraMessageImpl.kt index 697aa74235..e48d30fc76 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/map/MapCameraMessageImpl.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/map/MapCameraMessageImpl.kt @@ -1,10 +1,10 @@ package com.zhidaoauto.map.sdk.inner.map import android.graphics.Point +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.open.camera.CameraPosition import com.zhidaoauto.map.sdk.open.camera.LatLngBounds import com.zhidaoauto.map.sdk.open.camera.MapCameraMessage -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class MapCameraMessageImpl private constructor() : MapCameraMessage() { /* private var a: Float = 0.toFloat() diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/map/MapController.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/map/MapController.kt index 329901d3d5..7a42088651 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/map/MapController.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/map/MapController.kt @@ -10,6 +10,8 @@ import com.alibaba.fastjson.JSON import com.autonavi.nge.map.LonLat import com.autonavi.nge.map.OnMapScreenShotListener import com.autonavi.nge.map.Pixels +import com.zhidaoauto.map.data.point.LonLatPoint +import com.zhidaoauto.map.data.road.CenterLine import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.CompileConfig.DEBUG import com.zhidaoauto.map.sdk.inner.abs.IEventController @@ -33,7 +35,6 @@ import com.zhidaoauto.map.sdk.inner.utils.MathUtils import com.zhidaoauto.map.sdk.inner.utils.TransformUtils import com.zhidaoauto.map.sdk.open.MapAutoApi import com.zhidaoauto.map.sdk.open.abs.IResult -import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener import com.zhidaoauto.map.sdk.open.abs.view.IMapStyleParams import com.zhidaoauto.map.sdk.open.circle.CircleController import com.zhidaoauto.map.sdk.open.circle.CircleOptions @@ -41,8 +42,6 @@ import com.zhidaoauto.map.sdk.open.deadzone.DeadZone import com.zhidaoauto.map.sdk.open.deadzone.DeadZoneOptions import com.zhidaoauto.map.sdk.open.poyline.Polyline import com.zhidaoauto.map.sdk.open.poyline.PolylineOptions -import com.zhidaoauto.map.sdk.open.query.LonLatPoint -import com.zhidaoauto.map.sdk.open.road.CenterLine import com.zhidaoauto.map.sdk.open.tools.MapTools import com.zhidaoauto.map.sdk.open.weather.WeatherModel import com.zhidaoauto.map.sdk.open.weather.WeatherResult @@ -80,8 +79,9 @@ class MapController(private var context: Context?, private val mMapView: IMapVie private var roadLeaveLineJob: Job? = null private var roadLineTimeJob: Job? = null private var roamJob: Job? = null - private var cacheHdDataProgressJob: Job? = null private var transJob: Job? = null + private var zoomJob: Job? = null + private var styleJob: Job? = null private var destLonLatPoint: LonLatPoint? = null private var destAngle = 0f private var angle = 0f @@ -602,7 +602,7 @@ class MapController(private var context: Context?, private val mMapView: IMapVie //旋转角度变化的时候 - @Synchronized override fun dispatchRotationAngleChanged(rotateAngle: Float) { + override fun dispatchRotationAngleChanged(rotateAngle: Float) { // val listeners = mMapView.getM_RotateListenerList() // if (listeners != null && listeners.size > 0) { // for (lis in listeners) { @@ -614,7 +614,7 @@ class MapController(private var context: Context?, private val mMapView: IMapVie } //焦点变化时的事件 - @Synchronized override fun dispatchFocusChanged() { + override fun dispatchFocusChanged() { // val listeners = mMapView.getM_FocusListenerList() // if (listeners != null && listeners.size > 0) { // for (lis in listeners) { @@ -626,7 +626,7 @@ class MapController(private var context: Context?, private val mMapView: IMapVie } - @Synchronized override fun dispatchZoomChanged() { + override fun dispatchZoomChanged() { setMarkerScale() val currentZoom = getZoom() if (DEBUG) { @@ -642,7 +642,7 @@ class MapController(private var context: Context?, private val mMapView: IMapVie mEventController?.dispatchMapStatusListener(LISTENER_TYPE_ZOOM, currentZoom) mEventController?.dispatchCameraChangeListener(LISTENER_TYPE_ZOOM, currentZoom) if (DEBUG) { - Log.d(TAG, "styleop--dispatchZoomChanged: currentZoom:${currentZoom}, isSetMapStyle: ${isSetMapStyle}") + Log.d(TAG, "styleop--dispatchZoomChanged: currentZoom:${currentZoom}, ${mMapView.getMapEngine().getZoomValue()}, isSetMapStyle: ${isSetMapStyle}, ${getMapStyle()}") } if(getMapStyle() >= 5 && currentZoom >= 19){ isSetMapStyle = false @@ -660,32 +660,35 @@ class MapController(private var context: Context?, private val mMapView: IMapVie } private fun setMarkerScale(){ - var currentZoomVal = mMapView.getMapEngine().getZoomValue() - if (DEBUG) { - Log.d(TAG, "dispatchZoomChanged--currentZoomVal: ${currentZoomVal}") - } - var scale = 0.1f - if (currentZoomVal >= 0.125 && currentZoomVal < 0.25) { - scale = currentZoomVal * (-28f) + 11f - } else if (currentZoomVal >= 0.25 && currentZoomVal < 0.5) { - scale = currentZoomVal * (-7.2f) + 5.8f - } else if (currentZoomVal >= 0.5 && currentZoomVal < 1) { - scale = currentZoomVal * (-2f) + 3.2f - } else if (currentZoomVal >= 1 && currentZoomVal < 2) { - scale = currentZoomVal * (-0.6f) + 1.8f - } else if (currentZoomVal >= 2 && currentZoomVal < 3) { - scale = currentZoomVal * (-0.2f) + 1f - }else if(currentZoomVal >= 3 && currentZoomVal < 24){ - scale = currentZoomVal * (-0.014f) + 0.404f - } - mMapView.getMapEngine().setAnchorRate(scale) - if (DEBUG) { - Log.d(TAG, "dispatchZoomChanged--scale: ${scale}") + zoomJob?.cancel() + zoomJob = getDemaningScope()?.launch(Dispatchers.IO) { + var currentZoomVal = mMapView.getMapEngine().getZoomValue() + if (DEBUG) { + Log.d(TAG, "dispatchZoomChanged--currentZoomVal: ${currentZoomVal}") + } + var scale = 0.1f + if (currentZoomVal >= 0.125 && currentZoomVal < 0.25) { + scale = currentZoomVal * (-28f) + 11f + } else if (currentZoomVal >= 0.25 && currentZoomVal < 0.5) { + scale = currentZoomVal * (-7.2f) + 5.8f + } else if (currentZoomVal >= 0.5 && currentZoomVal < 1) { + scale = currentZoomVal * (-2f) + 3.2f + } else if (currentZoomVal >= 1 && currentZoomVal < 2) { + scale = currentZoomVal * (-0.6f) + 1.8f + } else if (currentZoomVal >= 2 && currentZoomVal < 3) { + scale = currentZoomVal * (-0.2f) + 1f + } else if (currentZoomVal >= 3 && currentZoomVal < 24) { + scale = currentZoomVal * (-0.014f) + 0.404f + } + mMapView.getMapEngine().setAnchorRate(scale) + if (DEBUG) { + Log.d(TAG, "dispatchZoomChanged--scale: ${scale}") + } } } //车辆摆动变化事件 - @Synchronized override fun dispatchDAngleChanged() { + override fun dispatchDAngleChanged() { val angle = getDAngle().toInt() if (DEBUG) { Log.d(TAG, "styleop-DAngle: ${angle}") @@ -756,8 +759,8 @@ class MapController(private var context: Context?, private val mMapView: IMapVie var mMapStyleMode = 0 //设置地图风格 - @Synchronized override fun setMapStyle(stylemode: Int) { - setMapStyle(stylemode,true) + override fun setMapStyle(stylemode: Int) { + setMapStyle(stylemode, true) isSetMapStyle = true } @@ -766,38 +769,57 @@ class MapController(private var context: Context?, private val mMapView: IMapVie * @param isZoom true 需要缩放到指定缩放值 false 不需要缩放到指定缩放值 * */ - private fun setMapStyle(stylemode:Int,isZoom:Boolean){ + private fun setMapStyle(stylemode:Int, isZoom:Boolean){ if (CompileConfig.DEBUG) { - Log.i(TAG, "styleop-setMapStyle-start:${stylemode},${isZoom}}") + Log.i(TAG, "styleop-setMapStyle-start:${stylemode},${isZoom}") } if(mMapStyleMode == stylemode){ return } + styleJob?.cancel() + styleJob = getDemaningScope()?.launch(Dispatchers.IO) { - - if (stylemode >=5 && mMapStyleMode < 5) { - if(isZoom){ - mMapStyleParams.setZoom(20) - } - mMapView.getMapEngine().setOffset(0, 0) + if (stylemode >= 5 && mMapStyleMode < 5) { + if (isZoom) { + mMapStyleParams.setZoom(20) + } + mMapView.getMapEngine().setOffset(0, 0) // - if(mMapStyleParams.getDefaultPerspective() == ConstantExt.MAP_STYLE_VR_ANGLE_MIDDLE) { - interpolation(ConstantExt.MAP_STYLE_VR_EYE_HEIGHT_MIDDLE, ConstantExt.MAP_STYLE_VR_OVER_LOOK_ANGLE_MIDDLE, ConstantExt.MAP_STYLE_VR_ZOOM_VAL_MIDDLE, ConstantExt.MAP_STYLE_VR_ANGLE_MIDDLE, -1) - }else{ - interpolation(ConstantExt.MAP_STYLE_VR_EYE_HEIGHT_ERHAI, ConstantExt.MAP_STYLE_VR_OVER_LOOK_ANGLE_ERHAI, ConstantExt.MAP_STYLE_VR_ZOOM_VAL_ERHAI, ConstantExt.MAP_STYLE_VR_ERHAI_B2, -1) - } + if (mMapStyleParams.getDefaultPerspective() == ConstantExt.MAP_STYLE_VR_ANGLE_MIDDLE) { + interpolation( + ConstantExt.MAP_STYLE_VR_EYE_HEIGHT_MIDDLE, + ConstantExt.MAP_STYLE_VR_OVER_LOOK_ANGLE_MIDDLE, + ConstantExt.MAP_STYLE_VR_ZOOM_VAL_MIDDLE, + ConstantExt.MAP_STYLE_VR_ANGLE_MIDDLE, + -1 + ) + } else { + interpolation( + ConstantExt.MAP_STYLE_VR_EYE_HEIGHT_ERHAI, + ConstantExt.MAP_STYLE_VR_OVER_LOOK_ANGLE_ERHAI, + ConstantExt.MAP_STYLE_VR_ZOOM_VAL_ERHAI, + ConstantExt.MAP_STYLE_VR_ERHAI_B2, + -1 + ) + } - } else if(mMapStyleMode >= 5 && stylemode < 5){ - if(isZoom){ - mMapStyleParams.setZoom(16) - } + } else if (mMapStyleMode >= 5 && stylemode < 5) { + if (isZoom) { + mMapStyleParams.setZoom(16) + } // mMapView.getMapEngine().setOffset((MapTools.viewWidth * (mMapStyleParams.getOffsetX() - 0.5f)).toInt(), ((MapTools.viewWidth * (MapHelper.mMapParams.getOffsetY() - 0.5f)).toInt())) - interpolation(ConstantExt.MAP_STYLE_2D_EYE_HEIGHT, ConstantExt.MAP_STYLE_2D_OVER_LOOK_ANGLE, ConstantExt.MAP_STYLE_2D_ZOOM.toFloat(), -1, -1) - } - mMapView.getMapEngine().setMapStyle(stylemode) - mMapStyleMode = stylemode - mMapStyleParams.setStyleMode(mMapStyleMode) + interpolation( + ConstantExt.MAP_STYLE_2D_EYE_HEIGHT, + ConstantExt.MAP_STYLE_2D_OVER_LOOK_ANGLE, + ConstantExt.MAP_STYLE_2D_ZOOM.toFloat(), + -1, + -1 + ) + } + mMapView.getMapEngine().setMapStyle(stylemode) + mMapStyleMode = stylemode + mMapStyleParams.setStyleMode(mMapStyleMode) // mMapView.getMapEngine().shakeSceneManual() // instance.naviAutoView?.let{naviAutoView-> // naviAutoView.getLazyZoomButtonView()?.let { @@ -811,14 +833,17 @@ class MapController(private var context: Context?, private val mMapView: IMapVie // } // } - mILocationView?.switch(stylemode) - if (CompileConfig.DEBUG) { - Log.i(TAG, "styleop-setMapStyle-end:${stylemode}") + mILocationView?.switch(stylemode) + if (CompileConfig.DEBUG) { + Log.i(TAG, "styleop-setMapStyle-end:${stylemode}") + } + withContext(Dispatchers.Main) { + mEventController?.dispatchMapStyleListener(stylemode) + } } - mEventController?.dispatchMapStyleListener(stylemode) } - @Synchronized override fun getMapStyle(): Int { + override fun getMapStyle(): Int { return mMapStyleMode } @@ -1366,8 +1391,9 @@ class MapController(private var context: Context?, private val mMapView: IMapVie } } - mEventController?.dispatchMapViewVisualAngleChangeListener(type) - + if(type != ConstantExt.MAP_STYLE_VR_ROAM) { + mEventController?.dispatchMapViewVisualAngleChangeListener(type) + } } fun setRoamStyle() { @@ -1504,7 +1530,7 @@ class MapController(private var context: Context?, private val mMapView: IMapVie if (disRoam < 300) { Log.e( TAG, - "Roam--op--status: 获取剩余数据失败,剩余数据距离: ${disRoam}米" + "Roam--op--status: 获取剩余数据失败,剩余数据距离: ${String.format("%.1f", disRoam)}米" ) remainList.clear() } else { @@ -1545,12 +1571,13 @@ class MapController(private var context: Context?, private val mMapView: IMapVie Log.e( TAG, - "Roam--op--status: 进入漫游模式失败:获取数据距离太短: ${disRoam}米" + "Roam--op--status: 进入漫游模式失败:获取数据距离太短: ${String.format("%.1f", disRoam)}米" ) mEventController?.dispatchRoamStatusListener( 1, - "进入漫游模式失败:获取数据距离太短: ${disRoam}米" + "进入漫游模式失败:获取数据距离太短: ${String.format("%.1f", disRoam)}米" ) + return } roamJob?.cancel() @@ -1730,92 +1757,7 @@ class MapController(private var context: Context?, private val mMapView: IMapVie } - private var mIsExecute: AtomicBoolean = AtomicBoolean(true) - private var cacheList = CopyOnWriteArrayList() - override fun cacheHDDataByCity(id: Int, listener: OnHdDataDownByCityListener){ - if(id == 0) { - return - } - // 检查特定城市是否已经有一个缓存操作正在进行 - if(cacheList.contains(id)){ - return - } - mEventController?.addHdDataDownListener(id,listener) - cancelCacheHDData() - cacheList.add(id) - RoadHelper.getInstance()?.cacheHDDataByCity(id,object : IResult { - override fun result(code: Int, result: Boolean?) { - mIsExecute.set(result?:false) - if (DEBUG) { - Log.i(TAG, "cacheHDDataByCity--op--isDown--: ${id}, ${mIsExecute.get()},${Thread.currentThread()}") - } - if(!mIsExecute.get()){ - mEventController?.dispatchHdDataDownStateListener(id, 0) - mEventController?.removeHdDataDownListener(id) - } - - // 任务完成后从 cacheJobs map 中移除该任务 - cacheList.remove(id) - } - - }) - cacheHdDataProgressJob?.cancel() - cacheHdDataProgressJob = getDemaningScope()?.launch(Dispatchers.IO) { - var progress = 0.0 - while (progress < 1.0) { - RoadHelper.getInstance()?.getCacheProgressByCity(id,object : IResult { - override fun result(code: Int, result: Double?) { - progress = result?:0.0 - if (DEBUG) { - Log.i(TAG, "cacheHDDataByCity--op--id: ${id}, progress:${progress}") - } - mEventController?.dispatchHdDataDownListener(id, progress) - if (DEBUG) { - Log.i(TAG, "cacheHDDataByCity--op--listener:${listener},id: ${id}, progress:${progress}") - } - if (progress == 1.0) { - mEventController?.dispatchHdDataDownStateListener(id, 1) - mEventController?.removeHdDataDownListener(id) - } - } - - }) - - - delay(1000) - } - } - - } - - - override fun cacheHDDataByCityLonLat(lon: Double, lat: Double, listener: OnHdDataDownByCityListener){ - if (TransformUtils.outOfChina(lat, lon)) { - return - } - RoadHelper.getInstance()?.getCityCode(lon, lat, object : IResult { - override fun result(code: Int, id: Int?) { - if (id == 0) { - return - } - if (DEBUG) { - Log.i(TAG, "cacheHDDataByCityLonLat--op--id: ${id}") - } - id?.let { - cacheHDDataByCity(id, listener) - } - } - - }) - - } - - override fun cancelCacheHDData(){ - cacheHdDataProgressJob?.cancel() - cacheList.clear() - RoadHelper.getInstance()?.cancelCacheHDData() - } override fun interpolation(eyeHeight: Float, angle: Float, zoomVal: Float, mode: Int, duration: Int) { @@ -1995,11 +1937,12 @@ class MapController(private var context: Context?, private val mMapView: IMapVie transJob?.cancel() transJob = null + styleJob?.cancel() + styleJob = null - cacheHdDataProgressJob?.cancel() - cacheHdDataProgressJob = null + zoomJob?.cancel() + zoomJob = null - RoadHelper.getInstance()?.cancelCacheHDData() isRoam.set(false) mRecyClerController.clear() diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/marker/MarkerNativeInterface.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/marker/MarkerNativeInterface.kt index 6bfe58ff67..003b7bc9f3 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/marker/MarkerNativeInterface.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/marker/MarkerNativeInterface.kt @@ -5,13 +5,13 @@ import android.text.TextUtils import android.util.Log import com.alibaba.fastjson.JSON import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.CompileConfig.DEBUG import com.zhidaoauto.map.sdk.inner.abs.IMapController import com.zhidaoauto.map.sdk.inner.abs.IMarkerCall import com.zhidaoauto.map.sdk.open.abs.marker.OnMarkerDragListener import com.zhidaoauto.map.sdk.open.marker.* -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.tools.MD5Utils import com.zhidaoauto.map.sdk.open.tools.MapTools import io.netty.buffer.Unpooled @@ -507,7 +507,7 @@ class MarkerNativeInterface(private val mMapController: IMapController): IMarker refreshMap() } - fun addDynamicAnchorPostion(id: String, points: List,angle:Float, isGps:Boolean,current:Long,duration: Int) { + fun addDynamicAnchorPostion(id: String, points: List, angle:Float, isGps:Boolean, current:Long, duration: Int) { val data = MapTools.listToArray(points,!isGps) if(CompileConfig.DEBUG){ Log.i(TAG,"markerop--addDynamicAnchorPostion:${id},${points},isGps:${isGps},duration:${duration}") diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/panel/PanelTrafficSign.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/panel/PanelTrafficSign.kt index 8754b60395..8eb17b2d44 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/panel/PanelTrafficSign.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/panel/PanelTrafficSign.kt @@ -4,6 +4,9 @@ import android.content.Context import android.util.Log import android.view.Gravity import android.view.Menu +import com.zhidaoauto.map.data.point.LonLatPoint +import com.zhidaoauto.map.data.road.Lane +import com.zhidaoauto.map.data.road.RoadSign import com.zhidaoauto.map.sdk.R import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.abs.IMapController @@ -12,9 +15,6 @@ import com.zhidaoauto.map.sdk.inner.utils.MathUtils import com.zhidaoauto.map.sdk.open.MapAutoApi import com.zhidaoauto.map.sdk.open.abs.OnMapChangeListener import com.zhidaoauto.map.sdk.open.location.MogoLocation -import com.zhidaoauto.map.sdk.open.query.LonLatPoint -import com.zhidaoauto.map.sdk.open.road.Lane -import com.zhidaoauto.map.sdk.open.road.RoadSign import kotlinx.android.synthetic.main.panel_traffic_sign.view.iv_traffic import kotlin.math.abs diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/panel/PolyLineView.java b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/panel/PolyLineView.java index 820a279fe8..94add385d7 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/panel/PolyLineView.java +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/panel/PolyLineView.java @@ -7,8 +7,8 @@ import android.graphics.Point; import android.util.AttributeSet; import android.view.View; +import com.zhidaoauto.map.data.point.LonLatPoint; import com.zhidaoauto.map.sdk.open.abs.MapStatusListener; -import com.zhidaoauto.map.sdk.open.query.LonLatPoint; import java.util.List; diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/provider/MapDataHelper.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/provider/MapDataHelper.kt index 5ce02f0d26..ff36ab9ea4 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/provider/MapDataHelper.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/provider/MapDataHelper.kt @@ -1,8 +1,8 @@ package com.zhidaoauto.map.sdk.inner.provider import com.alibaba.fastjson.JSON +import com.zhidaoauto.map.data.routeinfo.SPRouteLine import com.zhidaoauto.map.sdk.inner.obj.ResultData -import com.zhidaoauto.map.sdk.open.routeinfo.SPRouteLine class MapDataHelper private constructor() { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/proxy/LonLatProxy.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/proxy/LonLatProxy.kt index 1c473c8409..b4f4b392f0 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/proxy/LonLatProxy.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/proxy/LonLatProxy.kt @@ -2,12 +2,12 @@ package com.zhidaoauto.map.sdk.inner.proxy import android.util.Log import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.abs.ILonLatProxy import com.zhidaoauto.map.sdk.inner.common.MapHelper import com.zhidaoauto.map.sdk.inner.utils.TransformUtils import com.zhidaoauto.map.sdk.open.MapParams -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class LonLatProxy : ILonLatProxy { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/road/RoadHelper.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/road/RoadHelper.kt index 401ee3a085..165fa6b89b 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/road/RoadHelper.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/road/RoadHelper.kt @@ -6,6 +6,8 @@ import com.autonavi.nge.MapBox import com.autonavi.nge.hdmap.HDMapProvider import com.autonavi.nge.map.LonLat import com.autonavi.nge.routeinfo.RouteInfoProvider +import com.zhidaoauto.map.data.point.LonLatPoint +import com.zhidaoauto.map.data.routeinfo.RoadInfo import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.abs.IRoadData import com.zhidaoauto.map.sdk.inner.aspect.KotlinExtern.toTenDecimalsStr @@ -14,10 +16,18 @@ import com.zhidaoauto.map.sdk.inner.utils.ConcurrentLRUCache import com.zhidaoauto.map.sdk.open.abs.IResult import com.zhidaoauto.map.sdk.open.data.CityInfo import com.zhidaoauto.map.sdk.open.data.MapDataApi -import com.zhidaoauto.map.sdk.open.data.SinglePointRoadInfo -import com.zhidaoauto.map.sdk.open.query.LonLatPoint -import com.zhidaoauto.map.sdk.open.road.* -import com.zhidaoauto.map.sdk.open.routeinfo.RoadInfo +import com.zhidaoauto.map.data.road.* +import com.zhidaoauto.map.sdk.inner.controller.CommonController +import com.zhidaoauto.map.sdk.inner.map.MapController +import com.zhidaoauto.map.sdk.inner.utils.TransformUtils +import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.atomic.AtomicBoolean class RoadHelper { @@ -42,6 +52,9 @@ class RoadHelper { var lastSpeed = 60 + private var cacheHdDataProgressJob: Job? = null + + private var mHdDataDownloadListener: ConcurrentHashMap? = null private constructor() { routeInfoProvider = RouteInfoProvider() @@ -51,6 +64,15 @@ class RoadHelper { fun release(){ + + cacheHdDataProgressJob?.cancel() + cacheHdDataProgressJob = null + + mHdDataDownloadListener?.clear() + mHdDataDownloadListener = null + + cancelCacheHDData() + RouteInfoProvider.release() if(CompileConfig.DEBUG){ Log.w(TAG, "destroyop--:RouteInfoProvider.destory") @@ -150,7 +172,7 @@ class RoadHelper { * 转换道路信息经纬度 */ private fun dealLonLatList(data: ArrayList): ArrayList { - var result = ArrayList() + val result = ArrayList() for (lonLat in data) { result.add(CommonProxy.getInstance().getLonLatProxy().switchLonLat(lonLat)) } @@ -348,7 +370,7 @@ class RoadHelper { call.result(1,null) return } - var roadInfo = RoadInfo() + val roadInfo = RoadInfo() roadInfo.tileID = array[0].toLong() roadInfo.roadID = array[1].toLong() roadInfo.speed = array[2].toInt() @@ -441,7 +463,7 @@ class RoadHelper { // Calculate the angle of the center line. val pMatch = LonLatPoint() - MapDataApi.getDisFromPointToLine(LonLatPoint(dLon, dLat), ArrayList(centerLine.points), pMatch, 1) + MapDataApi.GetDisFromPointToLine(LonLatPoint(dLon, dLat), ArrayList(centerLine.points), pMatch, 1) centerLine.angle = pMatch.angle // Add the center line to the cache. @@ -522,9 +544,9 @@ class RoadHelper { } stopLine.lane_id = laneId.split("*") stopLine.length = array[3].toDouble() - val points = ArrayList() + var points = ArrayList() for (i in 4..array.size - 1 step 2) { - var lonLatPoint = LonLatPoint(array[i].toDouble(), array[i + 1].toDouble()) + val lonLatPoint = LonLatPoint(array[i].toDouble(), array[i + 1].toDouble()) points.add(lonLatPoint) } stopLine.points = points @@ -648,7 +670,7 @@ class RoadHelper { val array = result.split(",") if(array != null && array.size > 5) { - var centerLine = CenterLine() + val centerLine = CenterLine() centerLine.id = array[0] centerLine.tile_id = array[1] centerLine.road_id = array[2] @@ -659,8 +681,8 @@ class RoadHelper { points.add(lonLatPoint) } centerLine.points = points - var pMatch = LonLatPoint() - MapDataApi.getDisFromPointToLine(LonLatPoint(dLon, dlat), points, pMatch, 1) + val pMatch = LonLatPoint() + MapDataApi.GetDisFromPointToLine(LonLatPoint(dLon, dlat), points, pMatch, 1) centerLine.angle = pMatch.angle // Add the result to the cache centerLineCache.put(cacheKey,centerLine) @@ -686,7 +708,7 @@ class RoadHelper { fun getCenterLineRoadNode(dLon: Double, dLat: Double, fAngle: Float, fDis: Float,call: IResult) { // Combine the four parameters into a single string as the cache key - var start = System.currentTimeMillis() + val start = System.currentTimeMillis() if (CompileConfig.DEBUG) { Log.d(TAG, "roadop--getCenterLineRoadNode--: ${dLon}, ${dLat}, ${fAngle}") } @@ -719,7 +741,7 @@ class RoadHelper { } val array = result.split(",") if (array != null && array.size > 5) { - var centerLine = CenterLine() + val centerLine = CenterLine() centerLine.id = array[0] centerLine.tile_id = array[1] centerLine.road_id = array[2] @@ -757,7 +779,7 @@ class RoadHelper { } result?.let { val array = result.split(",") - var roadNameInfo = RoadNameInfo() + val roadNameInfo = RoadNameInfo() if(array != null && array.size > 2) { roadNameInfo.tile_id = array[0] roadNameInfo.road_id = array[1] @@ -838,9 +860,9 @@ class RoadHelper { result?.let { val array = result.split(",") if(array != null && array.size >= 2) { - var list = ArrayList() + val list = ArrayList() for(i in 0 until array.size step 2){ - var lonLatPoint = LonLatPoint(array[i].toDouble(), array[i+1].toDouble()) + val lonLatPoint = LonLatPoint(array[i].toDouble(), array[i+1].toDouble()) list.add(lonLatPoint) } call.result(code,list) @@ -919,6 +941,8 @@ class RoadHelper { } fun cancelCacheHDData() { + cacheHdDataProgressJob?.cancel() + cacheList.clear() RoadResultController.instance.removeRoadResultListenerByTag("cacheHDDataBy") RoadResultController.instance.removeRoadResultListenerByTag("getCacheProgressByCity") mapBox.cancelCacheHDData() @@ -959,13 +983,13 @@ class RoadHelper { if(CompileConfig.DEBUG){ Log.d(TAG, "roadop--getAllCityCode--result: ${result}") } - var cityList = ArrayList() + val cityList = ArrayList() result?.let { val array = result.split(";") if(array!= null && array.isNotEmpty()){ for(str in array){ if(str.isNotEmpty()){ - var cityInfo = CityInfo() + val cityInfo = CityInfo() val city = str.trim().split(",") if(city.isNotEmpty() && city.size >= 4){ cityInfo.cityCode = city[0].trim().toIntOrNull()?:0 @@ -1015,7 +1039,7 @@ class RoadHelper { return } result?.let { - var list = ArrayList() + val list = ArrayList() val array = result.split(";") if(!array.isEmpty()) { for(arr in array){ @@ -1033,7 +1057,7 @@ class RoadHelper { zebraLine.id = line[2] val lonlats = ArrayList() for(i in 3 until line.size step 2){ - var lonLatPoint = LonLatPoint(line[i].toDouble(), line[i+1].toDouble()) + val lonLatPoint = LonLatPoint(line[i].toDouble(), line[i+1].toDouble()) lonlats.add(lonLatPoint) } zebraLine.zebraLineList = lonlats @@ -1056,4 +1080,122 @@ class RoadHelper { }) mapBox.llaGetZebraLineByDistance(dLon,dlat,fAngle,dis) } + + + private var mIsExecute: AtomicBoolean = AtomicBoolean(true) + private var cacheList = CopyOnWriteArrayList() + fun cacheHDDataByCity(id: Int, listener: OnHdDataDownByCityListener){ + if(id == 0) { + return + } + // 检查特定城市是否已经有一个缓存操作正在进行 + if(cacheList.contains(id)){ + return + } + addHdDataDownListener(id,listener) + + cancelCacheHDData() + cacheList.add(id) + RoadHelper.getInstance()?.cacheHDDataByCity(id,object : IResult { + override fun result(code: Int, result: Boolean?) { + mIsExecute.set(result?:false) + if (CompileConfig.DEBUG) { + Log.i(TAG, "cacheHDDataByCity--op--isDown--: ${id}, ${mIsExecute.get()},${Thread.currentThread()}") + } + if(!mIsExecute.get()){ + dispatchHdDataDownStateListener(id, 0) + removeHdDataDownListener(id) + } + + // 任务完成后从 cacheJobs map 中移除该任务 + cacheList.remove(id) + } + + }) + cacheHdDataProgressJob?.cancel() + cacheHdDataProgressJob = CommonController.instance.scope?.launch(Dispatchers.IO) { + var progress = 0.0 + while (progress < 1.0) { + RoadHelper.getInstance()?.getCacheProgressByCity(id,object : IResult { + override fun result(code: Int, result: Double?) { + progress = result?:0.0 + if (CompileConfig.DEBUG) { + Log.i(TAG, "cacheHDDataByCity--op--id: ${id}, progress:${progress}") + } + dispatchHdDataDownListener(id, progress) + if (CompileConfig.DEBUG) { + Log.i(TAG, "cacheHDDataByCity--op--listener:${listener},id: ${id}, progress:${progress}") + } + if (progress == 1.0) { + dispatchHdDataDownStateListener(id, 1) + removeHdDataDownListener(id) + } + } + + }) + + + delay(1000) + } + } + + } + + + fun cacheHDDataByCityLonLat(lon: Double, lat: Double, listener: OnHdDataDownByCityListener){ + if (TransformUtils.outOfChina(lat, lon)) { + return + } + RoadHelper.getInstance()?.getCityCode(lon, lat, object : IResult { + override fun result(code: Int, id: Int?) { + if (id == 0) { + return + } + if (CompileConfig.DEBUG) { + Log.i(TAG, "cacheHDDataByCityLonLat--op--id: ${id}") + } + id?.let { + cacheHDDataByCity(id, listener) + } + } + + }) + + } + + fun addHdDataDownListener(id: Int, onHdDataDownByCityListener: OnHdDataDownByCityListener){ + if(mHdDataDownloadListener == null){ + mHdDataDownloadListener = ConcurrentHashMap() + } + if(!mHdDataDownloadListener!!.keys.contains(id)) { + mHdDataDownloadListener?.put(id, onHdDataDownByCityListener) + } + } + + fun removeHdDataDownListener(id: Int){ + mHdDataDownloadListener?.let { + if(it.keys.contains(id)) { + it.remove(id) + } + } + + } + + fun dispatchHdDataDownListener(id: Int, progress: Double){ + mHdDataDownloadListener?.let { + for(listener in it.values){ + listener.onMapHDDataCacheProgressByCity(id,progress) + } + } + } + + fun dispatchHdDataDownStateListener(id: Int, state: Int){ + mHdDataDownloadListener?.let { + for(listener in it.values){ + listener.onMapHDDataCacheStateByCity(id,state) + } + } + } + + } \ No newline at end of file diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/traffic/TrafficHelper.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/traffic/TrafficHelper.kt index 94b8377b25..23aaaf1833 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/traffic/TrafficHelper.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/traffic/TrafficHelper.kt @@ -2,8 +2,8 @@ package com.zhidaoauto.map.sdk.inner.traffic import android.text.TextUtils import android.util.Log +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class TrafficHelper { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/AMapUtils.java b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/AMapUtils.java index 76c6645cde..c09a682e21 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/AMapUtils.java +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/AMapUtils.java @@ -5,7 +5,7 @@ import android.hardware.Sensor; import android.hardware.SensorManager; import android.location.LocationManager; -import com.zhidaoauto.map.sdk.open.query.LonLatPoint; +import com.zhidaoauto.map.data.point.LonLatPoint; import java.util.List; diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/Constant.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/Constant.kt index ca08fcf520..44dd53f3c5 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/Constant.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/Constant.kt @@ -25,6 +25,7 @@ import android.widget.TextView import android.widget.Toast import androidx.recyclerview.widget.RecyclerView import com.autonavi.nge.guidance.RouteBook +import com.autonavi.nge.guidance.RouteBookAdapter import com.autonavi.nge.obj.SubCategory import com.autonavi.nge.routing.RoutingProvider import com.zhidaoauto.map.sdk.R @@ -287,7 +288,7 @@ object Constant { Environment.MEDIA_MOUNTED ) { mbExternalStorage = true - res = context.externalCacheDir?.absolutePath +"/map/" + res = context.externalCacheDir.absolutePath +"/map/" // res = (Environment.getExternalStorageDirectory().absolutePath // + "/Android/data/" + context.packageName+"/map/") } else { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/GisGeomTool.java b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/GisGeomTool.java index 94f2fc1415..4ab7ff4299 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/GisGeomTool.java +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/GisGeomTool.java @@ -2,8 +2,8 @@ package com.zhidaoauto.map.sdk.inner.utils; import android.util.Log; +import com.zhidaoauto.map.data.point.LonLatPoint; import com.zhidaoauto.map.sdk.inner.CompileConfig; -import com.zhidaoauto.map.sdk.open.query.LonLatPoint; import java.util.ArrayList; diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/MathUtils.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/MathUtils.kt index 8de0ccb8e3..6f7990f2b9 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/MathUtils.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/MathUtils.kt @@ -1,9 +1,9 @@ package com.zhidaoauto.map.sdk.inner.utils import android.util.Log +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.CompileConfig.DEBUG -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import java.math.BigDecimal import java.text.DateFormat import java.text.SimpleDateFormat diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/TransformUtils.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/TransformUtils.kt index 62d5f51a29..65adb8d6f1 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/TransformUtils.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/utils/TransformUtils.kt @@ -1,6 +1,9 @@ package com.zhidaoauto.map.sdk.inner.utils import android.content.Context +import com.amap.api.location.CoordinateConverter +import com.amap.api.location.CoordinateConverter.CoordType +import com.amap.api.location.DPoint import com.zhidaoauto.map.sdk.inner.abs.IMapController import java.math.BigDecimal @@ -198,10 +201,41 @@ object TransformUtils { } + fun tempTrans(param:DoubleArray,context: Context?){ + var doubleArrayParam = param +// System.out.println("origin:${doubleArrayParam.joinToString() }"); + transform(doubleArrayParam,context) +// System.out.println("middle:${index},${if(index%2==0){"GPS:"}else{"GCJ:"}}--${doubleArrayParam.joinToString()}") +// System.out.println("result:${doubleArrayParam.joinToString()}") + } + fun transform(doubleArray: DoubleArray,context: Context?){ + System.out.println("origin:${doubleArray.joinToString()}") + val point = gd_Transform(context, DPoint(doubleArray[1],doubleArray[0])) + val gdarray = doubleArrayOf(point.longitude,point.latitude) + System.out.println("gaode:${gdarray.joinToString()}") + + val mogo = transformWgs84ToGcj02(doubleArray[1], doubleArray[0]) + System.out.println("mogo:${mogo.joinToString()}") + + val gaodetoOrigin = transformGcj02toWgs84(gdarray[1], gdarray[0]) + System.out.println("gaode-to-origin:${gaodetoOrigin.joinToString()}") + + val mogotoOrigin = transformGcj02toWgs84(mogo[1], mogo[0]) + System.out.println("mogo-to-origin:${mogotoOrigin.joinToString()}") + } + fun gd_Transform(context: Context?,sourceLatLng:DPoint):DPoint{ + val converter = CoordinateConverter(context) + // CoordType.GPS 待转换坐标类型 + converter.from(CoordType.GPS) + // sourceLatLng待转换坐标点 LatLng类型 + converter.coord(sourceLatLng) + // 执行转换操作 + return converter.convert() + } fun outOfScreen(context: Context, lon: Double, lat: Double,mapController: IMapController?): Boolean{ val displayMetrics = context.resources.getDisplayMetrics() diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/MapAutoApi.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/MapAutoApi.kt index 3fba4bf348..03ca99098b 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/MapAutoApi.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/MapAutoApi.kt @@ -6,10 +6,11 @@ import android.util.Log import com.autonavi.nge.NLog import com.autonavi.nge.map.LonLat import com.autonavi.nge.map.MapView +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.abs.IEventController -import com.zhidaoauto.map.sdk.inner.abs.IMapController import com.zhidaoauto.map.sdk.inner.abs.IMarkerController +import com.zhidaoauto.map.sdk.inner.common.CommonHelper import com.zhidaoauto.map.sdk.inner.common.ConstantExt import com.zhidaoauto.map.sdk.inner.common.MapHelper import com.zhidaoauto.map.sdk.inner.controller.CommonController @@ -29,7 +30,6 @@ import com.zhidaoauto.map.sdk.open.abs.navi.INaviResult import com.zhidaoauto.map.sdk.open.data.MapDataApi import com.zhidaoauto.map.sdk.open.location.MyLocationStyle import com.zhidaoauto.map.sdk.open.navi.NaviModel -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.tools.MapTools import com.zhidaoauto.map.sdk.open.view.MapAutoView import io.netty.buffer.Unpooled @@ -110,6 +110,7 @@ object MapAutoApi { * 初始化 */ fun init(context: Context, mapParams: MapParams) { + CommonHelper.getInstance() CommonController.instance.init(context) Recorder.i("common","$mapParams") val customPath = context.filesDir.absolutePath @@ -147,7 +148,7 @@ object MapAutoApi { Recorder.add(content) } - fun destory() { + fun destroy() { if(CompileConfig.DEBUG){ Log.w(TAG, "destroyop--:start") } @@ -166,26 +167,6 @@ object MapAutoApi { return MapHelper.mMapParams } - fun setMyLocationEnabled(myLocationEnabled: Boolean,mapAutoView: MapAutoView) { - mapAutoView.getLocationView()?.setMyLocationEnabled(myLocationEnabled) - } - - fun getMyLocationEnabled(mapAutoView: MapAutoView): Boolean { - return mapAutoView.getLocationView()?.getMyLocationEnabled()?:false - } - - fun setMyLocationStyle(myLocationStyle: MyLocationStyle,mapAutoView: MapAutoView) { - mapAutoView.getLocationView()?.setMyLocationStyle(myLocationStyle) - } - - fun getMyLocationStyle(mapAutoView: MapAutoView): MyLocationStyle? { - return mapAutoView.getLocationView()?.getMyLocationStyle() - } - - - fun setInfoWindowAdapter(infoWindowAdapter: InfoWindowAdapter,markerController: IMarkerController?) { - markerController?.setInfoWindow(infoWindowAdapter) - } /** * Calculate the tile ID based on longitude, latitude, and tile level. @@ -380,16 +361,6 @@ object MapAutoApi { } - fun addImagetoImageManager(imageKey: String, imageByteArray: ByteArray, width: Int, height: Int,mapController: IMapController?):Int?{ - return mapController?.addImage( - imageKey, - imageByteArray, - width, - height - ) - } - - fun getSDKVersion():String{ return com.zhidaoauto.map.sdk.BuildConfig.MAPMODULE_VERSION } diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/NavAutoApi.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/NavAutoApi.kt index 5284c78267..5796435018 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/NavAutoApi.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/NavAutoApi.kt @@ -3,12 +3,12 @@ package com.zhidaoauto.map.sdk.open import android.content.Context import com.autonavi.nge.map.LonLat import com.autonavi.nge.map.MapView +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.common.MapHelper import com.zhidaoauto.map.sdk.inner.common.NavHelper import com.zhidaoauto.map.sdk.inner.controller.CommonController import com.zhidaoauto.map.sdk.inner.map.MapController import com.zhidaoauto.map.sdk.inner.utils.Recorder -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import io.netty.buffer.Unpooled import java.math.BigDecimal import java.nio.charset.Charset diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnMapClickListener.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnMapClickListener.kt index 7925707a98..c96560e876 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnMapClickListener.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnMapClickListener.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.abs -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint interface OnMapClickListener { fun onMapClick(lonLatPoint: LonLatPoint) diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnRoadInfoListener.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnRoadInfoListener.kt index 9db58a0c8e..bc5d68d4f5 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnRoadInfoListener.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnRoadInfoListener.kt @@ -1,7 +1,7 @@ package com.zhidaoauto.map.sdk.open.abs -import com.zhidaoauto.map.sdk.open.road.RoadCross -import com.zhidaoauto.map.sdk.open.road.StopLine +import com.zhidaoauto.map.data.road.RoadCross +import com.zhidaoauto.map.data.road.StopLine interface OnRoadInfoListener { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/navi/INaviResult.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/navi/INaviResult.kt index e32db6e328..40f234264f 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/navi/INaviResult.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/navi/INaviResult.kt @@ -1,8 +1,8 @@ package com.zhidaoauto.map.sdk.open.abs.navi -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint interface INaviResult { - fun result(code:Int,data: ArrayList?,message: String?) + fun result(code:Int, data: ArrayList?, message: String?) } \ No newline at end of file diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/view/IMapStyleParams.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/view/IMapStyleParams.kt index 3d5e3cb9c4..3fadbaafc4 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/view/IMapStyleParams.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/view/IMapStyleParams.kt @@ -105,4 +105,12 @@ interface IMapStyleParams { fun getIsWeatherEnable(): Boolean + fun setLocationIcon3DRes(resId: Int): MapStyleParams + + fun getLocationIcon3DRes(): Int + + fun setLocationIconRes(resId: Int): MapStyleParams + + fun getLocationIconRes(): Int + } \ No newline at end of file diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/business/DeadZoneHelper.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/business/DeadZoneHelper.kt index 94d62b6835..60532dcbd2 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/business/DeadZoneHelper.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/business/DeadZoneHelper.kt @@ -1,8 +1,8 @@ package com.zhidaoauto.map.sdk.open.business import android.util.Log +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.tools.MapTools diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/CameraPosition.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/CameraPosition.kt index 3c3edd127c..4d748d2801 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/CameraPosition.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/CameraPosition.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.camera -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint class CameraPosition( val target: LonLatPoint, diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/CameraUpdateFactory.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/CameraUpdateFactory.kt index 4420d34db0..e230439dc1 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/CameraUpdateFactory.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/CameraUpdateFactory.kt @@ -1,8 +1,8 @@ package com.zhidaoauto.map.sdk.open.camera import android.graphics.Point +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.map.MapCameraMessageImpl -import com.zhidaoauto.map.sdk.open.query.LonLatPoint object CameraUpdateFactory { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/LatLngBounds.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/LatLngBounds.kt index f1cf14d16a..0338287e5e 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/LatLngBounds.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/camera/LatLngBounds.kt @@ -1,7 +1,7 @@ package com.zhidaoauto.map.sdk.open.camera +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.utils.TransformUtils -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class LatLngBounds { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/circle/CircleOptions.java b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/circle/CircleOptions.java index 646675d173..73f7751787 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/circle/CircleOptions.java +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/circle/CircleOptions.java @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.circle; -import com.zhidaoauto.map.sdk.open.query.LonLatPoint; +import com.zhidaoauto.map.data.point.LonLatPoint; import java.util.List; import java.util.UUID; diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/data/MapDataApi.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/data/MapDataApi.kt index 6e16030a39..016e6261b0 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/data/MapDataApi.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/data/MapDataApi.kt @@ -1,38 +1,38 @@ package com.zhidaoauto.map.sdk.open.data -import android.annotation.SuppressLint +import android.app.ActivityManager import android.content.Context +import android.text.TextUtils import android.util.Log import com.autonavi.nge.dm.SharedMemoryService +import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint +import com.zhidaoauto.map.data.routeinfo.RoadInfo import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.proxy.CommonProxy import com.zhidaoauto.map.sdk.inner.road.RoadHelper import com.zhidaoauto.map.sdk.inner.utils.GisGeomTool +import com.zhidaoauto.map.sdk.inner.utils.LogHelper import com.zhidaoauto.map.sdk.inner.utils.MathUtils import com.zhidaoauto.map.sdk.inner.utils.Recorder import com.zhidaoauto.map.sdk.open.abs.IResult -import com.zhidaoauto.map.sdk.open.query.LonLatPoint -import com.zhidaoauto.map.sdk.open.road.CenterLine -import com.zhidaoauto.map.sdk.open.road.Lane -import com.zhidaoauto.map.sdk.open.road.RoadCross -import com.zhidaoauto.map.sdk.open.road.RoadNameInfo -import com.zhidaoauto.map.sdk.open.road.RoadRectInfos -import com.zhidaoauto.map.sdk.open.road.StopLine -import com.zhidaoauto.map.sdk.open.road.ZebraLine -import com.zhidaoauto.map.sdk.open.routeinfo.RoadInfo +import com.zhidaoauto.map.data.road.* +import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener +import java.util.concurrent.ConcurrentHashMap -@SuppressLint("StaticFieldLeak") object MapDataApi { private val TAG = javaClass.simpleName private var mContext:Context? = null + + fun getContext():Context?{ return mContext } - fun startZeus(context: Context?) { + fun startZeus(context: Context) { if (CompileConfig.DEBUG) { Log.i(TAG, "mapop-start") } @@ -40,7 +40,7 @@ object MapDataApi { SharedMemoryService.getInstance(context) } - fun destroy(){ + fun destroy(){ RoadHelper.getInstance()?.release() if(CompileConfig.DEBUG){ Log.w(TAG, "destroyop--:RoadHelper.destory") @@ -52,6 +52,31 @@ object MapDataApi { mContext = null } + /** + * 判断服务是否开启 + * + * @return + */ + fun isServiceRunning(context: Context, ServiceName: String): Boolean { + if (true) { + return false + } + if (TextUtils.isEmpty(ServiceName)) { + return false + } + val myManager = context + .getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager + val runningServices = myManager + .getRunningServices(50) as ArrayList + for (info in runningServices) { + if (info.service.className.equals(ServiceName)) { + return true + } + } + return false + } + + fun getRouteInfo( centerLon: Float, centerLat: Float, coor: Int, type: Int @@ -60,6 +85,48 @@ object MapDataApi { return RoadHelper.getInstance()?.getRoadInfo(centerLon, centerLat, coor, type)?:"" } + /** + * 获取道路关键点数据 + * + */ + fun getMatchRoadInfo( + lonLatPoints: List, + bGetAllPoints: Boolean + ): List? { + if (CompileConfig.DEBUG) { + Log.i(TAG, "roadop getMatchRoadInfo") + } + val originArray = DoubleArray(lonLatPoints.size * 2) + var lonLat: LonLat? + for ((index, lonLatPoint) in lonLatPoints.withIndex()) { + lonLat = CommonProxy.getInstance().getLonLatProxy().switchLonLat(lonLatPoint) + originArray[index * 2] = lonLat.lon + originArray[index * 2 + 1] = lonLat.lat + } + if (CompileConfig.DEBUG) { + LogHelper.info(TAG, "roadop getMatchRoadInfo--param:${originArray.joinToString()}") +// Recorder.i("${originArray.joinToString()}") + } + val resultArray = RoadHelper.getInstance()?.getMatchRoadInfo(originArray, bGetAllPoints) + if (CompileConfig.DEBUG) { + LogHelper.info(TAG, "roadop getMatchRoadInfo--resultArray:${resultArray?.joinToString()}") + } + resultArray?.let { array -> + if (resultArray.isEmpty()) { + return null + } + var lonLatPoint: LonLatPoint? + val resultList = ArrayList(resultArray.size / 2) + for (index in 0..array.size - 1 step 2) { + lonLatPoint = CommonProxy.getInstance().getLonLatProxy().switchLonLat(LonLat(array[index], array[index + 1])) + resultList.add(lonLatPoint) + } + return resultList + } + return null + } + + /** * 获取行车方向 * @@ -68,15 +135,15 @@ object MapDataApi { if (CompileConfig.DEBUG) { Log.i(TAG, "queryop getRouteAngle") } - val sLonLat = + val startLonLat = CommonProxy.getInstance().getLonLatProxy().switchLonLat(startLonLat) - val eLonLat = + val endLonLat = CommonProxy.getInstance().getLonLatProxy().switchLonLat(endLonLat) return RoadHelper.getInstance()?.getRouteAngle( - sLonLat.lon.toFloat(), - sLonLat.lat.toFloat(), - eLonLat.lon.toFloat(), - eLonLat.lat.toFloat() + startLonLat.lon.toFloat(), + startLonLat.lat.toFloat(), + endLonLat.lon.toFloat(), + endLonLat.lat.toFloat() )?:0f } @@ -94,12 +161,12 @@ object MapDataApi { } // 获取点到线段的距离 - fun getDisFromPointToLine(ptOrg:LonLatPoint, pLine:ArrayList, ptMatch:LonLatPoint, nSegmentOrder:Int):Double { + fun GetDisFromPointToLine( ptOrg:LonLatPoint, pLine:ArrayList, ptMatch:LonLatPoint, nSegmentOrder:Int):Double { return GisGeomTool.GetDisFromPointToLine(ptOrg, pLine, ptMatch, nSegmentOrder) } // 获取点到线段的最近距离 - fun getClosestFromPointToSegment(x: Double, y: Double, x1: Double, y1: Double, x2: Double, y2: Double): Double { + fun getNearstFromPointToSegment(x: Double, y: Double, x1: Double, y1: Double, x2: Double, y2: Double): Double { return MathUtils.minDistance(x, y, x1, y1, x2, y2) } @@ -160,9 +227,9 @@ object MapDataApi { /** * 获取道路路口信息 */ - fun getCrossRoad(dLon: Double, dLat: Double, fAngle: Float, call: IResult){ - Recorder.add("roadop-getCrossRoad:$dLon,$dLat,$fAngle") - RoadHelper.getInstance()?.getCrossRoad(dLon, dLat, fAngle,call) + fun getCrossRoad(dLon: Double, dlat: Double , fAngle: Float,call: IResult){ + Recorder.add("roadop-getCrossRoad:$dLon,$dlat,$fAngle") + RoadHelper.getInstance()?.getCrossRoad(dLon, dlat, fAngle,call) } /** * 根据路口id获取道路信息 @@ -212,9 +279,9 @@ object MapDataApi { } - fun getZebraLineByDistance(dLon: Double, dLat: Double, fAngle: Float, dis: Float, call: IResult>){ - Recorder.add("$dLon,$dLat,$fAngle,$dis") - RoadHelper.getInstance()?.getZebraLineByDistance(dLon, dLat, fAngle, dis,call) + fun getZebraLineByDistance(dLon: Double, dlat: Double , fAngle: Float, dis: Float,call: IResult>){ + Recorder.add("$dLon,$dlat,$fAngle,$dis") + RoadHelper.getInstance()?.getZebraLineByDistance(dLon, dlat, fAngle, dis,call) } //计算两线交点 @@ -230,4 +297,81 @@ object MapDataApi { RoadHelper.getInstance()?.initFileCacheByCity(lon, lat) } + + /** + * 获取城市列表 + */ + fun getAllCityCode(call:IResult>){ + if(CompileConfig.DEBUG){ + Log.i(TAG, "cacheop-getAllCityCode") + } + RoadHelper.getInstance()?.getAllCityCode(call) + } + + + fun getCityCode(lon: Double, lat: Double,call:IResult){ + if(CompileConfig.DEBUG){ + Log.i(TAG, "cacheop-getCityCode") + } + RoadHelper.getInstance()?.getCityCode(lon, lat,call) + } + + fun isCacheCity(lon: Double, lat: Double,call:IResult){ + if(CompileConfig.DEBUG){ + Log.i(TAG, "cacheop-isCacheCity") + } + RoadHelper.getInstance()?.isCityDataCached(lon, lat,call) + } + + /** + * 获取城市数据版本 + */ + fun getHdDataVersionByCity(lon: Double,lat: Double,call:IResult){ + if(CompileConfig.DEBUG){ + Log.i(TAG, "cacheop-getHdDataVersionByCity:$lon,$lat") + } + RoadHelper.getInstance()?.getHdDataVersionByCity(lon, lat,call) + } + + /** + * 取消缓存数据 + */ + fun cancelCacheHDData(){ + if(CompileConfig.DEBUG){ + Log.i(TAG, "cacheop-cancelCacheHDData:") + } + RoadHelper.getInstance()?.cancelCacheHDData() + } + + /** + * 按照城市缓存高精数据 + */ + fun cacheHDDataByCity(id: Int, listener: OnHdDataDownByCityListener){ + if(CompileConfig.DEBUG){ + Log.i(TAG, "cacheop-cacheHDDataByCity: $id") + } + RoadHelper.getInstance()?.cacheHDDataByCity(id, listener) + } + + /** + * 按照经纬度缓存城市数据 + */ + fun cacheHDDataByCityByLonLat(lon: Double, lat: Double, listener: OnHdDataDownByCityListener){ + if(CompileConfig.DEBUG){ + Log.i(TAG, "cacheop-cacheHDDataByCityByLonLat: $lon,$lat") + } + RoadHelper.getInstance()?.cacheHDDataByCityLonLat(lon, lat, listener) + } + + fun addHdDataDownListener(id: Int, onHdDataDownByCityListener: OnHdDataDownByCityListener){ + RoadHelper.getInstance()?.addHdDataDownListener(id, onHdDataDownByCityListener) + } + fun removeHdDataDownListener(id: Int){ + RoadHelper.getInstance()?.removeHdDataDownListener(id) + } + + + + + } \ No newline at end of file diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/deadzone/DeadZone.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/deadzone/DeadZone.kt index cfccce546a..40e5417484 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/deadzone/DeadZone.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/deadzone/DeadZone.kt @@ -3,8 +3,8 @@ package com.zhidaoauto.map.sdk.open.deadzone import android.util.Log import com.alibaba.fastjson.JSON import com.alibaba.fastjson.JSONException +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.abs.IMapController -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class DeadZone { private val TAG = "DeadZone" diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/deadzone/DeadZoneOptions.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/deadzone/DeadZoneOptions.kt index d22bd0eb3e..82503e6356 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/deadzone/DeadZoneOptions.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/deadzone/DeadZoneOptions.kt @@ -1,8 +1,8 @@ package com.zhidaoauto.map.sdk.open.deadzone import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.proxy.CommonProxy.Companion.getInstance -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import java.util.UUID class DeadZoneOptions { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/location/LocationClient.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/location/LocationClient.kt index 569ba82ea5..5c9f0480dd 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/location/LocationClient.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/location/LocationClient.kt @@ -11,6 +11,8 @@ import android.text.TextUtils import android.util.Log import androidx.core.app.ActivityCompat import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint +import com.zhidaoauto.map.data.road.SinglePointRoadInfo import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.abs.IMapController import com.zhidaoauto.map.sdk.inner.proxy.CommonProxy @@ -19,8 +21,6 @@ import com.zhidaoauto.map.sdk.inner.utils.GisGeomTool import com.zhidaoauto.map.sdk.inner.utils.MathUtils import com.zhidaoauto.map.sdk.open.MapAutoApi import com.zhidaoauto.map.sdk.open.data.MapDataApi -import com.zhidaoauto.map.sdk.open.data.SinglePointRoadInfo -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/location/MyLocationStyle.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/location/MyLocationStyle.kt index 9f66999c85..bb5c4306da 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/location/MyLocationStyle.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/location/MyLocationStyle.kt @@ -6,6 +6,7 @@ import android.graphics.BitmapFactory import android.text.TextUtils import android.util.Log import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.R import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.abs.IMapController @@ -13,12 +14,13 @@ import com.zhidaoauto.map.sdk.inner.abs.IMarkerController import com.zhidaoauto.map.sdk.inner.utils.BitmapUtils import com.zhidaoauto.map.sdk.inner.utils.Constants import com.zhidaoauto.map.sdk.inner.utils.TransformUtils +import com.zhidaoauto.map.sdk.open.abs.view.IMapStyleParams import com.zhidaoauto.map.sdk.open.marker.Marker import com.zhidaoauto.map.sdk.open.marker.MarkerOptions -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import java.util.concurrent.atomic.AtomicBoolean -class MyLocationStyle(private var mContext:Context?,private var mMarkerController: IMarkerController?,private var mMapController: IMapController?) { +class MyLocationStyle(private var mContext:Context?,private var mMarkerController: IMarkerController?, + private var mMapController: IMapController?, private var mMapStyleParams: IMapStyleParams?) { val TAG = javaClass.simpleName companion object { @@ -45,7 +47,7 @@ class MyLocationStyle(private var mContext:Context?,private var mMarkerControlle private var mMarker: Marker? = null private var lastExecuteTime = -1L - private var lastLonLatPoint :LonLatPoint? = null + private var lastLonLatPoint : LonLatPoint? = null private val zIndex = 1 @@ -55,9 +57,9 @@ class MyLocationStyle(private var mContext:Context?,private var mMarkerControlle var myLocationIcon: Bitmap? = null var intervalTime: Long = 1000 // 2D资源 - var carResId: Int = R.mipmap.map_custom_self_car_night + var carResId: Int // 3D夜间资源 - var car3DResId: Int = R.raw.car + var car3DResId: Int var guangquanResId: Int = R.raw.guangquan var locationPath: String? = null @@ -68,6 +70,10 @@ class MyLocationStyle(private var mContext:Context?,private var mMarkerControlle private var animWaitFrame = ANIM_WAIT_FRAME_NIGHT private var animPeriod = ANIM_PERIOD_NIGHT + init { + car3DResId = mMapStyleParams?.getLocationIcon3DRes() ?: R.raw.car + carResId = mMapStyleParams?.getLocationIconRes() ?: R.mipmap.map_custom_self_car_night + } fun getSelfMarker():Marker?{ return mMarker diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/Marker.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/Marker.kt index 263817b51c..7ebb6c90ae 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/Marker.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/Marker.kt @@ -15,6 +15,7 @@ import android.widget.FrameLayout import android.widget.TextView import com.alibaba.fastjson.JSON import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.abs.IMapController import com.zhidaoauto.map.sdk.inner.abs.IMarkerCall @@ -24,7 +25,6 @@ import com.zhidaoauto.map.sdk.inner.utils.MathUtils import com.zhidaoauto.map.sdk.open.abs.marker.InfoWindowAdapter import com.zhidaoauto.map.sdk.open.abs.marker.MarkerAnimationListener import com.zhidaoauto.map.sdk.open.abs.marker.OnMarkerDragListener -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.tools.MD5Utils import com.zhidaoauto.map.sdk.open.tools.MapTools import org.json.JSONArray diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerCacheController.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerCacheController.kt index d6c7fb8ec8..6bf53fae1a 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerCacheController.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerCacheController.kt @@ -1,10 +1,10 @@ package com.zhidaoauto.map.sdk.open.marker import android.util.Log +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.utils.GisGeomTool import com.zhidaoauto.map.sdk.inner.utils.MathUtils -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.view.MapAutoView import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerOptions.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerOptions.kt index 3a214fd39f..7ca588d95f 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerOptions.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerOptions.kt @@ -6,13 +6,13 @@ import android.util.Log import android.view.View import com.alibaba.fastjson.annotation.JSONField import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.abs.IMapController import com.zhidaoauto.map.sdk.inner.abs.IMarkerCall import com.zhidaoauto.map.sdk.inner.proxy.CommonProxy import com.zhidaoauto.map.sdk.inner.utils.OperationUtils import com.zhidaoauto.map.sdk.open.data.MapDataApi -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.tools.MD5Utils import java.util.UUID diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerTranslateAnimation.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerTranslateAnimation.kt index 54f0cf11c8..29fcdb7d03 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerTranslateAnimation.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MarkerTranslateAnimation.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.marker -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint class MarkerTranslateAnimation: Animation { private var lonLatPoints = ArrayList() diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MultiPointController.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MultiPointController.kt index 8f6a298ab2..b1dcbd2d49 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MultiPointController.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/marker/MultiPointController.kt @@ -1,8 +1,8 @@ package com.zhidaoauto.map.sdk.open.marker import com.alibaba.fastjson.JSONObject +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.abs.IMapController -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class MultiPointController { private val id:String @@ -20,7 +20,7 @@ class MultiPointController { } //批量移动 - fun startSmooth(lonlatPoints: List>, duration: Int,mapController: IMapController?) { + fun startSmooth(lonlatPoints: List>, duration: Int, mapController: IMapController?) { val data = multiPointOverlayOptions?.data!! for (i in data.indices) { if (lonlatPoints[i].size < 2) { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/INavi.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/INavi.kt index 2d4fdd62d0..55d066b8ed 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/INavi.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/INavi.kt @@ -1,6 +1,7 @@ package com.zhidaoauto.map.sdk.open.nav import android.location.Location +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.open.nav.abs.AimlessModeListener import com.zhidaoauto.map.sdk.open.nav.abs.NaviListener import com.zhidaoauto.map.sdk.open.nav.abs.ParallelRoadListener @@ -9,7 +10,6 @@ import com.zhidaoauto.map.sdk.open.nav.model.NaviOnlineCarHailingType import com.zhidaoauto.map.sdk.open.nav.model.NaviPath import com.zhidaoauto.map.sdk.open.nav.model.NaviSetting import com.zhidaoauto.map.sdk.open.nav.model.TrafficStatus -import com.zhidaoauto.map.sdk.open.query.LonLatPoint interface INavi { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/NavAutoHelper.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/NavAutoHelper.kt index 8d50c73959..6171591108 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/NavAutoHelper.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/NavAutoHelper.kt @@ -2,6 +2,7 @@ package com.zhidaoauto.map.sdk.open.nav import android.location.Location import android.util.Log +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.proxy.CommonProxy import com.zhidaoauto.map.sdk.open.nav.abs.AimlessModeListener @@ -12,7 +13,6 @@ import com.zhidaoauto.map.sdk.open.nav.model.NaviOnlineCarHailingType import com.zhidaoauto.map.sdk.open.nav.model.NaviPath import com.zhidaoauto.map.sdk.open.nav.model.NaviSetting import com.zhidaoauto.map.sdk.open.nav.model.TrafficStatus -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class NavAutoHelper : INavi { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/CongestionLink.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/CongestionLink.kt index 3bb2e34f10..e640dc1e50 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/CongestionLink.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/CongestionLink.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.nav.model -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint /* * 拥堵道路link的拥堵信息 diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviGuide.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviGuide.kt index b2c7bc4fd8..67f1f382dd 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviGuide.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviGuide.kt @@ -1,6 +1,7 @@ package com.zhidaoauto.map.sdk.open.nav.model -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint + /* * 导航段信息类 */ diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviLink.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviLink.kt index e436f6d7a8..06292b20a6 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviLink.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviLink.kt @@ -1,6 +1,7 @@ package com.zhidaoauto.map.sdk.open.nav.model -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint + /* * 道路link类 */ diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviPath.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviPath.kt index 10c848692b..0c0f1eddbb 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviPath.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviPath.kt @@ -1,7 +1,7 @@ package com.zhidaoauto.map.sdk.open.nav.model +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.open.camera.LatLngBounds -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class NaviPath { var allLength = 0 //当前导航路线的总长度。 diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviRouteGuideGroup.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviRouteGuideGroup.kt index ea3b0696c3..597d513579 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviRouteGuideGroup.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviRouteGuideGroup.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.nav.model -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint class NaviRouteGuideGroup { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviStep.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviStep.kt index 0a0357a044..f155daf24b 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviStep.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/NaviStep.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.nav.model -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint class NaviStep { //路段长度 diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/ServiceAreaInfo.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/ServiceAreaInfo.kt index 1885e93590..cdfbf60a8e 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/ServiceAreaInfo.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/model/ServiceAreaInfo.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.nav.model -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint class ServiceAreaInfo { var remainDist = 0 //当前位置到服务区的距离 diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/RouteOverLay.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/RouteOverLay.kt index 21106074a4..689ee32600 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/RouteOverLay.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/RouteOverLay.kt @@ -2,13 +2,13 @@ package com.zhidaoauto.map.sdk.open.nav.view import android.content.Context import android.graphics.Bitmap +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.open.marker.BitmapDescriptor import com.zhidaoauto.map.sdk.open.marker.Marker import com.zhidaoauto.map.sdk.open.nav.model.NaviPath import com.zhidaoauto.map.sdk.open.nav.model.RouteOverlayOptions import com.zhidaoauto.map.sdk.open.poyline.Polyline import com.zhidaoauto.map.sdk.open.poyline.PolylineOptions -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class RouteOverLay{ private var startMarker: Marker? = null diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/TmcBarView.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/TmcBarView.kt index 6be6bf3600..6a2b2548f9 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/TmcBarView.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/TmcBarView.kt @@ -122,23 +122,17 @@ class TmcBarView : View { ////计算tmcBar在绘制过程中每一小段的长度 val itemHeight = Math.round(trafficStatus.getLength() * rateDistanceToViewHeight * 100.0f) * 0.01f realDistanceSum += itemHeight - getPaintInColor(getColor(trafficStatus.getStatus()))?.let { - canvas.drawRect(0.0f, realDistanceSum - itemHeight, width.toFloat(), realDistanceSum, it) - } + canvas.drawRect(0.0f, realDistanceSum - itemHeight, width.toFloat(), realDistanceSum, getPaintInColor(getColor(trafficStatus.getStatus()))) --tmcBarLength } tmcBarLength = height + (mCarHeight shr 1) //补全光柱图,使用颜色==第一段的颜色 if (realDistanceSum < tmcBarLength.toFloat()) { - getPaintInColor(getColor((mTmcBarItems!![0]).getStatus()))?.let { - canvas.drawRect(0.0f, realDistanceSum, width.toFloat(), tmcBarLength.toFloat(), it) - } + canvas.drawRect(0.0f, realDistanceSum, width.toFloat(), tmcBarLength.toFloat(), getPaintInColor(getColor((mTmcBarItems!![0]).getStatus()))) } //补全光柱图,使用颜色==第一段的颜色 if (this.height.toFloat() > mCursorPos) { - getPaintInColor(getColor(-1))?.let { - canvas.drawRect(0.0f, mCursorPos + (mCarHeight shr 1).toFloat(), width.toFloat(), this.height.toFloat(), it) - } + canvas.drawRect(0.0f, mCursorPos + (mCarHeight shr 1).toFloat(), width.toFloat(), this.height.toFloat(), getPaintInColor(getColor(-1))) } if (mTmcBarListener != null) { mTmcBarListener!!.dismissBottomTag() diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/TrafficProgressBar.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/TrafficProgressBar.kt index e728517218..85bd8989eb 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/TrafficProgressBar.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/nav/view/TrafficProgressBar.kt @@ -12,13 +12,13 @@ import kotlinx.android.synthetic.main.view_trafficbar.view.tmcBarTxt import kotlinx.android.synthetic.main.view_trafficbar.view.tmcBarView class TrafficProgressBar : FrameLayout { - constructor(context: Context, attrs: AttributeSet?, defStyle: Int) : super(context, attrs, defStyle) { + constructor(context: Context?, attrs: AttributeSet?, defStyle: Int) : super(context, attrs, defStyle) { init() } - constructor(context: Context) : super(context) { + constructor(context: Context?) : super(context) { init() } - constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { init() } diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/navi/NaviModel.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/navi/NaviModel.kt index 6ade4ed925..33d46e37e0 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/navi/NaviModel.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/navi/NaviModel.kt @@ -1,9 +1,9 @@ package com.zhidaoauto.map.sdk.open.navi import com.zhidao.map.net.api.Result +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.controller.CommonController import com.zhidaoauto.map.sdk.open.abs.navi.INaviResult -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/polygon/Polygon3D.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/polygon/Polygon3D.kt index 14e969e274..d8e1f66267 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/polygon/Polygon3D.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/polygon/Polygon3D.kt @@ -1,7 +1,7 @@ package com.zhidaoauto.map.sdk.open.polygon +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.abs.IMapController -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class Polygon3D { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/polygon/Polygon3DOption.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/polygon/Polygon3DOption.kt index 16ae9db68e..fe5498db49 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/polygon/Polygon3DOption.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/polygon/Polygon3DOption.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.polygon -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint import java.util.UUID class Polygon3DOption { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/poyline/Polyline.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/poyline/Polyline.kt index 53accf2594..666ae12440 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/poyline/Polyline.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/poyline/Polyline.kt @@ -2,8 +2,8 @@ package com.zhidaoauto.map.sdk.open.poyline import com.alibaba.fastjson.JSON import com.alibaba.fastjson.JSONException +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.abs.IMapController -import com.zhidaoauto.map.sdk.open.query.LonLatPoint class Polyline { private var id: String = "" diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/poyline/PolylineOptions.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/poyline/PolylineOptions.kt index 2d872d7550..2a53f86c97 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/poyline/PolylineOptions.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/poyline/PolylineOptions.kt @@ -4,11 +4,10 @@ import android.graphics.Bitmap import android.util.Log import com.alibaba.fastjson.annotation.JSONField import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.abs.IMapController import com.zhidaoauto.map.sdk.inner.proxy.CommonProxy.Companion.getInstance -import com.zhidaoauto.map.sdk.open.MapAutoApi.addImagetoImageManager import com.zhidaoauto.map.sdk.open.data.MapDataApi -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.tools.BitmapTools.bitmapToByteArray import java.util.UUID @@ -255,7 +254,7 @@ class PolylineOptions { fun customTexture(bitmap: Bitmap): PolylineOptions { customTexture = bitmap val bitmapArr = bitmapToByteArray(bitmap) - addImagetoImageManager("thickline", bitmapArr, bitmap.width, bitmap.height,mMapController) + mMapController?.addImage("thickline", bitmapArr, bitmap.width, bitmap.height) return this } diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/GeocodeAddress.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/GeocodeAddress.kt index 23bc37275b..d8e33edd32 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/GeocodeAddress.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/GeocodeAddress.kt @@ -1,5 +1,7 @@ package com.zhidaoauto.map.sdk.open.query +import com.zhidaoauto.map.data.point.LonLatPoint + class GeocodeAddress{ var poiId: String? = null diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/InputtipsQuery.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/InputtipsQuery.kt index 08f0e9f2a2..140621fb6f 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/InputtipsQuery.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/InputtipsQuery.kt @@ -1,5 +1,7 @@ package com.zhidaoauto.map.sdk.open.query +import com.zhidaoauto.map.data.point.LonLatPoint + class InputtipsQuery(val keyword: String, val city: String) : Cloneable { var cityLimit = false var type: String? = null diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/PoiItem.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/PoiItem.kt index 0339ad286f..d6bf444cbf 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/PoiItem.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/PoiItem.kt @@ -1,5 +1,7 @@ package com.zhidaoauto.map.sdk.open.query +import com.zhidaoauto.map.data.point.LonLatPoint + class PoiItem { var poiId: String? = null var tel: String? = null diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/Query.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/Query.kt index d9259733c3..40b1f0d644 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/Query.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/Query.kt @@ -1,6 +1,7 @@ package com.zhidaoauto.map.sdk.open.query import android.util.Log +import com.zhidaoauto.map.data.point.LonLatPoint class Query { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/RegeocodeQuery.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/RegeocodeQuery.kt index e2de59e8ca..f4a1b83906 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/RegeocodeQuery.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/RegeocodeQuery.kt @@ -1,5 +1,7 @@ package com.zhidaoauto.map.sdk.open.query +import com.zhidaoauto.map.data.point.LonLatPoint + class RegeocodeQuery(lonLatPoint: LonLatPoint?, radius: Float) { var lonLatPoint: LonLatPoint? = null var radius = 1000.0f diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/SubPoiItem.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/SubPoiItem.kt index bb96ed0dd2..95629d5b5c 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/SubPoiItem.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/SubPoiItem.kt @@ -1,5 +1,7 @@ package com.zhidaoauto.map.sdk.open.query +import com.zhidaoauto.map.data.point.LonLatPoint + class SubPoiItem { var poiId: String? = null var title: String? = null diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/Tip.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/Tip.kt index 2538ce2ed2..a554635959 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/Tip.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/query/Tip.kt @@ -1,5 +1,6 @@ package com.zhidaoauto.map.sdk.open.query +import com.zhidaoauto.map.data.point.LonLatPoint import java.io.Serializable class Tip : Serializable { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/MapTools.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/MapTools.kt index c8954c4fcb..1a02b5edc9 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/MapTools.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/MapTools.kt @@ -3,12 +3,12 @@ package com.zhidaoauto.map.sdk.open.tools import android.graphics.Point import android.util.Log import com.autonavi.nge.map.LonLat +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig import com.zhidaoauto.map.sdk.inner.CompileConfig.DEBUG import com.zhidaoauto.map.sdk.inner.abs.IMapController import com.zhidaoauto.map.sdk.inner.proxy.CommonProxy import com.zhidaoauto.map.sdk.inner.utils.MathUtils -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import kotlin.math.absoluteValue object MapTools { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/TaskManager.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/TaskManager.kt index f47634fbed..9a5e812937 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/TaskManager.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/TaskManager.kt @@ -7,6 +7,8 @@ import android.text.TextUtils import android.util.Log import android.widget.TextView import com.autonavi.nge.NLog +import com.zhidaoauto.map.data.point.LonLatPoint +import com.zhidaoauto.map.data.routeinfo.RoadInfo import com.zhidaoauto.map.sdk.R import com.zhidaoauto.map.sdk.inner.common.ConstantExt import com.zhidaoauto.map.sdk.inner.controller.CommonController @@ -30,13 +32,7 @@ import com.zhidaoauto.map.sdk.open.polygon.Polygon3DHelper import com.zhidaoauto.map.sdk.open.polygon.Polygon3DOption import com.zhidaoauto.map.sdk.open.poyline.Polyline import com.zhidaoauto.map.sdk.open.poyline.PolylineOptions -import com.zhidaoauto.map.sdk.open.query.LonLatPoint -import com.zhidaoauto.map.sdk.open.road.CenterLine -import com.zhidaoauto.map.sdk.open.road.RoadCross -import com.zhidaoauto.map.sdk.open.road.RoadRectInfos -import com.zhidaoauto.map.sdk.open.road.StopLine -import com.zhidaoauto.map.sdk.open.road.ZebraLine -import com.zhidaoauto.map.sdk.open.routeinfo.RoadInfo +import com.zhidaoauto.map.data.road.* import com.zhidaoauto.map.sdk.open.view.MapAutoView import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -1217,7 +1213,7 @@ class TaskManager { IResult { override fun result(code: Int, id: Int?) { id?.let { - mapAutoView.getMapAutoViewHelper()?.cacheHDDataByCity(id, object : + MapDataApi.cacheHDDataByCity(id, object : OnHdDataDownByCityListener { override fun onMapHDDataCacheProgressByCity(id: Int, progress: Double) { Log.d("TAG", "id: ${id}, progerss: ${progress}") @@ -1240,7 +1236,7 @@ class TaskManager { IResult { override fun result(code: Int, id: Int?) { id?.let { - mapAutoView.getMapAutoViewHelper()?.cacheHDDataByCity(id, object : + MapDataApi.cacheHDDataByCity(id, object : OnHdDataDownByCityListener { override fun onMapHDDataCacheProgressByCity(id: Int, progress: Double) { CommonController.instance.scope?.launch(Dispatchers.Main) { diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/VisibleRegion.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/VisibleRegion.kt index 7f806f20bb..99f432a3dc 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/VisibleRegion.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/tools/VisibleRegion.kt @@ -1,6 +1,6 @@ package com.zhidaoauto.map.sdk.open.tools -import com.zhidaoauto.map.sdk.open.query.LonLatPoint +import com.zhidaoauto.map.data.point.LonLatPoint class VisibleRegion { var leftTopPoint: LonLatPoint? = null diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapAutoView.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapAutoView.kt index 47dce91289..ac06459b4c 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapAutoView.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapAutoView.kt @@ -9,6 +9,7 @@ import android.util.Log import android.widget.FrameLayout import com.autonavi.nge.map.* import com.zhidao.map.net.api.Result +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.BuildConfig import com.zhidaoauto.map.sdk.R import com.zhidaoauto.map.sdk.inner.CompileConfig @@ -36,10 +37,7 @@ import com.zhidaoauto.map.sdk.open.location.LonLatPointListener import com.zhidaoauto.map.sdk.open.location.MogoLocation import com.zhidaoauto.map.sdk.open.marker.MarkerController import com.zhidaoauto.map.sdk.open.marker.OnMarkClickListener -import com.zhidaoauto.map.sdk.open.query.LonLatPoint -import com.zhidaoauto.map.sdk.open.road.CenterLine -import com.zhidaoauto.map.sdk.open.road.RoadCross -import com.zhidaoauto.map.sdk.open.road.StopLine +import com.zhidaoauto.map.data.road.* import com.zhidaoauto.map.sdk.open.view.MapStyleParams.Companion.MAP_PERSPECTIVE_3D import com.zhidaoauto.map.sdk.open.weather.WeatherRepository import com.zhidaoauto.map.sdk.open.weather.WeatherType @@ -130,7 +128,7 @@ open class MapAutoView : FrameLayout, LonLatPointListener, ITraffic,ILockLocatio initView() } - constructor(context: Context,mapStyleParams: MapStyleParams) : super(context) { + constructor(context: Context,mapStyleParams: IMapStyleParams) : super(context) { this.mMapStyleParams = mapStyleParams initView() } @@ -177,6 +175,8 @@ open class MapAutoView : FrameLayout, LonLatPointListener, ITraffic,ILockLocatio val defaultPerspective = typedArray.getInt(R.styleable.MapAutoView_default_perspective, ConstantExt.MAP_STYLE_VR_ANGLE_MIDDLE) val isSkyBoxEnable = typedArray.getBoolean(R.styleable.MapAutoView_isSkyBoxEnable, false) val isWeatherEnable = typedArray.getBoolean(R.styleable.MapAutoView_isWeatherEnable, true) + val locationIcon3DRes = typedArray.getResourceId(R.styleable.MapAutoView_locationIcon3DRes, R.raw.car) + val locationIconRes = typedArray.getResourceId(R.styleable.MapAutoView_locationIconRes, R.mipmap.map_custom_self_car_night) typedArray.recycle() val mapStyleParams = MapStyleParams() mapStyleParams.setZoom(zoom) @@ -196,6 +196,8 @@ open class MapAutoView : FrameLayout, LonLatPointListener, ITraffic,ILockLocatio mapStyleParams.setDefaultPerspective(defaultPerspective) mapStyleParams.setIsSkyBoxEnable(isSkyBoxEnable) mapStyleParams.setIsWeatherEnable(isWeatherEnable) + mapStyleParams.setLocationIconRes(locationIconRes) + mapStyleParams.setLocationIcon3DRes(locationIcon3DRes) this.mMapStyleParams = mapStyleParams } @@ -324,7 +326,7 @@ open class MapAutoView : FrameLayout, LonLatPointListener, ITraffic,ILockLocatio - mLocationView = LocationHelper(context, mMarkerController, mMapController) + mLocationView = LocationHelper(context, mMarkerController, mMapController,mMapStyleParams) mMapController?.setLocalView(mLocationView) it.setMapController(mMapController) @@ -898,20 +900,6 @@ open class MapAutoView : FrameLayout, LonLatPointListener, ITraffic,ILockLocatio mEventController?.removeRoadInfoListener(onRoadInfoListener) } - fun setOnHdDataDownListener(id: Int,onHdDataDownByCityListener: OnHdDataDownByCityListener){ - mMapController?.getClerk()?.add() - if(mEventController == null){ - mEventController = MapEventController() - } - onHdDataDownByCityListener?.let { - mEventController?.addHdDataDownListener(id, it) - } - } - - fun removeHdDataDownListener(id: Int){ - mMapController?.getClerk()?.add() - mEventController?.removeHdDataDownListener(id) - } fun setOnRoamStatusListener(onRoamStatusListener: OnRoamStatusListener){ mMapController?.getClerk()?.add() diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapAutoViewHelper.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapAutoViewHelper.kt index 63a8d4ef30..979178337f 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapAutoViewHelper.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapAutoViewHelper.kt @@ -2,15 +2,15 @@ package com.zhidaoauto.map.sdk.open.view import android.util.Log import com.autonavi.nge.map.* +import com.zhidaoauto.map.data.point.LonLatPoint import com.zhidaoauto.map.sdk.inner.CompileConfig +import com.zhidaoauto.map.sdk.inner.abs.IMapController import com.zhidaoauto.map.sdk.inner.abs.IMarkerController import com.zhidaoauto.map.sdk.inner.common.ConstantExt import com.zhidaoauto.map.sdk.inner.panel.PanelManager import com.zhidaoauto.map.sdk.inner.proxy.CommonProxy -import com.zhidaoauto.map.sdk.inner.road.RoadHelper import com.zhidaoauto.map.sdk.inner.utils.TransformUtils import com.zhidaoauto.map.sdk.open.MapAutoApi -import com.zhidaoauto.map.sdk.open.abs.IResult import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener import com.zhidaoauto.map.sdk.open.abs.marker.InfoWindowAdapter import com.zhidaoauto.map.sdk.open.camera.CameraPosition @@ -18,7 +18,6 @@ import com.zhidaoauto.map.sdk.open.camera.CameraUpdate import com.zhidaoauto.map.sdk.open.camera.MapCameraMessage import com.zhidaoauto.map.sdk.open.circle.CircleController import com.zhidaoauto.map.sdk.open.circle.CircleOptions -import com.zhidaoauto.map.sdk.open.data.CityInfo import com.zhidaoauto.map.sdk.open.deadzone.DeadZone import com.zhidaoauto.map.sdk.open.deadzone.DeadZoneOptions import com.zhidaoauto.map.sdk.open.exception.NotImplementException @@ -27,7 +26,6 @@ import com.zhidaoauto.map.sdk.open.location.MyLocationStyle import com.zhidaoauto.map.sdk.open.marker.* import com.zhidaoauto.map.sdk.open.poyline.Polyline import com.zhidaoauto.map.sdk.open.poyline.PolylineOptions -import com.zhidaoauto.map.sdk.open.query.LonLatPoint import com.zhidaoauto.map.sdk.open.tools.MapTools import com.zhidaoauto.map.sdk.open.weather.WeatherResult @@ -1262,77 +1260,8 @@ class MapAutoViewHelper(mapAutoView: MapAutoView) { mMapAutoView.getMapController()?.setRoamTrajectory(travel) } - /** - * 按照城市缓存高精数据 - */ - fun cacheHDDataByCity(id: Int, listener: OnHdDataDownByCityListener){ - mMapAutoView.getClerk()?.add("$id") - if(CompileConfig.DEBUG){ - Log.i(TAG, "cacheop-cacheHDDataByCity: $id") - } - mMapAutoView.getMapController()?.cacheHDDataByCity(id, listener) - } - - /** - * 按照经纬度缓存城市数据 - */ - fun cacheHDDataByCityByLonLat(lon: Double, lat: Double, listener: OnHdDataDownByCityListener){ - mMapAutoView.getClerk()?.add("$lon,$lat") - if(CompileConfig.DEBUG){ - Log.i(TAG, "cacheop-cacheHDDataByCityByLonLat: $lon,$lat") - } - mMapAutoView.getMapController()?.cacheHDDataByCityLonLat(lon, lat, listener) - } - - /** - * 获取城市列表 - */ - fun getAllCityCode(call:IResult>){ - mMapAutoView.getClerk()?.add() - if(CompileConfig.DEBUG){ - Log.i(TAG, "cacheop-getAllCityCode") - } - RoadHelper.getInstance()?.getAllCityCode(call) - } - fun getCityCode(lon: Double, lat: Double,call:IResult){ - mMapAutoView.getClerk()?.add() - if(CompileConfig.DEBUG){ - Log.i(TAG, "cacheop-getCityCode") - } - RoadHelper.getInstance()?.getCityCode(lon, lat,call) - } - - fun isCacheCity(lon: Double, lat: Double,call:IResult){ - mMapAutoView.getClerk()?.add() - if(CompileConfig.DEBUG){ - Log.i(TAG, "cacheop-isCacheCity") - } - RoadHelper.getInstance()?.isCityDataCached(lon, lat,call) - } - - /** - * 获取城市数据版本 - */ - fun getHdDataVersionByCity(lon: Double,lat: Double,call:IResult){ - mMapAutoView.getClerk()?.add("$lon,$lat") - if(CompileConfig.DEBUG){ - Log.i(TAG, "cacheop-getHdDataVersionByCity:$lon,$lat") - } - RoadHelper.getInstance()?.getHdDataVersionByCity(lon, lat,call) - } - - /** - * 取消缓存数据 - */ - fun cancelCacheHDData(){ - mMapAutoView.getClerk()?.add() - if(CompileConfig.DEBUG){ - Log.i(TAG, "cacheop-cancelCacheHDData:") - } - mMapAutoView.getMapController()?.cancelCacheHDData() - } /** * 设置锁车后的恢复时间 @@ -1422,4 +1351,14 @@ class MapAutoViewHelper(mapAutoView: MapAutoView) { } mMapAutoView.getMapController()?.setFogMode(isEnable) } + + fun addImagetoImageManager(imageKey: String, imageByteArray: ByteArray, width: Int, height: Int):Int?{ + return mMapAutoView.getMapController()?.addImage( + imageKey, + imageByteArray, + width, + height + ) + } + } \ No newline at end of file diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapStyleParams.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapStyleParams.kt index 14fdc79c91..6ff054e1f2 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapStyleParams.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/view/MapStyleParams.kt @@ -1,5 +1,6 @@ package com.zhidaoauto.map.sdk.open.view +import com.zhidaoauto.map.sdk.R import com.zhidaoauto.map.sdk.inner.common.ConstantExt import com.zhidaoauto.map.sdk.inner.map.MapController import com.zhidaoauto.map.sdk.open.HDTypes @@ -20,6 +21,9 @@ class MapStyleParams: IMapStyleParams { private var isAutoSwitch: Boolean = false private var isAutoLocation = true + private var mLocationIconRes = R.mipmap.map_custom_self_car + private var mLocationIcon3DRes = R.raw.car + //显示高精地图元素 private var hdVisibileArray = intArrayOf( HDTypes.DIVIDER.type, @@ -321,6 +325,24 @@ class MapStyleParams: IMapStyleParams { return isWeatherEnable } + override fun setLocationIcon3DRes(resId: Int): MapStyleParams { + mLocationIcon3DRes = resId + return this + } + + override fun getLocationIcon3DRes(): Int { + return mLocationIcon3DRes + } + + override fun setLocationIconRes(resId: Int): MapStyleParams { + mLocationIconRes = resId + return this + } + + override fun getLocationIconRes(): Int { + return mLocationIconRes + } + override fun toString(): String { return "MapStyleParams( zoom=$zoom, carPosition=$carPosition, isAutoSwitch=$isAutoSwitch, isAutoLocation=$isAutoLocation, hdVisibileArray=${hdVisibileArray.contentToString()}, styleMode=$styleMode, perspectiveMode=$perspectiveMode, vrPerspectiveMode=$vrPerspectiveMode, vrAngleMode=$vrAngleMode, isSwitchViewAngle=$isSwitchViewAngle, vrEyeHeight=$vrEyeHeight, zoomVal=$zoomVal, minDistanceForPosition=$minDistanceForPosition, isShadowEnable=$isShadowEnable, styleName='$styleName')"