Conflicts:
	app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt
	app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt
	collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt
This commit is contained in:
qiji4215
2023-07-18 15:54:06 +08:00
15 changed files with 337 additions and 191 deletions

View File

@@ -180,7 +180,7 @@ class MainActivity : BaseActivity() {
//给xml传递viewModel对象
binding.viewModel = viewModel
binding.mainActivityVoice.setOnTouchListener { v, event ->
binding.mainActivityVoice.setOnTouchListener { v, event ->
when (event?.action) {
MotionEvent.ACTION_DOWN -> {
voiceOnTouchStart()//Do Something
@@ -210,7 +210,7 @@ class MainActivity : BaseActivity() {
}
}
//捕捉列表变化回调
viewModel.liveDataNoteIdList.observe(this) {
viewModel.liveDataNoteId.observe(this) {
//跳转到质检数据页面
//获取右侧fragment容器
val naviController = findNavController(R.id.main_activity_right_fragment)
@@ -218,16 +218,23 @@ class MainActivity : BaseActivity() {
naviController.currentDestination?.let { navDestination ->
when (navDestination.id) {
R.id.RightEmptyFragment -> {
if (it.size == 1) {
val bundle = Bundle()
bundle.putString("NoteId", it[0])
naviController.navigate(R.id.NoteFragment, bundle)
}
val bundle = Bundle()
bundle.putString("NoteId", it)
naviController.navigate(R.id.NoteFragment, bundle)
}
}
}
}
viewModel.liveDataTaskLink.observe(this) {
val bundle = Bundle()
bundle.putString("TaskLinkId", it)
findNavController(R.id.main_activity_right_fragment).navigate(
R.id.TaskLinkFragment,
bundle
)
}
//捕捉列表变化回调
viewModel.liveDataNILocationList.observe(this) {
if(viewModel.isSelectTrace()){

View File

@@ -23,13 +23,10 @@ import androidx.lifecycle.viewModelScope
import androidx.navigation.findNavController
import com.blankj.utilcode.util.ToastUtils
import com.navinfo.collect.library.data.dao.impl.TraceDataBase
import com.navinfo.collect.library.data.entity.NiLocation
import com.navinfo.collect.library.data.entity.NoteBean
import com.navinfo.collect.library.data.entity.QsRecordBean
import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.collect.library.data.entity.*
import com.navinfo.collect.library.map.NIMapController
import com.navinfo.collect.library.map.handler.OnQsRecordItemClickListener
import com.navinfo.collect.library.map.handler.OnTaskLinkItemClickListener
import com.navinfo.collect.library.utils.GeometryTools
import com.navinfo.collect.library.utils.GeometryToolsKt
import com.navinfo.omqs.Constant
@@ -76,7 +73,6 @@ class MainViewModel @Inject constructor(
private val mapController: NIMapController,
private val traceDataBase: TraceDataBase,
private val realmOperateHelper: RealmOperateHelper,
private val networkService: NetworkService,
private val sharedPreferences: SharedPreferences
) : ViewModel() {
@@ -86,7 +82,7 @@ class MainViewModel @Inject constructor(
val liveDataQsRecordIdList = MutableLiveData<List<String>>()
//地图点击捕捉到的标签ID列表
val liveDataNoteIdList = MutableLiveData<List<String>>()
val liveDataNoteId = MutableLiveData<String>()
//地图点击捕捉到的轨迹列表
val liveDataNILocationList = MutableLiveData<NiLocation>()
@@ -100,6 +96,9 @@ class MainViewModel @Inject constructor(
//道路名
val liveDataRoadName = MutableLiveData<RenderEntity?>()
//捕捉到新增的link
val liveDataTaskLink = MutableLiveData<String>()
/**
* 当前选中的要展示的详细信息的要素
*/
@@ -174,13 +173,12 @@ class MainViewModel @Inject constructor(
liveDataQsRecordIdList.value = list
}
override fun onNoteList(list: MutableList<String>) {
liveDataNoteIdList.value = list
override fun onNote(id: String) {
liveDataNoteId.value = id
}
override fun onNiLocation(index: Int, item: NiLocation) {
liveDataNILocationList.value = item
currentIndexNiLocation = index
}
})
@@ -191,11 +189,11 @@ class MainViewModel @Inject constructor(
mapController.onMapClickFlow.collectLatest {
// testPoint = it
//线选择状态
/* if (bSelectRoad) {
captureLink(it)
} else {
captureItem(it)
}*/
if (bSelectRoad) {
captureLink(it)
} else {
captureItem(it)
}
}
}
viewModelScope.launch(Dispatchers.IO) {
@@ -257,11 +255,12 @@ class MainViewModel @Inject constructor(
//加载轨迹数据
val id = sharedPreferences.getInt(Constant.SELECT_TASK_ID, -1)
val list: List<NiLocation>? = TraceDataBase.getDatabase(
mapController.mMapView.context,
Constant.USER_DATA_PATH
mapController.mMapView.context, Constant.USER_DATA_PATH
).niLocationDao.findToTaskIdAll(id.toString())
list!!.forEach {
mapController.markerHandle.addNiLocationMarkerItem(it)
if (list != null) {
for (location in list) {
mapController.markerHandle.addNiLocationMarkerItem(location)
}
}
}
@@ -272,6 +271,19 @@ class MainViewModel @Inject constructor(
private fun initLocation() {
//用于定位点存储到数据库
viewModelScope.launch(Dispatchers.Default) {
//用于定位点捕捉道路
mapController.locationLayerHandler.niLocationFlow.collectLatest { location ->
if (!isSelectRoad() && !GeometryTools.isCheckError(
location.longitude, location.latitude
)
) {
captureLink(
GeoPoint(
location.latitude, location.longitude
)
)
}
}
mapController.locationLayerHandler.niLocationFlow.collect { location ->
//过滤掉无效点
@@ -512,12 +524,10 @@ class MainViewModel @Inject constructor(
try {
if (!mCameraDialog!!.getmShareUtil().connectstate) {
mCameraDialog!!.updateCameraResources(
1,
mCameraDialog!!.getmDeviceNum()
1, mCameraDialog!!.getmDeviceNum()
)
}
TakePhotoManager.getInstance()
.getCameraVedioClent(mCameraDialog!!.getmDeviceNum())
TakePhotoManager.getInstance().getCameraVedioClent(mCameraDialog!!.getmDeviceNum())
.StopSearch()
} catch (e: Exception) {
}