修改轨迹回放功能
This commit is contained in:
parent
b69f4fc9c6
commit
06993b6a22
@ -110,13 +110,14 @@ class TaskDownloadScope(
|
|||||||
downloadData.postValue(taskBean)
|
downloadData.postValue(taskBean)
|
||||||
if (status != FileDownloadStatus.LOADING && status != FileDownloadStatus.IMPORTING) {
|
if (status != FileDownloadStatus.LOADING && status != FileDownloadStatus.IMPORTING) {
|
||||||
val realm = realmOperateHelper.getRealmDefaultInstance()
|
val realm = realmOperateHelper.getRealmDefaultInstance()
|
||||||
Log.e("jingo", "数据下载更新状态 任务link数量:${taskBean.hadLinkDvoList.size}")
|
// Log.e("jingo", "数据下载更新状态 原${}")
|
||||||
realm.executeTransaction { r ->
|
realm.executeTransaction { r ->
|
||||||
// realm.insertOrUpdate(taskBean)
|
// realm.insertOrUpdate(taskBean)
|
||||||
val newTask =
|
val newTask =
|
||||||
realm.where(TaskBean::class.java).equalTo("id", taskBean.id).findFirst()
|
realm.where(TaskBean::class.java).equalTo("id", taskBean.id).findFirst()
|
||||||
newTask?.let {
|
newTask?.let {
|
||||||
it.syncStatus = taskBean.syncStatus
|
it.syncStatus = taskBean.syncStatus
|
||||||
|
it.status = taskBean.status
|
||||||
it.errMsg = taskBean.errMsg
|
it.errMsg = taskBean.errMsg
|
||||||
//赋值时间,用于查询过滤
|
//赋值时间,用于查询过滤
|
||||||
it.operationTime = taskBean.operationTime
|
it.operationTime = taskBean.operationTime
|
||||||
|
@ -49,12 +49,9 @@ import dagger.hilt.android.lifecycle.HiltViewModel
|
|||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import io.realm.RealmSet
|
import io.realm.RealmSet
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
import kotlinx.coroutines.sync.Mutex
|
import kotlinx.coroutines.sync.Mutex
|
||||||
import kotlinx.coroutines.withContext
|
|
||||||
import org.locationtech.jts.geom.Geometry
|
import org.locationtech.jts.geom.Geometry
|
||||||
import org.oscim.core.GeoPoint
|
import org.oscim.core.GeoPoint
|
||||||
import org.oscim.core.MapPosition
|
import org.oscim.core.MapPosition
|
||||||
@ -237,6 +234,7 @@ class MainViewModel @Inject constructor(
|
|||||||
|
|
||||||
//导航轨迹回顾
|
//导航轨迹回顾
|
||||||
private var naviLocationTest = false
|
private var naviLocationTest = false
|
||||||
|
private var naviLocationTestJob: Job? = null
|
||||||
|
|
||||||
//导航信息
|
//导航信息
|
||||||
private var naviEngine: NaviEngine? = null
|
private var naviEngine: NaviEngine? = null
|
||||||
@ -1641,17 +1639,22 @@ class MainViewModel @Inject constructor(
|
|||||||
* 导航测试
|
* 导航测试
|
||||||
*/
|
*/
|
||||||
fun setNaviLocationTestStartTime(time: Long) {
|
fun setNaviLocationTestStartTime(time: Long) {
|
||||||
stopNaviLocationTest()
|
naviLocationTest = true
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
if (naviLocationTestJob != null && naviLocationTestJob!!.isActive)
|
||||||
|
naviLocationTestJob!!.cancel()
|
||||||
|
naviLocationTestJob = viewModelScope.launch(Dispatchers.IO) {
|
||||||
var b = true
|
var b = true
|
||||||
|
val limitCount = 20
|
||||||
|
var lastTime: Long = time
|
||||||
while (b) {
|
while (b) {
|
||||||
val list = traceDataBase.niLocationDao.findListWithStartTime(time, 20)
|
Log.e("jingo", "下一组定位点起始时间 $lastTime")
|
||||||
var lastTime: Long = 0
|
val list = traceDataBase.niLocationDao.findListWithStartTime(lastTime, limitCount)
|
||||||
|
|
||||||
for (location in list) {
|
for (location in list) {
|
||||||
if(!naviLocationTest)
|
if (!naviLocationTest)
|
||||||
break
|
break
|
||||||
lastTime = if (lastTime != 0L) {
|
val nowTime = location.timeStamp.toLong()
|
||||||
val nowTime = location.timeStamp.toLong()
|
if (lastTime != 0L) {
|
||||||
val tempTime = nowTime - lastTime
|
val tempTime = nowTime - lastTime
|
||||||
if (tempTime > 10000) {
|
if (tempTime > 10000) {
|
||||||
liveDataMessage.postValue("下个定位点与当前定位点时间间隔超过10秒(${tempTime}),将直接跳转到下个点")
|
liveDataMessage.postValue("下个定位点与当前定位点时间间隔超过10秒(${tempTime}),将直接跳转到下个点")
|
||||||
@ -1659,10 +1662,9 @@ class MainViewModel @Inject constructor(
|
|||||||
} else {
|
} else {
|
||||||
delay(tempTime)
|
delay(tempTime)
|
||||||
}
|
}
|
||||||
nowTime
|
|
||||||
} else {
|
|
||||||
location.timeStamp.toLong()
|
|
||||||
}
|
}
|
||||||
|
lastTime = nowTime
|
||||||
|
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
mapController.animationHandler.animationByLatLon(
|
mapController.animationHandler.animationByLatLon(
|
||||||
location.latitude,
|
location.latitude,
|
||||||
@ -1672,11 +1674,10 @@ class MainViewModel @Inject constructor(
|
|||||||
|
|
||||||
mapController.locationLayerHandler.niLocationFlow.emit(location)
|
mapController.locationLayerHandler.niLocationFlow.emit(location)
|
||||||
}
|
}
|
||||||
if (list.size < 100) {
|
if (list.size < limitCount) {
|
||||||
b = false
|
b = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mapController.locationLayerHandler.startLocation()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1684,8 +1685,10 @@ class MainViewModel @Inject constructor(
|
|||||||
* 停止测试
|
* 停止测试
|
||||||
*/
|
*/
|
||||||
fun stopNaviLocationTest() {
|
fun stopNaviLocationTest() {
|
||||||
mapController.locationLayerHandler.startLocation()
|
|
||||||
naviLocationTest = false
|
naviLocationTest = false
|
||||||
|
if (naviLocationTestJob != null) {
|
||||||
|
naviLocationTestJob!!.cancel()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -227,7 +227,6 @@ class TaskListAdapter(
|
|||||||
binding.taskUploadBtn.isEnabled = false
|
binding.taskUploadBtn.isEnabled = false
|
||||||
binding.taskUploadBtn.setProgress(0)
|
binding.taskUploadBtn.setProgress(0)
|
||||||
binding.taskUploadBtn.setBackgroundColor(binding.root.resources.getColor(R.color.gray_121))
|
binding.taskUploadBtn.setBackgroundColor(binding.root.resources.getColor(R.color.gray_121))
|
||||||
Log.e("qj","${taskBean.id}===changeUploadTxtViews===已上传")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FileUploadStatus.ERROR -> {
|
FileUploadStatus.ERROR -> {
|
||||||
@ -242,7 +241,6 @@ class TaskListAdapter(
|
|||||||
FileUploadStatus.NONE -> {
|
FileUploadStatus.NONE -> {
|
||||||
binding.taskUploadBtn.setText("未上传")
|
binding.taskUploadBtn.setText("未上传")
|
||||||
binding.taskUploadBtn.setProgress(0)
|
binding.taskUploadBtn.setProgress(0)
|
||||||
Log.e("qj","${taskBean.id}===changeUploadTxtViews===未上传")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FileUploadStatus.WAITING -> {
|
FileUploadStatus.WAITING -> {
|
||||||
|
@ -527,7 +527,7 @@ class NaviEngine(
|
|||||||
private suspend fun matchingItem() {
|
private suspend fun matchingItem() {
|
||||||
|
|
||||||
if (routeIndex > -1 && tempRoutList.isNotEmpty() && tempGeometry != null) {
|
if (routeIndex > -1 && tempRoutList.isNotEmpty() && tempGeometry != null) {
|
||||||
Log.e("jingo", "当前${routeIndex} ${tempRoutList[0].startIndexInPath} $footIndex")
|
// Log.e("jingo", "当前${routeIndex} ${tempRoutList[0].startIndexInPath} $footIndex")
|
||||||
//道路前方一定距离范围内的要素信息
|
//道路前方一定距离范围内的要素信息
|
||||||
val bindingItemList = mutableListOf<NaviRouteItem>()
|
val bindingItemList = mutableListOf<NaviRouteItem>()
|
||||||
//定位点到要素的路径距离
|
//定位点到要素的路径距离
|
||||||
|
Loading…
x
Reference in New Issue
Block a user