基础导航示例
学习如何初始化导航系统并开始导航。
完整代码
typescript
import { initNavSystem } from '@sightp/tiny-allinone'
// 1. 配置参数
const setting = {
id: 'demo-map',
requestRoute: async (params) => {
console.log('请求路算:', params)
// 模拟路算服务响应
return {
route: [
{ x: 0, y: 0, z: 0 },
{ x: 10, y: 0, z: 10 },
{ x: 20, y: 0, z: 20 },
{ x: 30, y: 0, z: 15 },
],
markers: [
{ id: 'm1', x: 10, y: 0, z: 10, action: 0 },
{ id: 'm2', x: 20, y: 0, z: 20, action: 2 },
{ id: 'm3', x: 30, y: 0, z: 15, action: 7 },
]
}
},
routeWidth: 6,
arriveRadious: 5,
drawPathLength: -1,
}
// 2. 初始化
const navManager = initNavSystem(pc, app, setting)
// 3. 监听事件
navManager.on('nav_start', (target) => {
console.log('导航开始:', target)
})
navManager.on('nav_message', (msg) => {
console.log(`距离终点: ${msg.distanceToEnd.toFixed(1)}米`)
})
navManager.on('nav_arrive', () => {
console.log('🎉 到达目的地!')
})
navManager.on('nav_deviate', () => {
console.log('⚠️ 偏离路线,正在重新规划...')
})
// 4. 开始导航
const target = {
id: 'target-1',
x: 30,
y: 0,
z: 15,
}
navManager.startNav(target)
// 5. 取消导航(可选)
// navManager.cancelNav()效果预览
导航开始
距离终点: 45.2米
距离终点: 40.1米
...
🎉 到达目的地!