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

模拟召车

parent f2f64488
{ {
"rs": [ "rs": [
[116.5024625,39.8090317],[116.50246452571352,39.809032676237166],[116.50246655142706,39.80903365247434],[116.5024685771406,39.80903462871151],[116.50247060285415,39.80903560494868],[116.50247262856767,39.80903658118585],[116.50247465428123,39.809037557423025],[116.50247667999476,39.80903853366019],[116.5024787057083,39.80903950989737],[116.50248073142184,39.809040486134535],[116.50248275713537,39.80904146237171],[116.50248478284891,39.80904243860888],[116.50248554937339,39.80904280015562],[116.50248625256704,39.8090431183115],[116.50248696285315,39.809043426953984],[116.50248768001542,39.80904372598901],[116.50248840383534,39.80904401532554],[116.50248913409246,39.80904429487541],[116.50248987056432,39.80904456455347],[116.50249061302658,39.809044824277564],[116.50249136125309,39.80904507396862],[116.50249211501594,39.809045313550534],[116.5024928740855,39.809045542950344],[116.50249363823058,39.809045762098165],[116.50249440721838,39.80904597092725],[116.50249518081468,39.809046169374014],[116.50249595878384,39.80904635737795],[116.50249674088887,39.80904653488182],[116.50249752689155,39.80904670183156],[116.50249831655243,39.809046858176316],[116.50249910963099,39.80904700386845],[116.50249990588564,39.8090471388636],[116.50250070507383,39.80904726312063],[116.50250150695214,39.8090473766017],[116.50250231127629,39.80904747927224],[116.50250311780128,39.809047571100976],[116.50250392628145,39.80904765205992],[116.5025047364705,39.80904772212444],[116.50250554812165,39.80904778127317],[116.50250636098767,39.8090478294881],[116.50250717482095,39.809047866754554],[116.50250798937358,39.80904789306116],[116.50250880439745,39.80904790839994],[116.50250961964429,39.809047912766175],[116.50251043486577,39.80904790615856],[116.50251124981355,39.809047888579094],[116.50251206423943,39.80904786003317],[116.50251287789527,39.80904782052943],[116.50251369053326,39.80904777007994],[116.50251450190586,39.80904770870008],[116.5025153117659,39.80904763640851],[116.50251611986671,39.80904755322727],[116.50251692596213,39.8090474591817],[116.5025177298066,39.809047354300446],[116.50251853115527,39.80904723861545],[116.50251932976404,39.80904711216196],[116.50252012538965,39.80904697497849],[116.50252091778974,39.80904682710682],[116.50252170672294,39.80904666859201],[116.50252249194894,39.80904649948232],[116.50252327322852,39.80904631982929],[116.50252405032373,39.80904612968762],[116.50252482299786,39.809045929115264],[116.50252559101551,39.809045718173266],[116.50252635414277,39.80904549692593],[116.50252711214716,39.80904526544063],[116.50252786479781,39.80904502378788],[116.50252861186543,39.80904477204128],[116.50252935312245,39.80904451027753],[116.50253008834312,39.80904423857637],[116.50253081730344,39.80904395702054],[116.50253153978137,39.80904366569581],[116.50253225555686,39.80904336469095],[116.50253296441184,39.80904305409761],[116.50253366613042,39.80904273401042],[116.50253436049884,39.80904240452689],[116.50253504730557,39.80904206574736],[116.50253572634142,39.809041717775045],[116.50253639739954,39.80904136071593],[116.50253706027554,39.80904099467878],[116.50253771476747,39.8090406197751],[116.50253836067598,39.809040236119095],[116.50253899780434,39.80903984382761],[116.50253962595843,39.80903944302016],[116.50254024494696,39.809039033818834],[116.50254085458133,39.809038616348246],[116.50254145467586,39.80903819073561],[116.50254204504778,39.80903775711055],[116.50254262551721,39.80903731560515],[116.50254319590738,39.80903686635389],[116.5025437560445,39.80903640949364],[116.502544305758,39.809035945163544],[116.50254484488038,39.80903547350505],[116.50254537324744,39.809034994661815],[116.50254589069823,39.80903450877972],[116.50254639707514,39.80903401600677],[116.5025468922239,39.80903351649306],[116.50254873251244,39.80903121870854],[116.50255048525985,39.80902903906369],[116.50255215519805,39.809026971172585],[116.50255374705901,39.80902500864927],[116.50255526557463,39.809023145107844],[116.50255671547697,39.80902137416238],[116.50255810149788,39.80901968942692],[116.50255942836942,39.80901808451557],[116.5025607008234,39.80901655304239],[116.50256192359191,39.80901508862146],[116.50256310140682,39.80901368486684],[116.50256423900012,39.8090123353926],[116.50256534110378,39.80901103381284],[116.50256641244967,39.80900977374158],[116.50256745776986,39.809008548792946],[116.50256848179617,39.80900735258098],[116.50256948926067,39.80900617871975],[116.50257048489526,39.80900502082334],[116.50257147343187,39.809003872505826],[116.50257245960252,39.80900272738129],[116.50257344813913,39.809001579063775],[116.50257444377361,39.80900042116737],[116.50257545123799,39.80899924730615],[116.50257647526416,39.80899805109418],[116.50257752058411,39.80899682614553],[116.50257859192976,39.80899556607427],[116.5025796940331,39.808994264494494],[116.50258083162609,39.808992915020255],[116.50258200944063,39.80899151126563],[116.50258323220868,39.808990046844684],[116.50258450466227,39.808988515371496],[116.50258583153325,39.80898691046014],[116.50258721755367,39.80898522572469],[116.5025886674554,39.80898345477921],[116.50259018597043,39.808981591237774],[116.5025917778307,39.808979628714454],[116.50259344776819,39.80897756082334],[116.50259520051483,39.80897538117847],[116.50259704080258,39.80897308339394],
[ [
116.50272049813115, 116.50259710003452,
39.808819367280776 39.80897313092863
], ],
[ [
116.50272992640353, 116.50260652829927,
39.80880761892525 39.80896138259575
], ],
[ [
116.50273935467594, 116.50261595656403,
39.808795870567714 39.80894963426086
], ],
[ [
116.50274878294832, 116.50262538482876,
39.80878412220816 39.80893788592398
], ],
[ [
116.50275821122071, 116.50263481309352,
39.80877237384661 39.80892613758509
], ],
[ [
116.50276763949313, 116.50264424135828,
39.80876062548305 39.80891438924419
], ],
[ [
116.5027770677655, 116.50265366962303,
39.80874887711747 39.80890264090128
], ],
[ [
116.5027864960379, 116.50266309788779,
39.8087371287499 39.80889089255635
],
[
116.50267252615251,
39.808879144209435
],
[
116.50268195441728,
39.808867395860496
],
[
116.50269138268203,
39.80885564750955
],
[
116.50270081094675,
39.8088438991566
],
[
116.50271023921152,
39.80883215080165
],
[
116.50271966747628,
39.80882040244469
],
[
116.50272909574102,
39.8088086540857
],
[
116.50273852400579,
39.80879690572473
],
[
116.50274795227055,
39.80878515736174
],
[
116.50275738053527,
39.808773408996736
],
[
116.50276680880005,
39.80876166062974
],
[
116.5027762370648,
39.80874991226073
],
[
116.50278566532953,
39.80873816388972
], ],
[ [
116.50279420230066, 116.50279420230066,
......
This diff is collapsed.
[{"id":"3743379f-ddea-4816-9a34-e3b699810c50","deviceCode":"C-HK-38","deviceId":"DW17-XJ-003-034","intersectionCode":"yz-17","reportTime":1758163422384,"accessTime":1758163345458,"receiveTime":1758163422384,"participants":[{"ptcId":"50332456-3030-3030-3530-303334533955","ptcType":"pedestrian","longitude":"116.50230306","latitude":"39.80994386","heading":145,"speed":8.14,"gear":0,"color":0}]}]
[{"id":"3743379f-ddea-4816-9a34-e3b699810c50","deviceCode":"C-HK-38","deviceId":"DW17-XJ-003-034","intersectionCode":"yz-17","reportTime":1758163422384,"accessTime":1758163345458,"receiveTime":1758163422384,"participants":[{"ptcId":"50332456-3030-3030-3530-303334533955","ptcType":"pedestrian","longitude":"116.50226374","latitude":"39.80999206","heading":145,"speed":8.14,"gear":0,"color":0}]}]
[{"id":"3743379f-ddea-4816-9a34-e3b699810c50","deviceCode":"C-HK-38","deviceId":"DW17-XJ-003-034","intersectionCode":"yz-17","reportTime":1758163422384,"accessTime":1758163345458,"receiveTime":1758163422384,"participants":[{"ptcId":"50332456-3030-3030-3530-303334533955","ptcType":"pedestrian","longitude":"116.50220032","latitude":"39.80999713","heading":145,"speed":8.14,"gear":0,"color":0}]}]
[{"id":"3743379f-ddea-4816-9a34-e3b699810c50","deviceCode":"C-HK-38","deviceId":"DW17-XJ-003-034","intersectionCode":"yz-17","reportTime":1758163422384,"accessTime":1758163345458,"receiveTime":1758163422384,"participants":[{"ptcId":"50332456-3030-3030-3530-303334533955","ptcType":"pedestrian","longitude":"116.50204936866068","latitude":"39.809955271625505","heading":145,"speed":8.14,"gear":0,"color":0}]}]
[{"id":"3743379f-ddea-4816-9a34-e3b699810c50","deviceCode":"C-HK-38","deviceId":"DW17-XJ-003-034","intersectionCode":"yz-17","reportTime":1758163422384,"accessTime":1758163345458,"receiveTime":1758163422384,"participants":[{"ptcId":"50332456-3030-3030-3530-303334533955","ptcType":"pedestrian","longitude":"116.50204936866068","latitude":"39.809955271625505","heading":145,"speed":8.14,"gear":0,"color":0}]}]
\ No newline at end of file
This diff is collapsed.
...@@ -19,13 +19,14 @@ data class AvpStatuBean( ...@@ -19,13 +19,14 @@ data class AvpStatuBean(
) )
data class DrivenDecision( data class DrivenDecision(
val endPoint: EndPoint, val endPoint: EndPoint,//终点
// val progress: Any, // val progress: Any,
// val routing: Any, // val routing: Any,
val startPoint: StartPoint, val startPoint: StartPoint,//起点
val trajectory: Trajectory val trajectory: Trajectory //// 全局路径
) )
//车位信息
data class Space( data class Space(
val centerLatitude: Double, val centerLatitude: Double,
val centerLongitude: Double, val centerLongitude: Double,
...@@ -97,13 +98,14 @@ data class StartPoint( ...@@ -97,13 +98,14 @@ data class StartPoint(
val verticalAcce: Any val verticalAcce: Any
) )
// 全局路径
data class Trajectory( data class Trajectory(
val arrived: Boolean, val arrived: Boolean,
val endPoint: EndPointX, val endPoint: EndPointX,
val length: Double, val length: Double,
val pathArray: Any, val pathArray: Any,
val pathLine: String, val pathLine: String,
val points: List<Point>, val points: List<Point>,// 全局路径 02坐标系
val startPoint: StartPointX, val startPoint: StartPointX,
val time: Int val time: Int
) )
......
...@@ -20,6 +20,7 @@ import com.sd.cavphmi.base.BaseActivity ...@@ -20,6 +20,7 @@ import com.sd.cavphmi.base.BaseActivity
import com.sd.cavphmi.base.MyBaseViewModel import com.sd.cavphmi.base.MyBaseViewModel
import com.sd.cavphmi.bean.AvpStatuBean import com.sd.cavphmi.bean.AvpStatuBean
import com.sd.cavphmi.bean.CarVehicle import com.sd.cavphmi.bean.CarVehicle
import com.sd.cavphmi.bean.PerceptionBean
import com.sd.cavphmi.databinding.ActivityMainBinding import com.sd.cavphmi.databinding.ActivityMainBinding
import com.sd.cavphmi.highmap.HighMapApi import com.sd.cavphmi.highmap.HighMapApi
import com.sd.cavphmi.highmap.LockStatu import com.sd.cavphmi.highmap.LockStatu
...@@ -274,6 +275,10 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>() { ...@@ -274,6 +275,10 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>() {
} }
} }
} }
//召车的时候临时开一下
mainVm.targetPre.observe(this) {
showPre(it)
}
} }
//显示车辆位姿UI //显示车辆位姿UI
...@@ -307,14 +312,19 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>() { ...@@ -307,14 +312,19 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>() {
//联网车辆感知物 //联网车辆感知物
private fun getTarget() { private fun getTarget() {
mainVm.subTarget().observe(this) { it -> mainVm.subTarget().observe(this) { it ->
if (it.getOrNull(0) == null) { showPre(it)
}
}
return@observe /**绘制感知物****/
private fun showPre(it: PerceptionBean) {
if (it.getOrNull(0) == null) {
return
} }
var parts = it.flatMap { it.participants } var parts = it.flatMap { it.participants }
if (parts.count() == 0) { if (parts.count() == 0) {
HighMapApi.clearPtcData() HighMapApi.clearPtcData()
return@observe return
} }
var ptcList = parts.map { var ptcList = parts.map {
var unityPtc = UnityPtc().apply { var unityPtc = UnityPtc().apply {
...@@ -333,7 +343,6 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>() { ...@@ -333,7 +343,6 @@ class MainActivity : BaseActivity<ActivityMainBinding, MyBaseViewModel>() {
} }
HighMapApi.setPtcData(ptcList) HighMapApi.setPtcData(ptcList)
} }
}
//开启v2x预警 //开启v2x预警
private fun getV2x() { private fun getV2x() {
......
...@@ -110,7 +110,7 @@ class UnityFragment : Fragment() { ...@@ -110,7 +110,7 @@ class UnityFragment : Fragment() {
// HighMapApi.setCameraAngle(90f) // HighMapApi.setCameraAngle(90f)
// HighMapApi.setCameraDistance(80f) // HighMapApi.setCameraDistance(80f)
HighMapApi.setCameraAngle(30f) HighMapApi.setCameraAngle(30f)
HighMapApi.setCameraDistance(5f) HighMapApi.setCameraDistance(8f)
// } catch (e: Exception) { // } catch (e: Exception) {
// } // }
// }, 300) // }, 300)
......
...@@ -103,7 +103,7 @@ class MainVm @Inject constructor( ...@@ -103,7 +103,7 @@ class MainVm @Inject constructor(
lateinit var mockVM: MockVM lateinit var mockVM: MockVM
//是否需要模拟 //是否需要模拟
var isMock = false var isMock = true
//车辆位姿数据 //车辆位姿数据
// var carVehicle = MutableLiveData<CarVehicle>() // var carVehicle = MutableLiveData<CarVehicle>()
...@@ -221,10 +221,10 @@ class MainVm @Inject constructor( ...@@ -221,10 +221,10 @@ class MainVm @Inject constructor(
) { ) {
viewModelScope.launch { viewModelScope.launch {
if (data.isNotEmpty()) { if (data.isNotEmpty()) {
// println("-------AVP状态 = ${data}") println("-------AVP状态 = ${data}")
try { try {
var result = gson.fromJson<AvpStatuBean>(data, AvpStatuBean::class.java) var result = gson.fromJson<AvpStatuBean>(data, AvpStatuBean::class.java)
if (result.haulingStageState != null) { if (result.haulingStageState != null) {//businessType
FileSdCardUtils.writeFileToDownload(data, "avp_status.txt") FileSdCardUtils.writeFileToDownload(data, "avp_status.txt")
} }
avpStatu.emit(result) avpStatu.emit(result)
...@@ -256,7 +256,7 @@ class MainVm @Inject constructor( ...@@ -256,7 +256,7 @@ class MainVm @Inject constructor(
if (isMock) { if (isMock) {
// mockVM.subVehicle(carVehicle) // mockVM.subVehicle(carVehicle)
// mockVM.onVehicleMockPark(carVehicle) // mockVM.onVehicleMockPark(carVehicle)
mockVM.onVehicleMockCall(carVehicle) mockVM.onVehicleMockCall(carVehicle,targetPre)
} else { } else {
var url = "${MyContants.HOST}/api/avpweb/hmi/monitor/v1/monitorDrivenStatus" var url = "${MyContants.HOST}/api/avpweb/hmi/monitor/v1/monitorDrivenStatus"
carCb.url = url carCb.url = url
...@@ -284,7 +284,7 @@ class MainVm @Inject constructor( ...@@ -284,7 +284,7 @@ class MainVm @Inject constructor(
// println("-----车辆位姿 = ${data}") // println("-----车辆位姿 = ${data}")
try { try {
var result = gson.fromJson<CarVehicle>(data, CarVehicle::class.java) var result = gson.fromJson<CarVehicle>(data, CarVehicle::class.java)
if (result.businessStatus!=null){ if (result.vehiclePos!=null){
FileSdCardUtils.writeFileToDownload(data, "CarVehicle.txt") FileSdCardUtils.writeFileToDownload(data, "CarVehicle.txt")
} }
carVehicle.value = result carVehicle.value = result
......
...@@ -238,7 +238,7 @@ class MapOpt @Inject constructor( ...@@ -238,7 +238,7 @@ class MapOpt @Inject constructor(
mMineMap?.setPointToCenter(point.x, point.y) mMineMap?.setPointToCenter(point.x, point.y)
} else { } else {
if (drawAreaCount.div(50) == 0) { if (drawAreaCount.div(50) == 0) {
println("----------drawAreaCount = $drawAreaCount") // println("----------drawAreaCount = $drawAreaCount")
var lon1 = car.vehiclePos!!.get(0) var lon1 = car.vehiclePos!!.get(0)
var lat1 = car.vehiclePos!!.get(1) var lat1 = car.vehiclePos!!.get(1)
var lon2 = sLatLngs!!.last().x.div(100000.0) var lon2 = sLatLngs!!.last().x.div(100000.0)
...@@ -302,14 +302,14 @@ class MapOpt @Inject constructor( ...@@ -302,14 +302,14 @@ class MapOpt @Inject constructor(
HighMapApi.setParkComplete(true) HighMapApi.setParkComplete(true)
} else { } else {
HighMapApi.setCameraAngle(30f) HighMapApi.setCameraAngle(30f)
HighMapApi.setCameraDistance(6f) HighMapApi.setCameraDistance(8f)
} }
// if (isReversePark) // if (isReversePark)
// return // return
// isReversePark = true // isReversePark = true
} else { } else {
HighMapApi.setCameraAngle(30f) HighMapApi.setCameraAngle(30f)
HighMapApi.setCameraDistance(6f) HighMapApi.setCameraDistance(8f)
} }
} }
......
...@@ -91,10 +91,10 @@ class MockVM @Inject constructor( ...@@ -91,10 +91,10 @@ class MockVM @Inject constructor(
addEndMarker(LatLng(39.809039362307594, 116.50254394816011)) addEndMarker(LatLng(39.809039362307594, 116.50254394816011))
//用矩形框柱 //用矩形框柱
drawEndArea( drawEndArea(
116.50238005214746,
39.81014469509955, 39.81014469509955,
116.50254394816011, 116.50238005214746,
39.809039362307594, 39.809039362307594,
116.50254394816011,
) )
//画出全局路径 //画出全局路径
var lines = mRoutes.rs.map { var lines = mRoutes.rs.map {
...@@ -159,7 +159,7 @@ class MockVM @Inject constructor( ...@@ -159,7 +159,7 @@ class MockVM @Inject constructor(
// } // }
// HighMapApi.setLockStatus(lockStatu) // HighMapApi.setLockStatus(lockStatu)
//开始泊车 //开始泊车
var parkStr = FileIoUtils.getAsset(context, "mock/parkpath.txt") //Qgis里取的点和四维取得点混合 var parkStr = FileIoUtils.getAsset(context, "mock/parkpath.txt")
val parkPath = gson.fromJson<ParkPath>(parkStr, ParkPath::class.java) val parkPath = gson.fromJson<ParkPath>(parkStr, ParkPath::class.java)
//改变镜头角度 //改变镜头角度
HighMapApi.setCameraAngle(60f) HighMapApi.setCameraAngle(60f)
...@@ -239,49 +239,99 @@ class MockVM @Inject constructor( ...@@ -239,49 +239,99 @@ class MockVM @Inject constructor(
} }
fun drawEndArea(lat1: Double, lon1: Double, lat2: Double, lon2: Double) { fun drawEndArea(lat1: Double, lon1: Double, lat2: Double, lon2: Double) {
var minLat = Math.min(lat1, lat2).times(100000).toInt() - 10 val MU = 100000
var maxLat = Math.max(lat1, lat2).times(100000).toInt() + 10
var minLon = minOf(lon1, lon2).times(100000).toInt() - 10 var minLat = Math.min(lat1, lat2).times(MU).toInt() - 100
var maxLon = maxOf(lon1, lon2).times(100000).toInt() + 10 var maxLat = Math.max(lat1, lat2).times(MU).toInt() + 100
var minLon = Math.min(lon1, lon2).times(MU).toInt() - 10
var maxLon = Math.max(lon1, lon2).times(MU).toInt() + 10
var rect = Rect( var rect = Rect(
minLon, minLat, minLon, minLat, maxLon, maxLat
maxLon, maxLat
) )
mMineMap?.fitWorldArea(rect) mMineMap?.fitWorldArea(rect)
} }
//召车 航向角 238.38134765625 //召车 航向角 238.38134765625
fun onVehicleMockCall( fun onVehicleMockCall(
carVehicle: MutableStateFlow<CarVehicle> carVehicle: MutableStateFlow<CarVehicle>,
targetPre: MutableLiveData<PerceptionBean>?
) { ) {
viewModelScope.launch { viewModelScope.launch {
var cCar: CarVehicle //初始镜头角度
HighMapApi.setCameraAngle(90f)
HighMapApi.setCameraDistance(20f)
var gson = Gson() delay(3000)
var str =
FileIoUtils.getAsset(context, "mock/Car_fangzhen_call.txt")
val mRoutes = gson.fromJson<MRoutes>(str, MRoutes::class.java)
//2旁车辆占用
var spinfos = listOf(Spinfo().apply {
code = "B016"
state = true
}, Spinfo().apply {
code = "B018"
state = true
})
HighMapApi.setParkStatu(ParkStatu(spinfos))
delay(5000)
var cCar: CarVehicle
var gson = Gson()
//画局部图小车 //画局部图小车
drawNavingCar(Tools.latLngToPoint(LatLng(39.80881912, 116.50272019))) drawNavingCar(Tools.latLngToPoint(LatLng(39.8090317, 116.5024625)))
//画局部图路径
smallLineMock(mRoutes)
//画终点 //画终点
addEndMarker(LatLng(39.809955271, 116.50204936)) addEndMarker(LatLng(39.809955271, 116.50204936))
//用矩形框柱 //用矩形框柱
drawEndArea( drawEndArea(
39.80881912, 39.8090317,
116.50272019, 116.5024625,
39.809955271, 39.809955271625505,
116.50204936 116.50204936866068
)
//挂前进挡
CarPanelBean.instance.tapPos.set(2)
//开始出库
/* var callStr = FileIoUtils.getAsset(context, "mock/callpath.txt")
val callPath = gson.fromJson<ParkPath>(callStr, ParkPath::class.java)
CarPanelBean.instance.speed.set(5)//减速
var forword = callPath.result.routes.find { it.gear == 3 }
forword?.polyline?.forEach { poly ->
cCar = CarVehicle().apply {
this.vehiclePos = listOf(poly.get(0), poly.get(1), poly.get(3))
}
//更新主车位置
carVehicle.value = cCar
//更新小地图小车
showNavingCarPosition(
Tools.latLngToNdsPoint(
LatLng(
cCar.vehiclePos!!.get(1),
cCar.vehiclePos!!.get(0)
)
),
cCar.vehiclePos!!.get(2).toFloat()
) )
delay(200)
}*/
var str =
FileIoUtils.getAsset(context, "mock/Car_fangzhen_call.txt")
val mRoutes = gson.fromJson<MRoutes>(str, MRoutes::class.java)
//生成局部图路径
smallLineMock(mRoutes)
//画出全局路径 //画出全局路径
var lines = mRoutes.rs.map { var lines = mRoutes.rs.map {
AllLine(it[1], it[0]) AllLine(it[1], it[0])
} }
HighMapApi.setCarNavPath(lines, showdistance = 200) HighMapApi.setCarNavPath(lines, showdistance = 200)
//开始跟车
HighMapApi.setCameraAngle(30f)
HighMapApi.setCameraDistance(8f)
//加速
CarPanelBean.instance.speed.set(25)
//模拟车辆移动 //模拟车辆移动
var head = 0.0 var head = 0.0
var oldHead = 0.0 var oldHead = 0.0
...@@ -295,16 +345,17 @@ class MockVM @Inject constructor( ...@@ -295,16 +345,17 @@ class MockVM @Inject constructor(
LatLng(p1[1], p1[0]), LatLng(p1[1], p1[0]),
LatLng(pc[1], pc[0]) LatLng(pc[1], pc[0])
) )
} // bearing = head
if ((head - oldHead).absoluteValue < 45) { // println("-------- head = ${head} oldHead = ${oldHead} ${(head - oldHead).absoluteValue.toInt()}")
bearing = head // if (oldHead!=0.0 && (head - oldHead).absoluteValue.toInt() < 45) {
} // bearing = head
// }
cCar = CarVehicle().apply { cCar = CarVehicle().apply {
this.vehiclePos = listOf(it[0], it[1], bearing) this.vehiclePos = listOf(it[0], it[1], head)
} }
oldHead = head
//更新主车位置 //更新主车位置
carVehicle.value = cCar carVehicle.value = cCar
oldHead = head
//更新小地图小车 //更新小地图小车
showNavingCarPosition( showNavingCarPosition(
Tools.latLngToNdsPoint( Tools.latLngToNdsPoint(
...@@ -317,21 +368,35 @@ class MockVM @Inject constructor( ...@@ -317,21 +368,35 @@ class MockVM @Inject constructor(
) )
//更新小地图路径 //更新小地图路径
upSmallLine(index, mRoutes) upSmallLine(index, mRoutes)
}
//用矩形框柱 //用矩形框柱
drawEndArea( // drawEndArea(
it[1], it[0], // it[1], it[0],
39.809955271, // 39.809955271,
116.50204936 // 116.50204936
) // )
delay(300) delay(200)
} }
//消除全局路径 //消除全局路径
HighMapApi.setCarNavPath(listOf()) HighMapApi.setCarNavPath(listOf())
//删除终点mark //删除终点mark
deleteEndMarker() deleteEndMarker()
//挂P档 //挂N档等人
CarPanelBean.instance.tapPos.set(1) CarPanelBean.instance.tapPos.set(0)
CarPanelBean.instance.speed.set(0) CarPanelBean.instance.speed.set(0)
//上人
val parts = mutableListOf<String>()
FileIoUtils.getAssetMock(context, "mock/call_shangren.txt", parts)
parts.forEach { str ->
if (str.isNotEmpty()) {
var bean = parseDataBean(str, PerceptionBean::class.java)
if (bean != null) {
targetPre?.value = bean
delay(500)
}
}
}
HighMapApi.clearPtcData()
} }
} }
......
...@@ -117,13 +117,12 @@ ...@@ -117,13 +117,12 @@
android:orientation="horizontal"> android:orientation="horizontal">
<Button <Button
android:id="@+id/bt_spaceinfo" android:id="@+id/bt_spaceinfo"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="车位占用情况" android:text="车位占用情况"
android:visibility="visible" /> android:visibility="gone" />
<Button <Button
android:id="@+id/bt_avpstatu" android:id="@+id/bt_avpstatu"
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_1" android:id="@+id/ll_1"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="25dp" android:layout_height="23dp"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:orientation="horizontal" android:orientation="horizontal"
android:visibility="visible"> android:visibility="visible">
...@@ -79,16 +79,17 @@ ...@@ -79,16 +79,17 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginLeft="3dp" android:layout_marginLeft="3dp"
android:background="@color/text_blue" android:background="@color/text_blue"
android:text="感知物" android:text="感知物" android:gravity="center"
android:textColor="@color/white" /> android:textColor="@color/white" />
<TextView <TextView
android:id="@+id/bt_v2x" android:id="@+id/bt_v2x"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginLeft="5dp" android:layout_marginLeft="3dp"
android:background="@color/text_blue" android:background="@color/text_blue"
android:text="V2X预警开始" android:text="V2X预警开始"
android:gravity="center"
android:textColor="@color/white" /> android:textColor="@color/white" />
...@@ -96,9 +97,10 @@ ...@@ -96,9 +97,10 @@
android:id="@+id/bt_avpStatu" android:id="@+id/bt_avpStatu"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginLeft="5dp" android:layout_marginLeft="3dp"
android:background="@color/text_blue" android:background="@color/text_blue"
android:text="AVP状态" android:text="AVP状态"
android:gravity="center"
android:textColor="@color/white" /> android:textColor="@color/white" />
<TextView <TextView
...@@ -149,18 +151,20 @@ ...@@ -149,18 +151,20 @@
android:id="@+id/warn_car" android:id="@+id/warn_car"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginLeft="5dp" android:layout_marginLeft="3dp"
android:background="@color/text_blue" android:background="@color/text_blue"
android:text="预警车" android:text="预警车"
android:gravity="center"
android:textColor="@color/white" /> android:textColor="@color/white" />
<TextView <TextView
android:id="@+id/warn_peo" android:id="@+id/warn_peo"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginLeft="5dp" android:layout_marginLeft="3dp"
android:background="@color/text_blue" android:background="@color/text_blue"
android:text="预警人" android:text="预警人"
android:gravity="center"
android:textColor="@color/white" /> android:textColor="@color/white" />
</LinearLayout> </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