完善室内整理功能
This commit is contained in:
parent
0848ee491b
commit
c83ed1b97e
@ -334,7 +334,10 @@ class MainActivity : BaseActivity() {
|
||||
if (viewModel.indoorToolsCommand == IndoorToolsCommand.SELECT_POINT) {
|
||||
selectPointFinish(true)
|
||||
}
|
||||
|
||||
//启动自动播放
|
||||
if (viewModel.indoorToolsCommand == IndoorToolsCommand.PLAY) {
|
||||
viewModel.startTimer()
|
||||
}
|
||||
}
|
||||
|
||||
IndoorToolsResp.QR_CODE_STATUS_UPDATE_VIDEO_INFO_FAILURE -> {
|
||||
@ -627,7 +630,7 @@ class MainActivity : BaseActivity() {
|
||||
viewModel.setSelectPauseTrace(false)
|
||||
binding.mainActivityMenuIndoorGroup.visibility = View.GONE
|
||||
binding.mainActivityTraceSnapshotPoints.isSelected = viewModel.isSelectTrace()
|
||||
binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag()
|
||||
//binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag()
|
||||
binding.mainActivitySnapshotPause.isSelected = viewModel.isSelectPauseTrace()
|
||||
}
|
||||
|
||||
@ -636,8 +639,8 @@ class MainActivity : BaseActivity() {
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.N)
|
||||
fun mediaFlagOnclick() {
|
||||
viewModel.setMediaFlag(!viewModel.isMediaFlag())
|
||||
binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag()
|
||||
/* viewModel.setMediaFlag(!viewModel.isMediaFlag())
|
||||
binding.mainActivitySnapshotMediaFlag.isSelected = viewModel.isMediaFlag()*/
|
||||
}
|
||||
|
||||
/**
|
||||
@ -650,11 +653,11 @@ class MainActivity : BaseActivity() {
|
||||
mapController.markerHandle.getNILocation(viewModel.getCurrentNiLocationIndex() - 1)
|
||||
if (item != null) {
|
||||
viewModel.setCurrentIndexLoction(viewModel.getCurrentNiLocationIndex() - 1)
|
||||
viewModel.showMarker(this, (item as MarkerItem).uid as NiLocation)
|
||||
viewModel.showMarker(this, item)
|
||||
val traceVideoBean = TraceVideoBean(
|
||||
command = "videotime?",
|
||||
userid = Constant.USER_ID,
|
||||
time = "${(item.uid as NiLocation).time}:000"
|
||||
time = "${item.time}:000"
|
||||
)
|
||||
viewModel.sendServerCommand(this, traceVideoBean, IndoorToolsCommand.REWIND)
|
||||
} else {
|
||||
@ -718,11 +721,11 @@ class MainActivity : BaseActivity() {
|
||||
mapController.markerHandle.getNILocation(viewModel.getCurrentNiLocationIndex() + 1)
|
||||
if (item != null) {
|
||||
viewModel.setCurrentIndexLoction(viewModel.getCurrentNiLocationIndex() + 1)
|
||||
viewModel.showMarker(this, (item as MarkerItem).uid as NiLocation)
|
||||
viewModel.showMarker(this, item)
|
||||
val traceVideoBean = TraceVideoBean(
|
||||
command = "videotime?",
|
||||
userid = Constant.USER_ID,
|
||||
time = "${(item.uid as NiLocation).time}:000"
|
||||
time = "${item.time}:000"
|
||||
)
|
||||
viewModel.sendServerCommand(this, traceVideoBean, IndoorToolsCommand.NEXT)
|
||||
} else {
|
||||
|
||||
@ -22,6 +22,7 @@ import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.navigation.findNavController
|
||||
import com.blankj.utilcode.util.ToastUtils
|
||||
import com.blankj.utilcode.util.ViewUtils.runOnUiThread
|
||||
import com.navinfo.collect.library.data.dao.impl.TraceDataBase
|
||||
import com.navinfo.collect.library.data.entity.*
|
||||
import com.navinfo.collect.library.garminvirbxe.HostBean
|
||||
@ -56,12 +57,14 @@ import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.oscim.core.GeoPoint
|
||||
import org.oscim.core.MapPosition
|
||||
import org.oscim.layers.marker.MarkerItem
|
||||
import org.oscim.map.Map
|
||||
import org.videolan.libvlc.LibVlcUtil
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
import kotlin.concurrent.fixedRateTimer
|
||||
|
||||
/**
|
||||
* 创建Activity全局viewmode
|
||||
@ -168,6 +171,10 @@ class MainViewModel @Inject constructor(
|
||||
|
||||
private var shareUtil: ShareUtil? = null
|
||||
|
||||
private var timer: Timer? = null
|
||||
|
||||
private var disTime :Long = 1000
|
||||
|
||||
init {
|
||||
mapController.mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition ->
|
||||
when (e) {
|
||||
@ -352,9 +359,11 @@ class MainViewModel @Inject constructor(
|
||||
)
|
||||
)
|
||||
}
|
||||
if(Constant.AUTO_LOCATION){
|
||||
mapController.mMapView.vtmMap.animator()
|
||||
.animateTo(GeoPoint( location.longitude, location.latitude))
|
||||
withContext(Dispatchers.Main){
|
||||
if(Constant.AUTO_LOCATION){
|
||||
mapController.mMapView.vtmMap.animator()
|
||||
.animateTo(GeoPoint( location.longitude, location.latitude))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -866,13 +875,6 @@ class MainViewModel @Inject constructor(
|
||||
return currentIndexNiLocation
|
||||
}
|
||||
|
||||
/**
|
||||
* 结束自动播放
|
||||
*/
|
||||
fun cancelTrace() {
|
||||
|
||||
}
|
||||
|
||||
override fun onConnect(success: Boolean) {
|
||||
if (!success && socketServer != null) {
|
||||
BaseToast.makeText(
|
||||
@ -928,4 +930,40 @@ class MainViewModel @Inject constructor(
|
||||
mCameraDialog?.connection(hostBean1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun startTimer() {
|
||||
if(timer!=null){
|
||||
cancelTrace()
|
||||
}
|
||||
timer = fixedRateTimer("", false, disTime, disTime) {
|
||||
if(currentIndexNiLocation<mapController.markerHandle.getNILocationItemizedLayerSize()){
|
||||
Log.e("qj","定时器")
|
||||
val niLocation = mapController.markerHandle.getNILocation(currentIndexNiLocation)
|
||||
val nextNiLocation = mapController.markerHandle.getNILocation(currentIndexNiLocation+1)
|
||||
if(nextNiLocation!=null&&niLocation!=null){
|
||||
var nilocationDisTime = nextNiLocation.timeStamp.toLong() - niLocation.timeStamp.toLong()
|
||||
disTime = if(nilocationDisTime<1000){
|
||||
1000
|
||||
}else{
|
||||
nilocationDisTime
|
||||
}
|
||||
showMarker(mapController.mMapView.context,nextNiLocation)
|
||||
currentIndexNiLocation += 1
|
||||
//再次启动
|
||||
startTimer()
|
||||
}
|
||||
}else{
|
||||
Toast.makeText(mapController.mMapView.context,"无数据了!",Toast.LENGTH_LONG).show()
|
||||
cancelTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 结束自动播放
|
||||
*/
|
||||
fun cancelTrace() {
|
||||
timer?.cancel()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -345,7 +345,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
app:constraint_referenced_ids="main_activity_snapshot_finish,main_activity_trace_snapshot_points,main_activity_snapshot_media_flag,main_activity_snapshot_rewind,main_activity_snapshot_pause,main_activity_snapshot_next" />
|
||||
app:constraint_referenced_ids="main_activity_snapshot_finish,main_activity_trace_snapshot_points,main_activity_snapshot_rewind,main_activity_snapshot_pause,main_activity_snapshot_next" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/main_activity_snapshot_finish"
|
||||
@ -359,12 +359,12 @@
|
||||
android:onClick="@{()->mainActivity.tracePointsOnclick()}"
|
||||
android:src="@drawable/map_trace_select_point" />
|
||||
|
||||
<ImageButton
|
||||
<!-- <ImageButton
|
||||
android:id="@+id/main_activity_snapshot_media_flag"
|
||||
style="@style/top_right_drawer_btns_style"
|
||||
android:visibility="gone"
|
||||
android:onClick="@{()->mainActivity.mediaFlagOnclick()}"
|
||||
android:src="@drawable/map_trace_mediaflag" />
|
||||
android:src="@drawable/map_trace_mediaflag" />-->
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/main_activity_snapshot_rewind"
|
||||
|
||||
@ -1713,7 +1713,7 @@
|
||||
</m>
|
||||
<m k="boundaryType" v="1">
|
||||
<!--无标线无可区分边界-->
|
||||
<line dasharray="10,2,2,2,2,2,2,2" repeat-start="0" stroke="#ffffff" width="0.2" />
|
||||
<line dasharray="20,8" repeat-start="0" stroke="#ffffff" width="0.2"/>
|
||||
</m>
|
||||
<!-- <outline-layer id="boundaryType" stroke="#fcba5a" width="0.2" />
|
||||
<m k="boundaryType" v="0">
|
||||
@ -1771,7 +1771,6 @@
|
||||
<m v="1">
|
||||
<line stroke="#ffffff" use="boundaryType" />
|
||||
</m>
|
||||
<!--只区分虚线与实线-->
|
||||
<m v="2">
|
||||
<line dasharray="10,2,2,2,2,2,2,2" repeat-start="0" stroke="#eccc68" use="boundaryType" />
|
||||
</m>
|
||||
@ -1819,12 +1818,12 @@
|
||||
</m>-->
|
||||
</m>
|
||||
</m>
|
||||
<m v="0|1|3|4|5|6|7|8|9">
|
||||
<m v="0|3|4|5|6|7|8|9">
|
||||
<line stroke="#ffffff" use="boundaryType" />
|
||||
</m>
|
||||
<!--只区分虚线与实线-->
|
||||
<m v="0|3|4|5|6|7|8|9">
|
||||
<line dasharray="10,2,2,2,2,2,2,2" repeat-start="0" stroke="#ffffff" />
|
||||
<m v="1">
|
||||
<line dasharray="20,8" repeat-start="0" stroke="#ffffff" width="0.2"/>
|
||||
</m>
|
||||
</m>
|
||||
</m>
|
||||
|
||||
@ -758,9 +758,9 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) :
|
||||
return niLocationItemizedLayer.itemList.size
|
||||
}
|
||||
|
||||
fun getNILocation(index:Int):MarkerInterface?{
|
||||
fun getNILocation(index:Int):NiLocation?{
|
||||
return if(index>-1&&index<getNILocationItemizedLayerSize()){
|
||||
niLocationItemizedLayer.itemList[index]
|
||||
((niLocationItemizedLayer.itemList[index])as MarkerItem).uid as NiLocation
|
||||
}else{
|
||||
null
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user