地图模块适配
This commit is contained in:
@@ -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'
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<RouteBookItem, BaseViewHolder>(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<LinearLayout>(R.id.routebook_child_item_info_ll).visibility = View.VISIBLE
|
||||
// helper.getView<ImageView>(R.id.imgView).setImageResource(NaviDirRes.getResID(501))
|
||||
// helper.getView<TextView>(R.id.orientation).text = "从${item.routeName?:"起点"}出发"
|
||||
// helper.getView<TextView>(R.id.length).visibility = View.GONE
|
||||
// }
|
||||
// else -> {
|
||||
// helper.getView<TextView>(R.id.orientation).text = item.routeName
|
||||
// helper.getView<ImageView>(R.id.imgView).setImageResource(NaviDirRes.getResID(item.turnID))
|
||||
// if (item.routeName == "目的地") {
|
||||
// helper.getView<TextView>(R.id.length).visibility = View.GONE
|
||||
// } else {
|
||||
// helper.getView<TextView>(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<TextView>(R.id.length).text = """继续前行${strs[0]}km${item.routeSpeech}""".trimIndent()
|
||||
// } else {
|
||||
// helper.getView<TextView>(R.id.length).text = """继续前行${string}km${item.routeSpeech}""".trimIndent()
|
||||
// }
|
||||
// } else {
|
||||
// helper.getView<TextView>(R.id.length).text = """继续前行${i}m${item.routeSpeech}""".trimIndent()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
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<RouteBookItem, BaseViewHolder>(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<LinearLayout>(R.id.routebook_child_item_info_ll).visibility = View.VISIBLE
|
||||
helper.getView<ImageView>(R.id.imgView).setImageResource(NaviDirRes.getResID(501))
|
||||
helper.getView<TextView>(R.id.orientation).text = "从${item.routeName?:"起点"}出发"
|
||||
helper.getView<TextView>(R.id.length).visibility = View.GONE
|
||||
}
|
||||
else -> {
|
||||
helper.getView<TextView>(R.id.orientation).text = item.routeName
|
||||
helper.getView<ImageView>(R.id.imgView).setImageResource(NaviDirRes.getResID(item.turnID))
|
||||
if (item.routeName == "目的地") {
|
||||
helper.getView<TextView>(R.id.length).visibility = View.GONE
|
||||
} else {
|
||||
helper.getView<TextView>(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<TextView>(R.id.length).text = """继续前行${strs[0]}km${item.routeSpeech}""".trimIndent()
|
||||
} else {
|
||||
helper.getView<TextView>(R.id.length).text = """继续前行${string}km${item.routeSpeech}""".trimIndent()
|
||||
}
|
||||
} else {
|
||||
helper.getView<TextView>(R.id.length).text = """继续前行${i}m${item.routeSpeech}""".trimIndent()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
/**
|
||||
* 锚点 更新锚点属性
|
||||
|
||||
@@ -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<OnRenderListener>? = null
|
||||
private var mRoadInfoListenerList : ArrayList<OnRoadInfoListener>? = null
|
||||
private var mLogListenerList : ArrayList<ILog>? = null
|
||||
private var mHdDataDownloadListener: HashMap<Int, OnHdDataDownByCityListener>? = null
|
||||
private var mRoamStatusListenerList: ArrayList<OnRoamStatusListener>? = 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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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<Int>()
|
||||
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<Boolean> {
|
||||
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<Double> {
|
||||
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<Int> {
|
||||
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()
|
||||
|
||||
@@ -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<LonLatPoint>,angle:Float, isGps:Boolean,current:Long,duration: Int) {
|
||||
fun addDynamicAnchorPostion(id: String, points: List<LonLatPoint>, 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}")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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<Int, OnHdDataDownByCityListener>? = 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<LonLat>): ArrayList<LonLatPoint> {
|
||||
var result = ArrayList<LonLatPoint>()
|
||||
val result = ArrayList<LonLatPoint>()
|
||||
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<LonLatPoint>()
|
||||
var points = ArrayList<LonLatPoint>()
|
||||
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<CenterLine>) {
|
||||
// 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<LonLatPoint>()
|
||||
val list = ArrayList<LonLatPoint>()
|
||||
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<CityInfo>()
|
||||
val cityList = ArrayList<CityInfo>()
|
||||
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<ZebraLine>()
|
||||
val list = ArrayList<ZebraLine>()
|
||||
val array = result.split(";")
|
||||
if(!array.isEmpty()) {
|
||||
for(arr in array){
|
||||
@@ -1033,7 +1057,7 @@ class RoadHelper {
|
||||
zebraLine.id = line[2]
|
||||
val lonlats = ArrayList<LonLatPoint>()
|
||||
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<Int>()
|
||||
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<Boolean> {
|
||||
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<Double> {
|
||||
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<Int> {
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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<LonLatPoint>?,message: String?)
|
||||
fun result(code:Int, data: ArrayList<LonLatPoint>?, message: String?)
|
||||
}
|
||||
@@ -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
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<ActivityManager.RunningServiceInfo>
|
||||
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<LonLatPoint>,
|
||||
bGetAllPoints: Boolean
|
||||
): List<LonLatPoint>? {
|
||||
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<LonLatPoint>(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<LonLatPoint>, ptMatch:LonLatPoint, nSegmentOrder:Int):Double {
|
||||
fun GetDisFromPointToLine( ptOrg:LonLatPoint, pLine:ArrayList<LonLatPoint>, 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<RoadCross>){
|
||||
Recorder.add("roadop-getCrossRoad:$dLon,$dLat,$fAngle")
|
||||
RoadHelper.getInstance()?.getCrossRoad(dLon, dLat, fAngle,call)
|
||||
fun getCrossRoad(dLon: Double, dlat: Double , fAngle: Float,call: IResult<RoadCross>){
|
||||
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<MutableList<ZebraLine>>){
|
||||
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<MutableList<ZebraLine>>){
|
||||
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<ArrayList<CityInfo>>){
|
||||
if(CompileConfig.DEBUG){
|
||||
Log.i(TAG, "cacheop-getAllCityCode")
|
||||
}
|
||||
RoadHelper.getInstance()?.getAllCityCode(call)
|
||||
}
|
||||
|
||||
|
||||
fun getCityCode(lon: Double, lat: Double,call:IResult<Int>){
|
||||
if(CompileConfig.DEBUG){
|
||||
Log.i(TAG, "cacheop-getCityCode")
|
||||
}
|
||||
RoadHelper.getInstance()?.getCityCode(lon, lat,call)
|
||||
}
|
||||
|
||||
fun isCacheCity(lon: Double, lat: Double,call:IResult<Boolean>){
|
||||
if(CompileConfig.DEBUG){
|
||||
Log.i(TAG, "cacheop-isCacheCity")
|
||||
}
|
||||
RoadHelper.getInstance()?.isCityDataCached(lon, lat,call)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取城市数据版本
|
||||
*/
|
||||
fun getHdDataVersionByCity(lon: Double,lat: Double,call:IResult<String>){
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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<LonLatPoint>()
|
||||
|
||||
@@ -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<List<LonLatPoint>>, duration: Int,mapController: IMapController?) {
|
||||
fun startSmooth(lonlatPoints: List<List<LonLatPoint>>, duration: Int, mapController: IMapController?) {
|
||||
val data = multiPointOverlayOptions?.data!!
|
||||
for (i in data.indices) {
|
||||
if (lonlatPoints[i].size < 2) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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的拥堵信息
|
||||
|
||||
@@ -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
|
||||
|
||||
/*
|
||||
* 导航段信息类
|
||||
*/
|
||||
|
||||
@@ -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类
|
||||
*/
|
||||
|
||||
@@ -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 //当前导航路线的总长度。
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
//路段长度
|
||||
|
||||
@@ -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 //当前位置到服务区的距离
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 = ""
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.zhidaoauto.map.sdk.open.query
|
||||
|
||||
import com.zhidaoauto.map.data.point.LonLatPoint
|
||||
|
||||
|
||||
class GeocodeAddress{
|
||||
var poiId: String? = null
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.zhidaoauto.map.sdk.open.query
|
||||
|
||||
import android.util.Log
|
||||
import com.zhidaoauto.map.data.point.LonLatPoint
|
||||
|
||||
|
||||
class Query {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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<Int> {
|
||||
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<Int> {
|
||||
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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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<ArrayList<CityInfo>>){
|
||||
mMapAutoView.getClerk()?.add()
|
||||
if(CompileConfig.DEBUG){
|
||||
Log.i(TAG, "cacheop-getAllCityCode")
|
||||
}
|
||||
RoadHelper.getInstance()?.getAllCityCode(call)
|
||||
}
|
||||
|
||||
|
||||
fun getCityCode(lon: Double, lat: Double,call:IResult<Int>){
|
||||
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<Boolean>){
|
||||
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<String>){
|
||||
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
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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')"
|
||||
|
||||
Reference in New Issue
Block a user