增加轨迹多层显示
This commit is contained in:
@@ -40,6 +40,13 @@ class Constant {
|
||||
*/
|
||||
lateinit var USER_DATA_PATH: String
|
||||
|
||||
/**
|
||||
* 轨迹渲染个数统计
|
||||
*/
|
||||
var TRACE_COUNT : Int = 0
|
||||
|
||||
var TRACE_COUNT_TIME : Int = 10
|
||||
|
||||
/**
|
||||
* 当前安装任务
|
||||
*/
|
||||
|
||||
@@ -344,7 +344,7 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
viewModel.liveDataAutoLocation.observe(this) {
|
||||
if (it == true) {
|
||||
if (it == true&&Constant.INDOOR_IP==null|| Constant.INDOOR_IP == "") {
|
||||
onClickLocation()
|
||||
}
|
||||
}
|
||||
@@ -844,6 +844,7 @@ class MainActivity : BaseActivity() {
|
||||
*/
|
||||
fun setTopMenuButtonVisibility(visibility: Int) {
|
||||
binding.mainActivityMenu.visibility = visibility
|
||||
binding.mainActivityStatusCamera.visibility = visibility
|
||||
if (visibility != View.VISIBLE) {
|
||||
binding.mainActivityMenuGroup.visibility = View.INVISIBLE
|
||||
binding.mainActivityMenu.isSelected = false
|
||||
|
||||
@@ -246,6 +246,8 @@ class MainViewModel @Inject constructor(
|
||||
// 定义一个互斥锁
|
||||
private val naviMutex = Mutex()
|
||||
|
||||
private var traceCount = 0
|
||||
|
||||
init {
|
||||
mapController.mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition ->
|
||||
when (e) {
|
||||
@@ -527,7 +529,14 @@ class MainViewModel @Inject constructor(
|
||||
).niLocationDao.findToTaskIdAll(id.toString())
|
||||
if (list != null) {
|
||||
for (location in list) {
|
||||
Constant.TRACE_COUNT++
|
||||
|
||||
mapController.markerHandle.addNiLocationMarkerItem(location)
|
||||
|
||||
if(Constant.TRACE_COUNT%Constant.TRACE_COUNT_TIME==0){
|
||||
mapController.markerHandle.addNiLocationMarkerItemSimple(location)
|
||||
Log.e("qj","$traceCount===轨迹")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -592,10 +601,14 @@ class MainViewModel @Inject constructor(
|
||||
}
|
||||
//室内整理工具时不能进行轨迹存储,判断轨迹间隔要超过2.5并小于60米
|
||||
if (Constant.INDOOR_IP.isEmpty() && (disance == 0.0 || (disance > 2.5 && disance < 60))) {
|
||||
traceCount ++
|
||||
Log.e("jingo", "轨迹插入开始")
|
||||
CMLog.writeLogtoFile(MainViewModel::class.java.name,"insertTrace","开始")
|
||||
traceDataBase.niLocationDao.insert(location)
|
||||
mapController.markerHandle.addNiLocationMarkerItem(location)
|
||||
if(Constant.TRACE_COUNT%Constant.TRACE_COUNT_TIME==0){
|
||||
mapController.markerHandle.addNiLocationMarkerItemSimple(location)
|
||||
}
|
||||
mapController.mMapView.vtmMap.updateMap(true)
|
||||
lastNiLocaion = location
|
||||
CMLog.writeLogtoFile(MainViewModel::class.java.name,"insertTrace",gson.toJson(location))
|
||||
|
||||
@@ -7,6 +7,7 @@ import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TimePicker
|
||||
@@ -21,6 +22,7 @@ import com.blankj.utilcode.util.UriUtils
|
||||
import com.github.k1rakishou.fsaf.FileChooser
|
||||
import com.github.k1rakishou.fsaf.callback.FSAFActivityCallbacks
|
||||
import com.github.k1rakishou.fsaf.callback.FileChooserCallback
|
||||
import com.google.android.material.internal.NavigationMenuItemView
|
||||
import com.google.android.material.timepicker.MaterialTimePicker
|
||||
import com.navinfo.collect.library.enums.DataLayerEnum
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
@@ -40,6 +42,7 @@ import com.permissionx.guolindev.PermissionX
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import org.oscim.core.GeoPoint
|
||||
import org.oscim.core.MapPosition
|
||||
import org.oscim.utils.MinHeap.Item
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
@@ -73,7 +76,7 @@ class PersonalCenterFragment(private var indoorDataListener: ((Boolean) -> Unit?
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
binding.root.setNavigationItemSelectedListener {
|
||||
binding.root.setNavigationItemSelectedListener { it ->
|
||||
when (it.itemId) {
|
||||
R.id.personal_center_menu_offline_map ->
|
||||
findNavController().navigate(R.id.OfflineMapFragment)
|
||||
|
||||
@@ -318,6 +318,23 @@ class TaskViewModel @Inject constructor(
|
||||
|
||||
liveDataTaskLinks.value = taskBean.hadLinkDvoList
|
||||
showTaskLinks(taskBean)
|
||||
//重新加载轨迹
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
Constant.TRACE_COUNT = 0
|
||||
val list: List<NiLocation>? = TraceDataBase.getDatabase(
|
||||
mapController.mMapView.context, Constant.USER_DATA_PATH
|
||||
).niLocationDao.findToTaskIdAll(taskBean.id.toString())
|
||||
list!!.forEach {
|
||||
|
||||
Constant.TRACE_COUNT ++
|
||||
|
||||
mapController.markerHandle.addNiLocationMarkerItem(it)
|
||||
|
||||
if(Constant.TRACE_COUNT%Constant.TRACE_COUNT_TIME==0){
|
||||
mapController.markerHandle.addNiLocationMarkerItemSimple(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
MapParamUtils.setTaskId(taskBean.id)
|
||||
Constant.currentSelectTaskFolder = File(Constant.USER_DATA_PATH + "/${taskBean.id}")
|
||||
Constant.currentSelectTaskConfig =
|
||||
@@ -365,16 +382,6 @@ class TaskViewModel @Inject constructor(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
//重新加载轨迹
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val list: List<NiLocation>? = TraceDataBase.getDatabase(
|
||||
mapController.mMapView.context, Constant.USER_DATA_PATH
|
||||
).niLocationDao.findToTaskIdAll(taskBean.id.toString())
|
||||
list!!.forEach {
|
||||
mapController.markerHandle.addNiLocationMarkerItem(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user