Commit fe30889a authored by p x's avatar p x
Browse files

修改目录结构

parent a05e954e
...@@ -18,7 +18,7 @@ class ShowCarOnlineActivity : AppCompatActivity() { ...@@ -18,7 +18,7 @@ class ShowCarOnlineActivity : AppCompatActivity() {
var mapReadView: MapReadyView? = null var mapReadView: MapReadyView? = null
//获取接口功能实例 //获取接口功能实例
var mapCoreApi = MapCoreApi.mapCoreApi // var mapCoreApi = MapCoreApi.mapCoreApi
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
...@@ -50,14 +50,6 @@ class ShowCarOnlineActivity : AppCompatActivity() { ...@@ -50,14 +50,6 @@ class ShowCarOnlineActivity : AppCompatActivity() {
} }
//设置定位回调
mapCoreApi.startLoc(object : OnMsGpsLoc {
override fun onMsGpsLoc(mSLocBean: MSLocCb) {
//在这里改变小车的位置
}
})
} }
......
...@@ -12,6 +12,8 @@ import com.sd.api.maps.cdata.MSLatLng ...@@ -12,6 +12,8 @@ import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.bean.WayPoi import com.sd.api.bean.WayPoi
import com.sd.api.ui.MapReadyView import com.sd.api.ui.MapReadyView
import com.sd.api.intfaces.OnNaviPresenterListener import com.sd.api.intfaces.OnNaviPresenterListener
import com.sd.api.maps.MSNavi
import com.sd.api.maps.MSRoutePlans
import com.sd.api.ui.MapMultiView.OnMapReadyLis import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.demo.databinding.ActivityTdriveRouteBinding import com.sd.demo.databinding.ActivityTdriveRouteBinding
...@@ -48,10 +50,9 @@ class TDriveRouteActivity : AppCompatActivity() ,OnNaviPresenterListener{ ...@@ -48,10 +50,9 @@ class TDriveRouteActivity : AppCompatActivity() ,OnNaviPresenterListener{
) )
var ways = listOf<WayPoi>(wayPoi) var ways = listOf<WayPoi>(wayPoi)
//获取接口功能实例
var mapCoreApi = MapCoreApi.mapCoreApi
//开始路径规划 //开始路径规划
mapCoreApi.drivingPathPlanning( MSRoutePlans.drivingPathPlanning(
startPoint, "当前位置", endPoint, endName, ways, mapReadView,null startPoint, "当前位置", endPoint, endName, ways, mapReadView,null
) )
// MSRoutePlans.drivingPathPlanning(startPoint, endPoint, ways, endName) // MSRoutePlans.drivingPathPlanning(startPoint, endPoint, ways, endName)
...@@ -64,7 +65,7 @@ class TDriveRouteActivity : AppCompatActivity() ,OnNaviPresenterListener{ ...@@ -64,7 +65,7 @@ class TDriveRouteActivity : AppCompatActivity() ,OnNaviPresenterListener{
binding.starnai.setOnClickListener { binding.starnai.setOnClickListener {
if (mapReadView == null) return@setOnClickListener if (mapReadView == null) return@setOnClickListener
//获取接口功能实例 //获取接口功能实例
var mapCoreApi = MapCoreApi.mapCoreApi // var mapCoreApi = MapCoreApi.mapCoreApi
// 起点坐标 116.3215,39.8919 // 起点坐标 116.3215,39.8919
val startPoint = MSLatLng(39.806898, 116.490682) val startPoint = MSLatLng(39.806898, 116.490682)
...@@ -78,7 +79,7 @@ class TDriveRouteActivity : AppCompatActivity() ,OnNaviPresenterListener{ ...@@ -78,7 +79,7 @@ class TDriveRouteActivity : AppCompatActivity() ,OnNaviPresenterListener{
) )
var ways = listOf<WayPoi>(wayPoi) var ways = listOf<WayPoi>(wayPoi)
mapCoreApi.startNavi(mapReadView, 2/*1=自己实现回调 2=直接调用导航组件*/, startPoint, "当前位置", endPoint, endName, ways,this) MSNavi.startNavi(mapReadView, 2/*1=自己实现回调 2=直接调用导航组件*/, startPoint, "当前位置", endPoint, endName, ways,this)
} }
} }
......
...@@ -2,11 +2,11 @@ package com.sd.demo.ui ...@@ -2,11 +2,11 @@ package com.sd.demo.ui
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.sd.api.maps.MSPoi
import com.sd.api.maps.cdata.PoiSearchRes import com.sd.api.maps.cdata.PoiSearchRes
import com.sd.api.ui.MapReadyView
import com.sd.api.maps.inters.OnMSPoiSearchLis import com.sd.api.maps.inters.OnMSPoiSearchLis
import com.sd.api.maps.MSPoi
import com.sd.api.ui.MapMultiView.OnMapReadyLis import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.api.ui.MapReadyView
import com.sd.demo.adapter.PoiAdapter import com.sd.demo.adapter.PoiAdapter
import com.sd.demo.databinding.ActivityTpoiSearchBinding import com.sd.demo.databinding.ActivityTpoiSearchBinding
...@@ -21,7 +21,7 @@ class TPoiSearchActivity : AppCompatActivity() { ...@@ -21,7 +21,7 @@ class TPoiSearchActivity : AppCompatActivity() {
private var poiAdapter = PoiAdapter() private var poiAdapter = PoiAdapter()
//获取接口功能实例 //获取接口功能实例
var mapCoreApi = MapCoreApi.mapCoreApi // var mapCoreApi = MapCoreApi.mapCoreApi
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
......
...@@ -12,7 +12,7 @@ plugins { ...@@ -12,7 +12,7 @@ plugins {
android { android {
namespace = "com.msmap.api" namespace = "com.sd.api"
compileSdk = 35 compileSdk = 35
defaultConfig { defaultConfig {
......
package com.sd.api.core
import android.graphics.Rect
import com.amap.api.maps.CameraUpdateFactory
import com.amap.api.maps.model.Poi
import com.amap.api.navi.AMapNavi
import com.amap.api.navi.AmapNaviPage
import com.amap.api.navi.AmapNaviParams
import com.amap.api.navi.AmapNaviType
import com.amap.api.navi.AmapPageType
import com.amap.api.navi.model.AMapCalcRouteResult
import com.amap.api.navi.model.AMapNaviPath
import com.amap.api.navi.view.RouteOverLay
import com.minedata.minenavi.map.Route
import com.minedata.minenavi.map.RouteOptions
import com.minedata.minenavi.mapdal.DataPreference
import com.minedata.minenavi.mapdal.LatLng
import com.minedata.minenavi.mapdal.PoiFavorite
import com.minedata.minenavi.navi.NaviSession
import com.minedata.minenavi.navi.NaviSessionParams
import com.minedata.minenavi.navi.RouteBase
import com.minedata.minenavi.navi.RouteCollection
import com.minedata.minenavi.navi.RoutePlan
import com.minedata.minenavi.navi.RouterErrorInfo
import com.minedata.minenavi.util.Tools
import com.sd.api.MAP_TYPE
import com.sd.api.MSDKInitializer
import com.sd.api.UserCtx
import com.sd.api.bean.DriverRouteBean
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.bean.WayPoi
import com.sd.api.core.basic.OnDriveRoute
import com.sd.api.intfaces.MyAMapNaviListener
import com.sd.api.intfaces.MyMineNaviListener
import com.sd.api.ui.MapReadyView
import com.sd.api.utils.DisplayUtil
import com.amap.api.maps.model.LatLng as ALatLng
/**路劲规划 弃用**/
@Deprecated(
message = "弃用 直接使用var basicMap = MapFactory.createBasic()\n" +
" basicMap.drivingPathPlanning()"
)
private object MSRoutePlans {
//初始化高德 RouteSearch 对象
// private var mRouteSearch: RouteSearch? = null
//初始化高德 导航 对象
private var mAMapNavi: AMapNavi? = null
// private const val ROUTE_TYPE_DRIVE = 2
//初始化四维导航对象
private var mNaviSession: NaviSession? = null
//驾车算路回调对象
private var driverRouteBean = DriverRouteBean.instance
//驾车路径规划回调接口
private var onDriveRoute: OnDriveRoute? = null
//路径图层返回
// private var routeOver = RouteOver.instance
/**
* 四维保存当前算好的路线
*/
private var mRoute: Route? = null
//高德保存当前算好的路线
private var routeOverlay: RouteOverLay? = null
// private val routeOverlays: SparseArray<RouteOverLay> = SparseArray<RouteOverLay>()
/**
* 添加导航路线规划监听
* @param onDriveRoute 导航路线回调接口
*/
fun addPlanLis(onDriveRoute: OnDriveRoute) {
var context = UserCtx.instance.mContext
this.onDriveRoute = onDriveRoute
// 根据地图类型初始化不同的导航引擎
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
mNaviSession = NaviSession.getInstance()
// 开启语音播报
mNaviSession?.enableSound(true)
var naviSessionParams = NaviSessionParams().apply {
autoReroute = true
autoRemoveRoute = true
// useMineNaviGPS = true
}
mNaviSession!!.init(context, naviSessionParams)
mNaviSession?.setDataPreference(DataPreference.preferOnline)
mNaviSession?.addMineNaviListener(myMineNaviListener)
}
MAP_TYPE.AMAP -> {
mAMapNavi = AMapNavi.getInstance(context)
mAMapNavi!!.addAMapNaviListener(aMapNaviListener)
// mRouteSearch = RouteSearch(context)
// mRouteSearch!!.setRouteSearchListener(onRouteSearchListener)
}
}
}
/**驾车路径规划
* @param starPoint 起点坐标
* @param endPoint 终点坐标
* @param ways 途经点集合
* @param endName 终点名称(高德可不传)
* @param startName 起点名称
*/
fun drivingPathPlanning(
starPoint: MSLatLng,
endPoint: MSLatLng,
ways: List<WayPoi>,
endName: String = "",
startName: String = "当前位置"
) {
var context = UserCtx.instance.mContext
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
val starPoint = Tools.latLngToPoint(LatLng(starPoint.lat, starPoint.lng))
val endPoint = Tools.latLngToPoint(LatLng(endPoint.lat, endPoint.lng))
var startName = startName
var endName = endName
var wayPoints = mutableListOf<PoiFavorite>()
if (ways.count() > 0) {
ways.forEach { wpoi ->
var passPoint =
Tools.latLngToPoint(LatLng(wpoi.passPoint!!.lat, wpoi.passPoint!!.lng))
wayPoints.add(PoiFavorite(passPoint, wpoi.passName))
}
}
val routePlan = RoutePlan()
routePlan.setRoutePreference(RoutePlan.RoutePreference.none)
routePlan.setTransportationType(RoutePlan.TransportationType.car)
mNaviSession?.calculateDriveRoute(
PoiFavorite(starPoint, startName),
wayPoints,
PoiFavorite(endPoint, endName),
routePlan,
NaviSession.RouteMethod.multipleResult
)
}
MAP_TYPE.AMAP -> {
//这是路径规划
/* var startLatlng = NaviLatLng(starPoint.lat, starPoint.lng)
var startList = listOf<NaviLatLng>(startLatlng)
var endLatlng = NaviLatLng(endPoint.lat, endPoint.lng)
var endList = listOf<NaviLatLng>(endLatlng)
//途经点
var wayPoints = mutableListOf<NaviLatLng>()
if (ways.count() > 0) {
ways.forEach { wpoi ->
wayPoints.add(NaviLatLng(wpoi.passPoint!!.lat, wpoi.passPoint!!.lng))
}
}
mAMapNavi?.calculateDriveRoute(
startList,
endList,
wayPoints,
PathPlanningStrategy.DRIVING_MULTIPLE_ROUTES_DEFAULT
)*/
//这是导航,直接到高德内置组件
//途经点
var poiList = mutableListOf<Poi>()
if (ways.count() > 0) {
ways.forEach { wpoi ->
poiList.add(
Poi(
"鸟巢",
ALatLng(wpoi.passPoint!!.lat, wpoi.passPoint!!.lng),
""
)
)
}
}
val params = AmapNaviParams(
Poi(startName, ALatLng(starPoint.lat, starPoint.lng), ""),
poiList,
Poi(endName, ALatLng(endPoint.lat, endPoint.lng), ""),
AmapNaviType.DRIVER, AmapPageType.ROUTE
)
params.setUseInnerVoice(true)
AmapNaviPage.getInstance()
.showRouteActivity(context, params, null)
}
}
}
/**自定义驾车路线返回*/
/* interface OnDriveRoute {
fun onDriverRoute(driverRouteBean: DriverRouteBean)
}*/
/**
* 绘制规划的路线路径。
* @param mapReadView 地图视图容器,用于获取当前地图实例。
* @param driverRB 包含路线信息的数据对象。
*/
fun drawPlanPath(
mapReadView: MapReadyView?,
driverRB: DriverRouteBean
) {
var context = UserCtx.instance.mContext
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
// 移除旧的路线覆盖物
if (mRoute != null) {
mapReadView?.mMineMap?.removeOverlay(mRoute)
mRoute = null
}
// 获取第一条路线数据并设置路线绘制选项
var routeBase = driverRB.routeBase
val options = RouteOptions()
.routeBase(routeBase)
.colorType(Route.RouteColorType.enrouteTi)
.styleClass("DEFAULT")
// 添加新的路线到地图上,并设置样式和视角适配
mRoute = mapReadView?.mMineMap?.addRoute(options)
setRouteOverlayStyle(mRoute, false)
navEndFitWorldAreaToRect(mapReadView, routeBase)
}
MAP_TYPE.AMAP -> {
// 清除之前的路线覆盖物
if (routeOverlay != null) {
routeOverlay?.removeFromMap()
routeOverlay = null
}
// 从导航结果中获取路径信息并在高德地图上绘制
val routeIds = driverRB.aMapCalcRouteResult!!.getRouteid()
val paths: HashMap<Int, AMapNaviPath> = mAMapNavi!!.getNaviPaths()
val path: AMapNaviPath? = paths.get(routeIds[0])
if (path != null) {
mapReadView?.aMap?.moveCamera(CameraUpdateFactory.changeTilt(0f))
routeOverlay = RouteOverLay(mapReadView?.aMap, path, context)
routeOverlay?.setTrafficLine(false)
routeOverlay?.addToMap()
}
}
}
}
// private fun drawRoutes(
// routeId: Int,
// path: AMapNaviPath,
// mapReadView: MapReadyView?,
// context: Context
// ) {
// mapReadView?.aMap?.moveCamera(CameraUpdateFactory.changeTilt(0f))
// routeOverLay = RouteOverLay(mapReadView?.aMap, path, context)
// routeOverLay.setTrafficLine(false)
// routeOverLay.addToMap()
//// routeOverlays.put(routeId, routeOverLay)
// }
private fun setRouteOverlayStyle(route: Route?, isSmallMapRoute: Boolean = false) {
var routeStyle = "DEFAULT"
if (isSmallMapRoute) {
routeStyle += ",small-map"
}
route?.selectStyleClass(routeStyle)
}
/***将指定的地图上的矩形区域显示到指定的屏幕矩形区域中
* @param driverRB 驾车路径规划返回
* ****/
fun navEndFitWorldAreaToRect(mapReadView: MapReadyView?, mRouteBase: RouteBase?) {
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
if (mRouteBase == null)
return
val rect = Rect(
200, 350, DisplayUtil.getScreenWidthPx() - 200,
DisplayUtil.getScreenHeightPx() - 200
)
// 获取单条道路信息
// var mRouteBase = driverRB.routeCollection?.routes?.get(0)
val boundingBox = mRouteBase.getBoundingBox()
mapReadView?.mMineMap?.fitWorldAreaToRect(boundingBox, rect)
// mapReadView?.mMineMap?.setElevation(0f)
}
MAP_TYPE.AMAP -> {
}
}
}
//-------------- 四维 导航监听 --------------------------
private var myMineNaviListener = object : MyMineNaviListener() {
private fun getRouteMsg(data: RouterErrorInfo): String {
var msg = ""
when (data.errCode) {
RouterErrorInfo.Type.ComputeFailed -> msg = "路线计算失败"
RouterErrorInfo.Type.destAuthError -> msg = "终点所在位置数据授权错误"
RouterErrorInfo.Type.destNoData -> msg = "重点所在位置没有数据"
RouterErrorInfo.Type.MissingSubfiles -> msg = "缺少途径省份数据"
RouterErrorInfo.Type.NetworkError -> msg = "网络连接错误"
RouterErrorInfo.Type.None -> {}
RouterErrorInfo.Type.NotEnoughMemory -> msg = "没有足够的内存可以使用"
RouterErrorInfo.Type.oriAuthError -> msg = "起点所在位置数据授权错误"
RouterErrorInfo.Type.OriDestTooNear -> msg = "起点和终点距离太近"
RouterErrorInfo.Type.oriNoData -> msg = "起点所在位置没有数据"
RouterErrorInfo.Type.SetDestFailed -> msg = "设置终点失败"
RouterErrorInfo.Type.SetOriFailed -> msg = "设置起点失败"
RouterErrorInfo.Type.waypointAuthError -> msg = "途经点所在位置数据授权错误"
RouterErrorInfo.Type.waypointNoData -> msg = "途经点所在位置没有数据"
}
return msg
}
override fun onCalculateRouteSuccess(data: RouteCollection) {
// 路线规划成功
driverRouteBean.routeBase = data.routes.get(0)
onDriveRoute?.onDriverRoute(driverRouteBean)
}
override fun onCalculateRouteFailed(data: RouterErrorInfo) {
// 路线规划失败
val msg = getRouteMsg(data)
var a = 0
}
}
//-------------- 高德 导航监听 --------------------------
private var aMapNaviListener = object : MyAMapNaviListener() {
override fun onCalculateRouteSuccess(aMapCalcRouteResult: AMapCalcRouteResult?) {
// 路线规划成功
driverRouteBean.aMapCalcRouteResult = aMapCalcRouteResult
onDriveRoute?.onDriverRoute(driverRouteBean)
}
override fun onCalculateRouteFailure(result: AMapCalcRouteResult?) {
}
}
}
\ No newline at end of file
...@@ -6,7 +6,7 @@ import android.view.View ...@@ -6,7 +6,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.amap.api.maps.AMap import com.amap.api.maps.AMap
import com.msmap.api.databinding.FragmentAMapBinding import com.sd.api.databinding.FragmentAMapBinding
import com.sd.api.ui.MapReadyView import com.sd.api.ui.MapReadyView
import com.sd.api.ui.MapMultiView.OnMapReadyLis import com.sd.api.ui.MapMultiView.OnMapReadyLis
......
...@@ -6,7 +6,7 @@ import android.view.View ...@@ -6,7 +6,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.minedata.minenavi.map.MineMap import com.minedata.minenavi.map.MineMap
import com.msmap.api.databinding.FragmentForeMapBinding import com.sd.api.databinding.FragmentForeMapBinding
import com.sd.api.ui.MapReadyView import com.sd.api.ui.MapReadyView
import com.sd.api.ui.MapMultiView.OnMapReadyLis import com.sd.api.ui.MapMultiView.OnMapReadyLis
......
package com.sd.api.maps
import com.sd.api.MAP_TYPE
import com.sd.api.MSDKInitializer
import com.sd.api.bean.WayPoi
import com.sd.api.intfaces.OnNaviPresenterListener
import com.sd.api.maps.amap.AmapNai
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.maps.mine.MineNai
import com.sd.api.ui.MapReadyView
/**
* 导航
*
* @constructor Create empty M s navi
*/
object MSNavi {
/**
* 开始导航
* @param nType 1=自己实现回调 2=直接调用导航组件
* @param starPoint
* @param startName
* @param endPoint
* @param endName
* @param ways
*/
fun startNavi(
mapReadView: MapReadyView?,
nType: Int,
starPoint: MSLatLng,
startName: String,
endPoint: MSLatLng,
endName: String,
ways: List<WayPoi>,
onNaviPresenterListener: OnNaviPresenterListener?
) {
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
if (nType == 1) {
MineNai.startNavi(mapReadView, onNaviPresenterListener)
} else if (nType == 2) {
MineNai.startNaviDirect(starPoint, startName, endPoint, endName, ways)
}
}
MAP_TYPE.AMAP -> {
if (nType == 1) {
AmapNai.startPlanNavi(starPoint, startName, endPoint, endName, ways)
} else if (nType == 2) {
AmapNai.startNavi(starPoint, startName, endPoint, endName, ways)
}
}
}
}
}
\ No newline at end of file
package com.sd.api.maps
import com.sd.api.MAP_TYPE
import com.sd.api.MSDKInitializer
import com.sd.api.bean.WayPoi
import com.sd.api.maps.amap.AmapRoutePlans
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.maps.inters.OnDriveRoute
import com.sd.api.maps.mine.MineRoutePlans
import com.sd.api.ui.MapReadyView
/**路劲规划 **/
object MSRoutePlans {
/**驾车路径规划
* @param starPoint 起点坐标
* @param startName 起点名称
* @param endPoint 终点坐标
* @param endName 终点名称(高德可不传)
* @param ways 途经点集合
* @param mapReadView 地图对象
* @param onDriveRoute 路径规划结果回调
*/
fun drivingPathPlanning(
starPoint: MSLatLng,
startName: String = "当前位置",
endPoint: MSLatLng,
endName: String = "",
ways: List<WayPoi>,
mapReadView: MapReadyView?,
onDriveRoute: OnDriveRoute?
) {
when (MSDKInitializer.getMapType()) {
MAP_TYPE.MINE -> {
MineRoutePlans.drivingPathPlanning(
starPoint,
startName,
endPoint,
endName,
ways,
mapReadView,
onDriveRoute
)
}
MAP_TYPE.AMAP -> {
AmapRoutePlans.instance.drivingPathPlanning(
starPoint,
startName,
endPoint,
endName,
ways,
mapReadView,
onDriveRoute
)
}
}
}
}
\ No newline at end of file
...@@ -8,7 +8,7 @@ import com.amap.api.maps.model.LatLng ...@@ -8,7 +8,7 @@ import com.amap.api.maps.model.LatLng
import com.amap.api.maps.model.MarkerOptions import com.amap.api.maps.model.MarkerOptions
import com.amap.api.maps.model.PolygonOptions import com.amap.api.maps.model.PolygonOptions
import com.amap.api.maps.model.PolylineOptions import com.amap.api.maps.model.PolylineOptions
import com.msmap.api.R import com.sd.api.R
import com.sd.api.UserCtx import com.sd.api.UserCtx
import com.sd.api.maps.cdata.MSLatLng import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.ui.MapReadyView import com.sd.api.ui.MapReadyView
......
package com.sd.api.core.basic.amap package com.sd.api.maps.amap
import com.amap.api.maps.model.LatLng
import com.amap.api.maps.model.Poi import com.amap.api.maps.model.Poi
import com.amap.api.navi.AmapNaviPage import com.amap.api.navi.AmapNaviPage
import com.amap.api.navi.AmapNaviParams import com.amap.api.navi.AmapNaviParams
import com.amap.api.navi.AmapNaviType import com.amap.api.navi.AmapNaviType
import com.amap.api.navi.AmapPageType import com.amap.api.navi.AmapPageType
import com.sd.api.UserCtx import com.sd.api.UserCtx
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.bean.WayPoi import com.sd.api.bean.WayPoi
import com.amap.api.maps.model.LatLng as ALatLng import com.sd.api.maps.cdata.MSLatLng
/** /**
* 高德导航 * 高德导航
...@@ -32,7 +31,7 @@ object AmapNai { ...@@ -32,7 +31,7 @@ object AmapNai {
endName: String, endName: String,
ways: List<WayPoi> ways: List<WayPoi>
) { ) {
var context = UserCtx.instance.mContext var context = UserCtx.Companion.instance.mContext
//途经点 //途经点
var poiList = mutableListOf<Poi>() var poiList = mutableListOf<Poi>()
if (ways.count() > 0) { if (ways.count() > 0) {
...@@ -40,16 +39,16 @@ object AmapNai { ...@@ -40,16 +39,16 @@ object AmapNai {
poiList.add( poiList.add(
Poi( Poi(
wpoi.passName, wpoi.passName,
ALatLng(wpoi.passPoint!!.lat, wpoi.passPoint!!.lng), LatLng(wpoi.passPoint!!.lat, wpoi.passPoint!!.lng),
"" ""
) )
) )
} }
} }
val params = AmapNaviParams( val params = AmapNaviParams(
Poi(startName, ALatLng(starPoint.lat, starPoint.lng), ""), Poi(startName, LatLng(starPoint.lat, starPoint.lng), ""),
poiList, poiList,
Poi(endName, ALatLng(endPoint.lat, endPoint.lng), ""), Poi(endName, LatLng(endPoint.lat, endPoint.lng), ""),
AmapNaviType.DRIVER, AmapPageType.NAVI AmapNaviType.DRIVER, AmapPageType.NAVI
) )
params.setUseInnerVoice(true) params.setUseInnerVoice(true)
...@@ -74,7 +73,7 @@ object AmapNai { ...@@ -74,7 +73,7 @@ object AmapNai {
endName: String, endName: String,
ways: List<WayPoi> ways: List<WayPoi>
) { ) {
var context = UserCtx.instance.mContext var context = UserCtx.Companion.instance.mContext
//途经点 //途经点
var poiList = mutableListOf<Poi>() var poiList = mutableListOf<Poi>()
if (ways.count() > 0) { if (ways.count() > 0) {
...@@ -82,16 +81,16 @@ object AmapNai { ...@@ -82,16 +81,16 @@ object AmapNai {
poiList.add( poiList.add(
Poi( Poi(
wpoi.passName, wpoi.passName,
ALatLng(wpoi.passPoint!!.lat, wpoi.passPoint!!.lng), LatLng(wpoi.passPoint!!.lat, wpoi.passPoint!!.lng),
"" ""
) )
) )
} }
} }
val params = AmapNaviParams( val params = AmapNaviParams(
Poi(startName, ALatLng(starPoint.lat, starPoint.lng), ""), Poi(startName, LatLng(starPoint.lat, starPoint.lng), ""),
poiList, poiList,
Poi(endName, ALatLng(endPoint.lat, endPoint.lng), ""), Poi(endName, LatLng(endPoint.lat, endPoint.lng), ""),
AmapNaviType.DRIVER, AmapPageType.ROUTE AmapNaviType.DRIVER, AmapPageType.ROUTE
) )
params.setUseInnerVoice(true) params.setUseInnerVoice(true)
......
package com.sd.api.core.basic.amap package com.sd.api.maps.amap
import com.amap.api.maps.CameraUpdateFactory import com.amap.api.maps.CameraUpdateFactory
import com.amap.api.maps.model.LatLng
import com.amap.api.maps.model.Poi import com.amap.api.maps.model.Poi
import com.amap.api.navi.AMapNavi import com.amap.api.navi.AMapNavi
import com.amap.api.navi.model.AMapCalcRouteResult import com.amap.api.navi.model.AMapCalcRouteResult
...@@ -9,13 +10,11 @@ import com.amap.api.navi.model.NaviLatLng ...@@ -9,13 +10,11 @@ import com.amap.api.navi.model.NaviLatLng
import com.amap.api.navi.view.RouteOverLay import com.amap.api.navi.view.RouteOverLay
import com.sd.api.UserCtx import com.sd.api.UserCtx
import com.sd.api.bean.DriverRouteBean import com.sd.api.bean.DriverRouteBean
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.bean.WayPoi import com.sd.api.bean.WayPoi
import com.sd.api.ui.MapReadyView
import com.sd.api.core.basic.OnDriveRoute
import com.sd.api.intfaces.MyAMapNaviListener import com.sd.api.intfaces.MyAMapNaviListener
import com.amap.api.maps.model.LatLng as ALatLng import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.maps.inters.OnDriveRoute
import com.sd.api.ui.MapReadyView
/**路劲规划**/ /**路劲规划**/
class AmapRoutePlans { class AmapRoutePlans {
...@@ -25,7 +24,7 @@ class AmapRoutePlans { ...@@ -25,7 +24,7 @@ class AmapRoutePlans {
} }
//驾车算路回调对象 //驾车算路回调对象
private var driverRouteBean = DriverRouteBean.instance private var driverRouteBean = DriverRouteBean.Companion.instance
//驾车路径规划回调接口 //驾车路径规划回调接口
private var onDriveRoute: OnDriveRoute? = null private var onDriveRoute: OnDriveRoute? = null
...@@ -59,7 +58,7 @@ class AmapRoutePlans { ...@@ -59,7 +58,7 @@ class AmapRoutePlans {
this.onDriveRoute = onDriveRoute this.onDriveRoute = onDriveRoute
this.mapReadView = mapReadView this.mapReadView = mapReadView
var context = UserCtx.instance.mContext var context = UserCtx.Companion.instance.mContext
mAMapNavi = AMapNavi.getInstance(context) mAMapNavi = AMapNavi.getInstance(context)
mAMapNavi!!.addAMapNaviListener(aMapNaviListener) mAMapNavi!!.addAMapNaviListener(aMapNaviListener)
...@@ -71,7 +70,7 @@ class AmapRoutePlans { ...@@ -71,7 +70,7 @@ class AmapRoutePlans {
poiList.add( poiList.add(
Poi( Poi(
wpoi.passName, wpoi.passName,
ALatLng(wpoi.passPoint!!.lat, wpoi.passPoint!!.lng), LatLng(wpoi.passPoint!!.lat, wpoi.passPoint!!.lng),
"" ""
) )
) )
...@@ -113,7 +112,7 @@ class AmapRoutePlans { ...@@ -113,7 +112,7 @@ class AmapRoutePlans {
) { ) {
if (aMapCalcRouteResult == null) if (aMapCalcRouteResult == null)
return return
var context = UserCtx.instance.mContext var context = UserCtx.Companion.instance.mContext
// 清除之前的路线覆盖物 // 清除之前的路线覆盖物
if (routeOverlay != null) { if (routeOverlay != null) {
routeOverlay?.removeFromMap() routeOverlay?.removeFromMap()
......
package com.sd.api.core.basic package com.sd.api.maps.inters
import com.sd.api.bean.DriverRouteBean import com.sd.api.bean.DriverRouteBean
......
...@@ -7,7 +7,7 @@ import com.minedata.minenavi.map.MarkerOptions ...@@ -7,7 +7,7 @@ import com.minedata.minenavi.map.MarkerOptions
import com.minedata.minenavi.map.PolygonOptions import com.minedata.minenavi.map.PolygonOptions
import com.minedata.minenavi.map.PolylineOptions import com.minedata.minenavi.map.PolylineOptions
import com.minedata.minenavi.mapdal.LatLng import com.minedata.minenavi.mapdal.LatLng
import com.msmap.api.R import com.sd.api.R
import com.sd.api.UserCtx import com.sd.api.UserCtx
import com.sd.api.maps.cdata.MSLatLng import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.maps.cdata.MSMarker import com.sd.api.maps.cdata.MSMarker
......
package com.sd.api.core.basic.mine package com.sd.api.maps.mine
import android.content.Intent import android.content.Intent
import android.graphics.Point import android.graphics.Point
...@@ -19,11 +19,12 @@ import com.minedata.minenavi.navi.SmoothNaviData ...@@ -19,11 +19,12 @@ import com.minedata.minenavi.navi.SmoothNaviData
import com.minedata.minenavi.navi.TmcSections import com.minedata.minenavi.navi.TmcSections
import com.minedata.minenavi.util.Tools import com.minedata.minenavi.util.Tools
import com.sd.api.UserCtx import com.sd.api.UserCtx
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.bean.WayPoi import com.sd.api.bean.WayPoi
import com.sd.api.ui.MapReadyView import com.sd.api.maps.mine.MineNaiParams
import com.sd.api.intfaces.MyMineNaviListener import com.sd.api.intfaces.MyMineNaviListener
import com.sd.api.intfaces.OnNaviPresenterListener import com.sd.api.intfaces.OnNaviPresenterListener
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.ui.MapReadyView
import com.sd.api.ui.MineNaiDirActivity import com.sd.api.ui.MineNaiDirActivity
/** /**
...@@ -49,7 +50,7 @@ object MineNai { ...@@ -49,7 +50,7 @@ object MineNai {
autoRemoveRoute = true autoRemoveRoute = true
// useMineNaviGPS = true // useMineNaviGPS = true
} }
var context = UserCtx.instance.mContext var context = UserCtx.Companion.instance.mContext
mNaviSession!!.init(context, naviSessionParams) mNaviSession!!.init(context, naviSessionParams)
mNaviSession?.setDataPreference(DataPreference.preferOnline) mNaviSession?.setDataPreference(DataPreference.preferOnline)
...@@ -58,7 +59,7 @@ object MineNai { ...@@ -58,7 +59,7 @@ object MineNai {
/** /**
* 开启四维导航 客户端自实现数据回调 * 开启四维导航 客户端自实现数据回调
*/ */
fun startNavi(mapReadView: MapReadyView?,onNaviPresenterListener:OnNaviPresenterListener?) { fun startNavi(mapReadView: MapReadyView?, onNaviPresenterListener: OnNaviPresenterListener?) {
mNaviSession?.addMineNaviListener(myMineNaviListener) mNaviSession?.addMineNaviListener(myMineNaviListener)
var mRouteBas = MineRoutePlans.mRouteBase var mRouteBas = MineRoutePlans.mRouteBase
if (mRouteBas != null) { if (mRouteBas != null) {
...@@ -79,7 +80,7 @@ object MineNai { ...@@ -79,7 +80,7 @@ object MineNai {
ways: List<WayPoi> ways: List<WayPoi>
) { ) {
var params = MineNaiParams(starPoint, startName, endPoint, endName, ways) var params = MineNaiParams(starPoint, startName, endPoint, endName, ways)
var context = UserCtx.instance.mContext var context = UserCtx.Companion.instance.mContext
var inten = Intent(context, MineNaiDirActivity::class.java) var inten = Intent(context, MineNaiDirActivity::class.java)
inten.putExtra("mineNaiParams", params) inten.putExtra("mineNaiParams", params)
...@@ -92,7 +93,7 @@ object MineNai { ...@@ -92,7 +93,7 @@ object MineNai {
/** /**
* 直接使用RouteBase开启导航 * 直接使用RouteBase开启导航
*/ */
fun startNaviFormRouteBase(routeBase: RouteBase?, mStartPoint: MSLatLng,mapReadView: MapReadyView?) { fun startNaviFormRouteBase(routeBase: RouteBase?, mStartPoint: MSLatLng, mapReadView: MapReadyView?) {
// mMineMap = mapReadView?.mMineMap // mMineMap = mapReadView?.mMineMap
if (routeBase == null) if (routeBase == null)
return return
......
package com.sd.api.core.basic.mine package com.sd.api.maps.mine
import android.os.Parcelable import android.os.Parcelable
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.bean.WayPoi import com.sd.api.bean.WayPoi
import com.sd.api.maps.cdata.MSLatLng
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
/** /**
* 导航参数跳转 * 导航参数跳转
*/ */
...@@ -16,4 +15,4 @@ data class MineNaiParams( ...@@ -16,4 +15,4 @@ data class MineNaiParams(
val endPoint: MSLatLng, val endPoint: MSLatLng,
val endName: String, val endName: String,
val ways: List<WayPoi> val ways: List<WayPoi>
) : Parcelable ) : Parcelable
\ No newline at end of file
package com.sd.api.core.basic.mine package com.sd.api.maps.mine
import android.graphics.Point import android.graphics.Point
import android.graphics.Rect import android.graphics.Rect
...@@ -14,14 +14,13 @@ import com.minedata.minenavi.navi.RoutePlan ...@@ -14,14 +14,13 @@ import com.minedata.minenavi.navi.RoutePlan
import com.minedata.minenavi.navi.RouterErrorInfo import com.minedata.minenavi.navi.RouterErrorInfo
import com.minedata.minenavi.util.Tools import com.minedata.minenavi.util.Tools
import com.sd.api.bean.DriverRouteBean import com.sd.api.bean.DriverRouteBean
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.bean.WayPoi import com.sd.api.bean.WayPoi
import com.sd.api.ui.MapReadyView
import com.sd.api.core.basic.OnDriveRoute
import com.sd.api.intfaces.MyMineNaviListener import com.sd.api.intfaces.MyMineNaviListener
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.maps.inters.OnDriveRoute
import com.sd.api.ui.MapReadyView
import com.sd.api.utils.DisplayUtil import com.sd.api.utils.DisplayUtil
/**四维路劲规划*/ /**四维路劲规划*/
object MineRoutePlans { object MineRoutePlans {
...@@ -29,7 +28,7 @@ object MineRoutePlans { ...@@ -29,7 +28,7 @@ object MineRoutePlans {
private var mNaviSession: NaviSession? = null private var mNaviSession: NaviSession? = null
//驾车算路回调对象 //驾车算路回调对象
private var driverRouteBean = DriverRouteBean.instance private var driverRouteBean = DriverRouteBean.Companion.instance
//驾车路径规划回调接口 //驾车路径规划回调接口
private var onDriveRoute: OnDriveRoute? = null private var onDriveRoute: OnDriveRoute? = null
......
...@@ -6,8 +6,8 @@ import android.view.LayoutInflater ...@@ -6,8 +6,8 @@ import android.view.LayoutInflater
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.core.content.withStyledAttributes import androidx.core.content.withStyledAttributes
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import com.msmap.api.R import com.sd.api.R
import com.msmap.api.databinding.MultiViewBinding import com.sd.api.databinding.MultiViewBinding
import com.sd.api.MAP_TYPE import com.sd.api.MAP_TYPE
import com.sd.api.MSDKInitializer import com.sd.api.MSDKInitializer
import com.sd.api.ui.MapReadyView import com.sd.api.ui.MapReadyView
......
...@@ -18,16 +18,17 @@ import com.minedata.minenavi.navi.TmcSections ...@@ -18,16 +18,17 @@ import com.minedata.minenavi.navi.TmcSections
import com.minedata.minenavi.navi.TurnIconModel import com.minedata.minenavi.navi.TurnIconModel
import com.minedata.minenavi.util.MineNaviUtil import com.minedata.minenavi.util.MineNaviUtil
import com.minedata.minenavi.util.Tools import com.minedata.minenavi.util.Tools
import com.msmap.api.R import com.sd.api.R
import com.msmap.api.databinding.ActivityMineNaiDirBinding import com.sd.api.databinding.ActivityMineNaiDirBinding
import com.sd.api.bean.DriverRouteBean import com.sd.api.bean.DriverRouteBean
import com.sd.api.ui.MapReadyView import com.sd.api.ui.MapReadyView
import com.sd.api.core.basic.OnDriveRoute import com.sd.api.maps.inters.OnDriveRoute
import com.sd.api.core.basic.mine.MineNai import com.sd.api.maps.mine.MineNai
import com.sd.api.core.basic.mine.MineNaiParams import com.sd.api.maps.mine.MineNaiParams
import com.sd.api.core.basic.mine.MineRoutePlans import com.sd.api.maps.mine.MineRoutePlans
import com.sd.api.intfaces.OnComCan import com.sd.api.intfaces.OnComCan
import com.sd.api.intfaces.OnNaviPresenterListener import com.sd.api.intfaces.OnNaviPresenterListener
import com.sd.api.maps.MSRoutePlans
import com.sd.api.ui.MapMultiView.OnMapReadyLis import com.sd.api.ui.MapMultiView.OnMapReadyLis
import com.sd.api.ui.dialog.ExitNaiDialog import com.sd.api.ui.dialog.ExitNaiDialog
import com.sd.api.utils.Utils import com.sd.api.utils.Utils
...@@ -44,7 +45,7 @@ class MineNaiDirActivity : AppCompatActivity(), OnNaviPresenterListener { ...@@ -44,7 +45,7 @@ class MineNaiDirActivity : AppCompatActivity(), OnNaviPresenterListener {
private var mineNaiParams: MineNaiParams? = null private var mineNaiParams: MineNaiParams? = null
//获取接口功能实例 //获取接口功能实例
private var mapCoreApi = MapCoreApi.mapCoreApi // private var mapCoreApi = MapCoreApi.mapCoreApi
//四维导航地图工具 //四维导航地图工具
private lateinit var mUtils: Utils private lateinit var mUtils: Utils
...@@ -71,7 +72,7 @@ class MineNaiDirActivity : AppCompatActivity(), OnNaviPresenterListener { ...@@ -71,7 +72,7 @@ class MineNaiDirActivity : AppCompatActivity(), OnNaviPresenterListener {
override fun onMapReady(mapReadyView: MapReadyView) { override fun onMapReady(mapReadyView: MapReadyView) {
this@MineNaiDirActivity.mapReadView = mapReadyView this@MineNaiDirActivity.mapReadView = mapReadyView
//切换为2D平面图 //切换为2D平面图
mapReadyView.mMineMap?.elevation=0f // mapReadyView.mMineMap?.elevation=0f
//算路成功以后启动导航 //算路成功以后启动导航
startPlan() startPlan()
} }
...@@ -89,7 +90,7 @@ class MineNaiDirActivity : AppCompatActivity(), OnNaviPresenterListener { ...@@ -89,7 +90,7 @@ class MineNaiDirActivity : AppCompatActivity(), OnNaviPresenterListener {
var ways = mineNaiParams!!.ways var ways = mineNaiParams!!.ways
//开始路径规划 //开始路径规划
mapCoreApi.drivingPathPlanning( MSRoutePlans.drivingPathPlanning(
startPoint, startName, endPoint, endName, ways, mapReadView, object : OnDriveRoute { startPoint, startName, endPoint, endName, ways, mapReadView, object : OnDriveRoute {
override fun onDriverRoute(driverRouteBean: DriverRouteBean) { override fun onDriverRoute(driverRouteBean: DriverRouteBean) {
var routeBase = driverRouteBean.routeBase var routeBase = driverRouteBean.routeBase
......
...@@ -10,7 +10,7 @@ import android.graphics.RectF ...@@ -10,7 +10,7 @@ import android.graphics.RectF
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.LinearLayout import android.widget.LinearLayout
import com.minedata.minenavi.navi.TmcSections import com.minedata.minenavi.navi.TmcSections
import com.msmap.api.R import com.sd.api.R
/***横向的汽车**/ /***横向的汽车**/
class HorCarTmc : LinearLayout { class HorCarTmc : LinearLayout {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment