Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
p x
MapMultiEngine
Commits
d5450204
Commit
d5450204
authored
Sep 03, 2025
by
p x
Browse files
封装导航
parent
05725fa8
Changes
10
Expand all
Show whitespace changes
Inline
Side-by-side
maplibrary/src/main/java/com/sd/maplibrary/core/basic/mine/MineNai.kt
View file @
d5450204
...
@@ -14,6 +14,7 @@ import com.minedata.minenavi.navi.NaviSession
...
@@ -14,6 +14,7 @@ import com.minedata.minenavi.navi.NaviSession
import
com.minedata.minenavi.navi.NaviSessionData
import
com.minedata.minenavi.navi.NaviSessionData
import
com.minedata.minenavi.navi.NaviSessionParams
import
com.minedata.minenavi.navi.NaviSessionParams
import
com.minedata.minenavi.navi.RouteBase
import
com.minedata.minenavi.navi.RouteBase
import
com.minedata.minenavi.navi.RouteExplorer
import
com.minedata.minenavi.navi.SmoothNaviData
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
...
@@ -34,7 +35,7 @@ object MineNai {
...
@@ -34,7 +35,7 @@ object MineNai {
private
var
mNaviSession
:
NaviSession
?
=
null
private
var
mNaviSession
:
NaviSession
?
=
null
// 导航小车
// 导航小车
private
var
mMapCar
:
Model
?
=
null
var
mMapCar
:
Model
?
=
null
private
var
mMineMap
:
MineMap
?
=
null
private
var
mMineMap
:
MineMap
?
=
null
/**四维导航监听回调***/
/**四维导航监听回调***/
...
@@ -87,22 +88,24 @@ object MineNai {
...
@@ -87,22 +88,24 @@ object MineNai {
//是否正在导航
//是否正在导航
private
var
mIsInNavigation
=
false
private
var
mIsInNavigation
=
false
/**
/**
* 直接使用RouteBase开启导航
* 直接使用RouteBase开启导航
*/
*/
fun
startNaviFormRouteBase
(
routeBase
:
RouteBase
?,
mStartPoint
:
MSLatLng
)
{
fun
startNaviFormRouteBase
(
routeBase
:
RouteBase
?,
mStartPoint
:
MSLatLng
,
mapReadView
:
MapReadyView
?
)
{
// mMineMap = mapReadView?.mMineMap
// mMineMap = mapReadView?.mMineMap
if
(
routeBase
==
null
)
if
(
routeBase
==
null
)
return
return
mMineMap
=
mapReadView
?.
mMineMap
mNaviSession
?.
addMineNaviListener
(
myMineNaviListener
)
mNaviSession
?.
addMineNaviListener
(
myMineNaviListener
)
val
starPoint
=
Tools
.
latLngToPoint
(
LatLng
(
mStartPoint
.
lat
,
mStartPoint
.
lng
))
val
starPoint
=
Tools
.
latLngToPoint
(
LatLng
(
mStartPoint
.
lat
,
mStartPoint
.
lng
))
drawNavingCar
(
starPoint
)
drawNavingCar
(
starPoint
)
mIsInNavigation
=
true
mIsInNavigation
=
true
mNaviSession
?.
takeRoute
(
routeBase
)
mNaviSession
?.
takeRoute
(
routeBase
)
}
}
fun
stopNavi
()
{
fun
stopNavi
()
{
mIsInNavigation
=
false
mIsInNavigation
=
false
mNaviSession
?.
removeRoute
()
mNaviSession
?.
removeRoute
()
}
}
...
@@ -144,43 +147,55 @@ object MineNai {
...
@@ -144,43 +147,55 @@ object MineNai {
* 四维 导航监听
* 四维 导航监听
*/
*/
private
var
myMineNaviListener
=
object
:
MyMineNaviListener
()
{
private
var
myMineNaviListener
=
object
:
MyMineNaviListener
()
{
override
fun
onRerouteStarted
()
{
super
.
onRerouteStarted
()
RouteExplorer
.
getInstance
().
removeRoutes
()
}
override
fun
onRerouteComplete
(
data
:
RouteBase
?)
{
super
.
onRerouteComplete
(
data
)
MineRoutePlans
.
mRouteBase
=
data
MineRoutePlans
.
drawPlanPath
(
MineRoutePlans
.
mRouteBase
)
// driverRouteBean.routeBase=mRouteBase
}
override
fun
onTracking
(
data
:
NaviSessionData
)
{
override
fun
onTracking
(
data
:
NaviSessionData
)
{
// super.onTracking(data)
// super.onTracking(data)
onNaviPresenterListener
?.
onTracking
(
data
.
travelledDistance
.
toFloat
()
/
data
.
routeLength
)
onNaviPresenterListener
?.
onTracking
(
data
.
travelledDistance
.
toFloat
()
/
data
.
routeLength
)
}
}
override
fun
onSmoothTracking
(
data
:
SmoothNaviData
)
{
override
fun
onSmoothTracking
(
data
:
SmoothNaviData
)
{
super
.
onSmoothTracking
(
data
)
//
super.onSmoothTracking(data)
onNaviPresenterListener
?.
onSmoothTracking
(
data
)
onNaviPresenterListener
?.
onSmoothTracking
(
data
)
}
}
override
fun
onDataUpdated
(
naviProgressData
:
NaviProgressData
)
{
override
fun
onDataUpdated
(
naviProgressData
:
NaviProgressData
)
{
super
.
onDataUpdated
(
naviProgressData
)
//
super.onDataUpdated(naviProgressData)
onNaviPresenterListener
?.
onDataUpdated
(
naviProgressData
)
onNaviPresenterListener
?.
onDataUpdated
(
naviProgressData
)
}
}
override
fun
onTiBarUpdated
(
tmcSections
:
TmcSections
)
{
override
fun
onTiBarUpdated
(
tmcSections
:
TmcSections
)
{
super
.
onTiBarUpdated
(
tmcSections
)
//
super.onTiBarUpdated(tmcSections)
onNaviPresenterListener
?.
onTiBarUpdated
(
tmcSections
)
onNaviPresenterListener
?.
onTiBarUpdated
(
tmcSections
)
}
}
override
fun
onTextChanged
(
guidanceText
:
GuidanceText
)
{
override
fun
onTextChanged
(
guidanceText
:
GuidanceText
)
{
super
.
onTextChanged
(
guidanceText
)
//
super.onTextChanged(guidanceText)
onNaviPresenterListener
?.
onTextChanged
(
guidanceText
)
onNaviPresenterListener
?.
onTextChanged
(
guidanceText
)
}
}
override
fun
onDistanceChanged
(
distance
:
Int
)
{
override
fun
onDistanceChanged
(
distance
:
Int
)
{
super
.
onDistanceChanged
(
distance
)
//
super.onDistanceChanged(distance)
onNaviPresenterListener
?.
onDistanceChanged
(
distance
)
onNaviPresenterListener
?.
onDistanceChanged
(
distance
)
}
}
override
fun
onArriveDestination
()
{
override
fun
onArriveDestination
()
{
super
.
onArriveDestination
()
//
super.onArriveDestination()
onNaviPresenterListener
?.
onArriveDestination
()
onNaviPresenterListener
?.
onArriveDestination
()
}
}
override
fun
onNaviEnded
()
{
override
fun
onNaviEnded
()
{
super
.
onNaviEnded
()
//
super.onNaviEnded()
onNaviPresenterListener
?.
onNaviEnded
()
onNaviPresenterListener
?.
onNaviEnded
()
}
}
...
...
maplibrary/src/main/java/com/sd/maplibrary/core/basic/mine/MineRoutePlans.kt
View file @
d5450204
...
@@ -8,13 +8,11 @@ import com.minedata.minenavi.mapdal.DataPreference
...
@@ -8,13 +8,11 @@ import com.minedata.minenavi.mapdal.DataPreference
import
com.minedata.minenavi.mapdal.LatLng
import
com.minedata.minenavi.mapdal.LatLng
import
com.minedata.minenavi.mapdal.PoiFavorite
import
com.minedata.minenavi.mapdal.PoiFavorite
import
com.minedata.minenavi.navi.NaviSession
import
com.minedata.minenavi.navi.NaviSession
import
com.minedata.minenavi.navi.NaviSessionParams
import
com.minedata.minenavi.navi.RouteBase
import
com.minedata.minenavi.navi.RouteBase
import
com.minedata.minenavi.navi.RouteCollection
import
com.minedata.minenavi.navi.RouteCollection
import
com.minedata.minenavi.navi.RoutePlan
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.maplibrary.UserCtx
import
com.sd.maplibrary.bean.DriverRouteBean
import
com.sd.maplibrary.bean.DriverRouteBean
import
com.sd.maplibrary.bean.MSLatLng
import
com.sd.maplibrary.bean.MSLatLng
import
com.sd.maplibrary.bean.WayPoi
import
com.sd.maplibrary.bean.WayPoi
...
@@ -76,10 +74,10 @@ object MineRoutePlans {
...
@@ -76,10 +74,10 @@ object MineRoutePlans {
mNaviSession
=
NaviSession
.
getInstance
()
mNaviSession
=
NaviSession
.
getInstance
()
// 开启语音播报
// 开启语音播报
mNaviSession
?.
enableSound
(
true
)
mNaviSession
?.
enableSound
(
true
)
/* var naviSessionParams = NaviSessionParams().apply {
/* var naviSessionParams = NaviSessionParams().apply {
autoReroute = true
autoReroute = true
autoRemoveRoute = true
autoRemoveRoute = true
// useMineNaviGPS = true
// useMineNaviGPS = true
}
}
mNaviSession!!.init(context, naviSessionParams)*/
mNaviSession!!.init(context, naviSessionParams)*/
...
@@ -117,9 +115,7 @@ object MineRoutePlans {
...
@@ -117,9 +115,7 @@ object MineRoutePlans {
* 绘制规划的路线路径。
* 绘制规划的路线路径。
* @param routeBase 路线数据
* @param routeBase 路线数据
*/
*/
private
fun
drawPlanPath
(
fun
drawPlanPath
(
routeBase
:
RouteBase
?)
{
routeBase
:
RouteBase
?
)
{
if
(
routeBase
==
null
)
if
(
routeBase
==
null
)
return
return
// 移除旧的路线覆盖物
// 移除旧的路线覆盖物
...
@@ -201,7 +197,7 @@ object MineRoutePlans {
...
@@ -201,7 +197,7 @@ object MineRoutePlans {
// 获取单条道路信息
// 获取单条道路信息
mRouteBase
=
data
.
routes
.
get
(
0
)
mRouteBase
=
data
.
routes
.
get
(
0
)
drawPlanPath
(
mRouteBase
)
drawPlanPath
(
mRouteBase
)
driverRouteBean
.
routeBase
=
mRouteBase
driverRouteBean
.
routeBase
=
mRouteBase
onDriveRoute
?.
onDriverRoute
(
driverRouteBean
)
onDriveRoute
?.
onDriverRoute
(
driverRouteBean
)
}
}
...
...
maplibrary/src/main/java/com/sd/maplibrary/intfaces/MyMineNaviListener.kt
View file @
d5450204
...
@@ -58,7 +58,7 @@ abstract class MyMineNaviListener : MineNaviListener {
...
@@ -58,7 +58,7 @@ abstract class MyMineNaviListener : MineNaviListener {
override
fun
onRerouteCancelled
()
{
override
fun
onRerouteCancelled
()
{
}
}
override
fun
onRerouteComplete
(
p0
:
RouteBase
?)
{
override
fun
onRerouteComplete
(
data
:
RouteBase
?)
{
}
}
override
fun
onRerouteFailed
(
p0
:
RouterErrorInfo
)
{
override
fun
onRerouteFailed
(
p0
:
RouterErrorInfo
)
{
...
...
maplibrary/src/main/java/com/sd/maplibrary/intfaces/OnComCan.kt
0 → 100644
View file @
d5450204
package
com.sd.maplibrary.intfaces
/***
* 确定取消
*/
interface
OnComCan
{
fun
onComfirm
()
fun
onCancel
()
}
\ No newline at end of file
maplibrary/src/main/java/com/sd/maplibrary/ui/MineNaiDirActivity.kt
View file @
d5450204
package
com.sd.maplibrary.ui
package
com.sd.maplibrary.ui
import
android.os.Bundle
import
android.os.Bundle
import
android.view.KeyEvent
import
android.view.View
import
androidx.activity.enableEdgeToEdge
import
androidx.activity.enableEdgeToEdge
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.core.view.isVisible
import
com.minedata.minenavi.addons.DistanceBean
import
com.minedata.minenavi.addons.SpannableBuilder
import
com.minedata.minenavi.mapdal.NativeEnv
import
com.minedata.minenavi.mapdal.NdsPoint
import
com.minedata.minenavi.navi.GuidanceText
import
com.minedata.minenavi.navi.GuidanceText
import
com.minedata.minenavi.navi.NaviProgressData
import
com.minedata.minenavi.navi.NaviProgressData
import
com.minedata.minenavi.navi.
NaviSessionData
import
com.minedata.minenavi.navi.
RouteExplorer
import
com.minedata.minenavi.navi.SmoothNaviData
import
com.minedata.minenavi.navi.SmoothNaviData
import
com.minedata.minenavi.navi.TmcSections
import
com.minedata.minenavi.navi.TmcSections
import
com.minedata.minenavi.navi.TurnIconModel
import
com.minedata.minenavi.util.MineNaviUtil
import
com.minedata.minenavi.util.Tools
import
com.sd.maplibrary.R
import
com.sd.maplibrary.bean.DriverRouteBean
import
com.sd.maplibrary.bean.DriverRouteBean
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.core.MapReadyView
import
com.sd.maplibrary.core.basic.OnDriveRoute
import
com.sd.maplibrary.core.basic.OnDriveRoute
import
com.sd.maplibrary.core.basic.mine.MineNai
import
com.sd.maplibrary.core.basic.mine.MineNai
import
com.sd.maplibrary.core.basic.mine.MineNaiParams
import
com.sd.maplibrary.core.basic.mine.MineNaiParams
import
com.sd.maplibrary.core.basic.mine.MineRoutePlans
import
com.sd.maplibrary.databinding.ActivityMineNaiDirBinding
import
com.sd.maplibrary.databinding.ActivityMineNaiDirBinding
import
com.sd.maplibrary.factorys.MapCoreApi
import
com.sd.maplibrary.factorys.MapCoreApi
import
com.sd.maplibrary.intfaces.OnComCan
import
com.sd.maplibrary.intfaces.OnNaviPresenterListener
import
com.sd.maplibrary.intfaces.OnNaviPresenterListener
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import
com.sd.maplibrary.ui.dialog.ExitNaiDialog
import
com.sd.maplibrary.utils.Utils
/**
/**
* 直接开始导航
* 直接开始导航
*/
*/
class
MineNaiDirActivity
:
AppCompatActivity
(),
OnNaviPresenterListener
{
class
MineNaiDirActivity
:
AppCompatActivity
(),
OnNaviPresenterListener
{
private
lateinit
var
binding
:
ActivityMineNaiDirBinding
private
lateinit
var
binding
:
ActivityMineNaiDirBinding
...
@@ -32,6 +47,11 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
...
@@ -32,6 +47,11 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
//获取接口功能实例
//获取接口功能实例
private
var
mapCoreApi
=
MapCoreApi
.
mapCoreApi
private
var
mapCoreApi
=
MapCoreApi
.
mapCoreApi
//四维导航地图工具
private
lateinit
var
mUtils
:
Utils
private
lateinit
var
dialogFragment
:
ExitNaiDialog
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
enableEdgeToEdge
()
enableEdgeToEdge
()
...
@@ -42,9 +62,12 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
...
@@ -42,9 +62,12 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
insets
}*/
}*/
mUtils
=
Utils
()
mUtils
.
init
(
this
)
mineNaiParams
=
intent
.
getParcelableExtra
<
MineNaiParams
>(
"mineNaiParams"
)
mineNaiParams
=
intent
.
getParcelableExtra
<
MineNaiParams
>(
"mineNaiParams"
)
MineNai
.
onNaviPresenterListener
=
this
binding
.
mapMultiView
.
addMapRenderCallback
(
object
:
OnMapReadyLis
{
binding
.
mapMultiView
.
addMapRenderCallback
(
object
:
OnMapReadyLis
{
override
fun
onMapReady
(
mapReadyView
:
MapReadyView
)
{
override
fun
onMapReady
(
mapReadyView
:
MapReadyView
)
{
this
@MineNaiDirActivity
.
mapReadView
=
mapReadyView
this
@MineNaiDirActivity
.
mapReadView
=
mapReadyView
...
@@ -66,19 +89,19 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
...
@@ -66,19 +89,19 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
//开始路径规划
//开始路径规划
mapCoreApi
.
drivingPathPlanning
(
mapCoreApi
.
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
MineNai
.
startNaviFormRouteBase
(
routeBase
,
startPoint
)
MineNai
.
startNaviFormRouteBase
(
routeBase
,
startPoint
,
mapReadView
)
}
}
}
}
)
)
}
}
override
fun
onDestroy
()
{
//
override fun onDestroy() {
super
.
onDestroy
()
//
super.onDestroy()
MineNai
.
stopNavi
()
//
MineNai.stopNavi()
}
//
}
override
fun
onTracking
(
ratio
:
Float
)
{
override
fun
onTracking
(
ratio
:
Float
)
{
binding
.
layoutNavi
.
tmcBarView
.
updateRatio
(
ratio
)
binding
.
layoutNavi
.
tmcBarView
.
updateRatio
(
ratio
)
...
@@ -86,19 +109,179 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
...
@@ -86,19 +109,179 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
}
}
/**
* 刷新导航中的自车位置
*/
fun
showNavingCarPosition
(
ndsPoint
:
NdsPoint
?,
heading
:
Float
)
{
synchronized
(
NativeEnv
.
SyncObject
)
{
if
(
ndsPoint
==
null
)
{
return
}
var
mMapCar
=
MineNai
.
mMapCar
mMapCar
?.
setPositionNds
(
Tools
.
ndsPointToLatLng
(
ndsPoint
))
mMapCar
?.
setHeading
(
heading
)
//刷新小地图自车位置
/* if (mSmallMapCar != null) {
mSmallMapCar!!.orientAngle(heading)
mSmallMapCar!!.setPositionNds(Tools.ndsPointToLatLng(ndsPoint))
}
if (mNaviCompassOverlay != null) {
mNaviCompassOverlay!!.setPositionNds(ndsPoint)
}*/
}
}
override
fun
onSmoothTracking
(
data
:
SmoothNaviData
)
{
override
fun
onSmoothTracking
(
data
:
SmoothNaviData
)
{
val
carHeading
=
if
(
data
!=
null
)
data
.
carHeading
else
MineRoutePlans
.
mRouteBase
!!
.
getStartDirection
()
.
toFloat
()
val
mapHeading
=
if
(
data
!=
null
)
data
.
mapHeading
else
0f
var
mineMap
=
mapReadView
?.
mMineMap
showNavingCarPosition
(
data
.
carPos
,
carHeading
)
mineMap
?.
setHeading
(
mapHeading
)
mineMap
?.
setElevation
(
50.0f
)
mineMap
?.
setFovy
(
35f
)
mineMap
?.
setViewShiftXY
(
0f
,
0.55f
)
mineMap
?.
setNdsPointToCenter
(
data
.
carPos
.
x
,
data
.
carPos
.
y
)
val
zoomLevel
=
mineMap
!!
.
getAutomaticZoomLevelForMineMap
(
0.2f
)
if
(
zoomLevel
!=
-
1f
)
{
mineMap
!!
.
setZoomLevel
(
zoomLevel
)
}
}
/**
* 设置剩余行程距离时间
*/
private
fun
setResidualDistance
(
hour
:
Int
,
distance
:
Int
)
{
val
distanceBean
=
mUtils
.
formatDistance
(
distance
,
false
)
val
timeBean
=
mUtils
.
calcTimeBean
(
hour
)
if
(
binding
.
layoutNavi
.
tvResidualTimeDistance
.
isVisible
)
{
val
stringBuilder
=
StringBuilder
()
stringBuilder
.
append
(
distanceBean
.
distanceValue
).
append
(
distanceBean
.
distanceUnit
)
binding
.
layoutNavi
.
tvResidualTimeDistance
.
setText
(
stringBuilder
.
toString
())
stringBuilder
.
delete
(
0
,
stringBuilder
.
length
)
stringBuilder
// .append("剩余")
.
append
(
if
(
timeBean
.
hour
==
0
)
""
else
"${timeBean.hour}"
)
.
append
(
if
(
timeBean
.
hour
==
0
)
""
else
"小时"
)
.
append
(
"${timeBean.minute}"
)
.
append
(
if
(
timeBean
.
hour
==
0
)
"分钟"
else
"分"
)
binding
.
layoutNavi
.
tvTime
.
setText
(
stringBuilder
.
toString
())
}
}
/**
* 设置到达时间
*/
private
fun
setResidualTime
(
naviProgressData
:
NaviProgressData
?)
{
if
(
naviProgressData
==
null
)
return
val
s_arriveTime
=
MineNaviUtil
.
relativeTimeStringFromNow
(
naviProgressData
.
remainingTime
,
mUtils
.
is24Hour
()
)
var
stringBuilder
=
StringBuilder
()
if
(
s_arriveTime
.
contains
(
"天"
))
{
stringBuilder
// .append("预计")
.
append
(
s_arriveTime
.
substring
(
0
,
s_arriveTime
.
indexOf
(
"天"
)
+
1
)
+
""
)
.
append
(
s_arriveTime
.
substring
(
s_arriveTime
.
indexOf
(
"天"
)
+
1
,
s_arriveTime
.
length
))
.
append
(
"到"
)
}
else
if
(
s_arriveTime
.
contains
(
"日"
))
{
stringBuilder
// .append("预计")
.
append
(
s_arriveTime
.
substring
(
0
,
s_arriveTime
.
indexOf
(
"日"
)
+
1
)
+
""
)
.
append
(
s_arriveTime
.
substring
(
s_arriveTime
.
indexOf
(
"日"
)
+
1
,
s_arriveTime
.
length
))
.
append
(
"到"
)
}
else
{
stringBuilder
// .append("预计")
.
append
(
s_arriveTime
)
.
append
(
"到"
)
}
binding
.
layoutNavi
.
tvArriveTime
.
setText
(
stringBuilder
.
toString
())
}
}
override
fun
onDataUpdated
(
naviProgressData
:
NaviProgressData
)
{
override
fun
onDataUpdated
(
naviProgressData
:
NaviProgressData
)
{
/* mSmallMapViewRouteRect = naviProgressData.remainingBoundingBox
fitRouteInSmallMap()*/
var
mRouteBase
=
MineRoutePlans
.
mRouteBase
setResidualDistance
(
naviProgressData
.
remainingTime
,
naviProgressData
.
routeLength
-
naviProgressData
.
curDistance
)
setResidualTime
(
naviProgressData
)
val
remainingTrafficLightCount
:
Int
=
mRouteBase
?.
calculateTrafficLightCountInDistanceRange
(
naviProgressData
.
curDistance
,
naviProgressData
.
routeLength
)
?:
0
val
statusByRoute
=
RouteExplorer
.
getInstance
().
getStatusByRoute
(
mRouteBase
)
if
(
statusByRoute
!=
null
&&
statusByRoute
.
remainingDistance
<
100
*
1000
)
{
with
(
binding
.
layoutNavi
)
{
ivBottomTrafficLight
.
setVisibility
(
View
.
VISIBLE
)
tvTrafficLightNumber
.
setVisibility
(
View
.
VISIBLE
)
tvTrafficLightNumber
.
setText
(
remainingTrafficLightCount
.
toString
()
+
""
)
}
}
else
{
with
(
binding
.
layoutNavi
)
{
ivBottomTrafficLight
.
setVisibility
(
View
.
GONE
)
tvTrafficLightNumber
.
setVisibility
(
View
.
GONE
)
}
}
}
}
override
fun
onTiBarUpdated
(
tmcSections
:
TmcSections
)
{
override
fun
onTiBarUpdated
(
tmcSections
:
TmcSections
)
{
binding
.
layoutNavi
.
tmcBarView
.
post
{
if
(
tmcSections
!=
null
)
{
binding
.
layoutNavi
.
tmcBarView
.
setTmcSections
(
tmcSections
)
}
}
}
}
override
fun
onTextChanged
(
guidanceText
:
GuidanceText
)
{
override
fun
onTextChanged
(
guidanceText
:
GuidanceText
)
{
if
(
guidanceText
?.
turnIconModel
?.
valid
?:
false
)
{
when
(
guidanceText
?.
turnIconModel
?.
type
)
{
//交叉路口、、环岛
TurnIconModel
.
Type
.
junction
,
TurnIconModel
.
Type
.
rotary
->
{
// println("----------- 转角和环岛 iconId= ${guidanceText.turnIconModel.iconId}")
// println("----------- 转角和环岛 toDirection= ${guidanceText.turnIconModel.toDirection}")
binding
.
layoutNavi
.
turnIconView
.
setTurnIconModel
(
guidanceText
.
turnIconModel
)
}
TurnIconModel
.
Type
.
iconId
->
{
// 图片类型
// println("----------- iconId= ${guidanceText.turnIconModel.iconId}")
// println("----------- toDirection = ${guidanceText.turnIconModel.toDirection}")
binding
.
layoutNavi
.
turnIconView
.
setTurnIconId
(
guidanceText
.
turnIconModel
.
iconId
)
}
}
}
else
{
binding
.
layoutNavi
.
turnIconView
.
setTurnIconId
(
// guidanceText?.turnIconModel?.iconId ?: 0
R
.
drawable
.
go_here
)
}
with
(
binding
.
layoutNavi
)
{
tvTurnAction
.
setText
(
guidanceText
?.
action
)
tvTurnRoadName
.
setText
(
mUtils
.
toDBC
(
guidanceText
?.
name
))
}
}
}
override
fun
onDistanceChanged
(
distance
:
Int
)
{
override
fun
onDistanceChanged
(
distance
:
Int
)
{
val
distanceBean
:
DistanceBean
=
mUtils
.
formatDistance
(
distance
,
false
)
val
distanceToTurnInJunctionViewSpannable
=
SpannableBuilder
.
create
(
this
)
.
append
(
distanceBean
.
distanceValue
,
R
.
dimen
.
sp_24
,
R
.
color
.
text_black
)
.
append
(
distanceBean
.
distanceUnit
,
R
.
dimen
.
sp_14
,
R
.
color
.
text_black
)
.
build
()
binding
.
layoutNavi
.
tvTurnDistance
.
setText
(
distanceToTurnInJunctionViewSpannable
)
}
}
override
fun
onArriveDestination
()
{
override
fun
onArriveDestination
()
{
...
@@ -107,5 +290,24 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
...
@@ -107,5 +290,24 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
override
fun
onNaviEnded
()
{
override
fun
onNaviEnded
()
{
}
}
override
fun
dispatchKeyEvent
(
event
:
KeyEvent
):
Boolean
{
if
((
event
.
getKeyCode
()
==
KeyEvent
.
KEYCODE_BACK
)
||
event
.
getKeyCode
()
==
KeyEvent
.
KEYCODE_HOME
)
{
dialogFragment
=
ExitNaiDialog
()
dialogFragment
.
onComCan
=
object
:
OnComCan
{
override
fun
onComfirm
()
{
MineNai
.
stopNavi
()
finish
()
}
override
fun
onCancel
()
{
}
}
dialogFragment
.
show
(
supportFragmentManager
,
"exit"
)
return
true
}
else
{
return
super
.
dispatchKeyEvent
(
event
)
}
}
}
}
\ No newline at end of file
maplibrary/src/main/java/com/sd/maplibrary/ui/dialog/ExitNaiDialog.kt
0 → 100644
View file @
d5450204
package
com.sd.maplibrary.ui.dialog
import
android.app.Dialog
import
android.content.DialogInterface
import
android.os.Bundle
import
androidx.appcompat.app.AlertDialog
import
androidx.fragment.app.DialogFragment
import
com.sd.maplibrary.intfaces.OnComCan
class
ExitNaiDialog
:
DialogFragment
()
{
var
onComCan
:
OnComCan
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
isCancelable
=
false
}
override
fun
onCreateDialog
(
savedInstanceState
:
Bundle
?):
Dialog
{
return
AlertDialog
.
Builder
(
requireContext
())
// dialog.setIcon(android.R.drawable.ic_dialog_info)
.
setTitle
(
"提示"
)
.
setMessage
(
"确定退出导航"
)
.
setPositiveButton
(
"确定"
)
{
dialog1
:
DialogInterface
?,
which
:
Int
->
onComCan
?.
onComfirm
()
}
.
setNegativeButton
(
"取消"
)
{
dialog
,
_
->
onComCan
?.
onCancel
()
}.
create
()
}
}
\ No newline at end of file
maplibrary/src/main/java/com/sd/maplibrary/utils/Utils.java
0 → 100644
View file @
d5450204
This diff is collapsed.
Click to expand it.
maplibrary/src/main/res/drawable-xhdpi/go_here.png
0 → 100644
View file @
d5450204
1.31 KB
maplibrary/src/main/res/layout/activity_mine_nai_dir.xml
View file @
d5450204
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
android:layout_width=
"@dimen/map_left_top_widget"
android:layout_width=
"@dimen/map_left_top_widget"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_marginLeft=
"@dimen/dp_10"
android:layout_marginTop=
"@dimen/dp_
1
0"
android:layout_marginTop=
"@dimen/dp_
3
0"
/>
/>
</RelativeLayout>
</RelativeLayout>
\ No newline at end of file
maplibrary/src/main/res/values/dimens.xml
View file @
d5450204
...
@@ -437,7 +437,7 @@
...
@@ -437,7 +437,7 @@
<dimen
name=
"nz_px_398"
>
191.04dp
</dimen>
<dimen
name=
"nz_px_398"
>
191.04dp
</dimen>
<dimen
name=
"nz_px_399"
>
191.52dp
</dimen>
<dimen
name=
"nz_px_399"
>
191.52dp
</dimen>
<dimen
name=
"nz_px_400"
>
192.00dp
</dimen>
<dimen
name=
"nz_px_400"
>
192.00dp
</dimen>
<dimen
name=
"map_left_top_widget"
>
2
3
0dp
</dimen>
<dimen
name=
"map_left_top_widget"
>
2
6
0dp
</dimen>
<dimen
name=
"fab_margin"
>
16dp
</dimen>
<dimen
name=
"fab_margin"
>
16dp
</dimen>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment