成都SKP导视横版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

58 lines
1.5 KiB

import { ref, nextTick, onBeforeUnmount } from 'vue'
export const useMapNavControl = () => {
const SPEED_NORMAL = 6
const SPEED_FAST = 10
const replay = ref(false) //重播
const pause = ref(false) //暂停
const speedUp = ref(false) //加速
const replayTimer = ref<any>(null) //重播定时器
//重播
function handleReplay() {
window.Map_QM.util.changePlaySpeed(SPEED_NORMAL)
replay.value = true
pause.value = false
speedUp.value = false
window.Map_QM.pathRePlay()
clearTimeout(replayTimer.value)
replayTimer.value = setTimeout(() => {
replay.value = false
clearTimeout(replayTimer.value)
replayTimer.value = null
}, 1000)
}
//暂停导航 继续导航
function togglePause() {
pause.value = !pause.value
replay.value = false
nextTick(() => {
pause.value ? window.Map_QM.pathStop(false) : window.Map_QM.pathStop(true)
})
}
//加速 恢复初始加速状态
function handleSpeedUp() {
replay.value = false
pause.value = false
speedUp.value = !speedUp.value
window.Map_QM.pathStop(true)
nextTick(() => {
speedUp.value ? window.Map_QM.util.changePlaySpeed(SPEED_FAST) : window.Map_QM.util.changePlaySpeed(SPEED_NORMAL)
})
}
function resetPause() {
pause.value = false
}
onBeforeUnmount(() => {
clearTimeout(replayTimer.value)
replayTimer.value = null
window.Map_QM.util.changePlaySpeed(SPEED_NORMAL)
})
return { replay, pause, speedUp, handleReplay, togglePause, handleSpeedUp, resetPause }
}