# qe-roaming-controller
漫游控制组件,控制所有漫游线路的开始、暂停、播放、改变速度、设置漫游时间与间隔、添加路径、删除路径、追踪某一条路径等功能。
注意
漫游控制组件和漫游路线组件共同使用,一般漫游路线组件作为子组件被使用。
# 实例
隐藏代码
<template>
<div style="height: 450px;">
<div style="height: 8%;">
<el-button-group>
<el-button
type="primary"
size="mini"
@click="handlerPlay()">
{{ playRoamingPath ? '结束漫游' : '开始漫游' }}
</el-button>
<el-button
type="primary"
size="mini"
@click="handlerPause()">
{{ roamingPausing ? '播放' : '暂停' }}
</el-button>
</el-button-group>
<label>改变速度:</label>
<el-input-number
v-model="roamingSpeed"
:step="2"
size="mini"
:min="1"
:max="10"
@change="handleChangeSpeed"
>
</el-input-number>
<label>切换视角:</label>
<el-select
size="mini"
v-model="viewModeValue"
placeholder="请选择漫游视角"
@change="handlerChangeViewMode">
<el-option
v-for="item in roamingViewMode"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<qe-viewer style="height: 90%;"
:imagery-type="'AMap'"
:fullscreen-button="true"
:default-view="defaultView"
>
<qe-roaming-controller
:playing="playRoamingPath"
:pausing="roamingPausing"
:speed="roamingSpeed"
>
<qe-roaming-path
:positions="roamingPath"
:roaming-model="roamingModel"
:options="roamingPathOptions"
:viewMode="viewMode"
@roamingTick="handlerRoamingTick"
></qe-roaming-path>
</qe-roaming-controller>
</qe-viewer>
</div>
</template>
<script>
import { QeViewer,QeRoamingController, QeRoamingPath } from '@qycloud/vue-qearth';
import 'vue2qearth/vue2qearth.css'
import elementUI from 'element-ui'
import Vue from 'vue'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(elementUI)
export default {
components: {
QeViewer,
QeRoamingController,
QeRoamingPath
},
data () {
return {
defaultView: [
118.7863,
31.9087,
801.6425,
1.724684714172732,
-53.783141852231246,
0.008819224020548466
],
isShowLayer: true,
roamingPath: [],
roamingModel: {
url: "../Cesium_Man.glb",
style: {
scale: 5
}
},
playRoamingPath: false,
roamingPausing: false,
roamingSpeed:1,
roamingPathOptions: {
showModel:true,
// showPath: true
},
viewModeValue: "2",
roamingViewMode: [{
value: '1',
label: '第一人称视角'
}, {
value: '2',
label: '第三人称视角'
}, {
value: '3',
label: '跟随视角'
}, {
value: '5',
label: '自由视角'
}],
viewMode: {
type: "2",
range: 1000
}
};
},
methods: {
handlerRoamingTick(evts) {
console.log(evts);
},
handlerPlay() {
this.playRoamingPath = !this.playRoamingPath;
this.roamingPath = [
[118.78652278, 31.9118927, 0],
[118.78655718, 31.91305226, 0],
[118.78782395, 31.91411149, 0],
[118.78789172, 31.91761209, 0],
[118.79094442, 31.91788549, 0],
[118.79124342, 31.91780779, 0],
[118.79121663, 31.91629651, 0],
[118.78854253, 31.91625039, 0]
];
if (!this.playRoamingPath) {
this.roamingPausing = false;
}
},
handlerPause() {
this.roamingPausing = !this.roamingPausing;
},
handleChangeSpeed(speed) {
this.roamingSpeed = speed;
},
handlerChangeViewMode(viewModeVal) {
switch (viewModeVal) {
case '1':
this.viewMode = {
type: "1",
pitch:-20,
range:100
}
break;
case '2':
this.viewMode = {
type: "2",
range: 1000
}
break;
case '3':
this.viewMode = {
type: "3",
}
break;
case '5':
this.viewMode = {
type: "5"
}
break;
default:
break;
}
}
}
}
</script>
# Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
playing | 是否开始漫游 | boolean | — | false |
pausing | 是否暂停播放漫游 | boolean | — | false |
speed | 漫游速度 | number | — | 2 |
timeDuration | 设置漫游开始时间以及时间间隔 | object | 漫游时间设置 | {startTime: new Date(),duration: 20} |
timeRange | 设置漫游开始时间和结束时间 | object | 漫游时间设置 | — |
# 漫游时间设置
const timeDuration = {
// 漫游开始时间,格式 `Date` 标准
startTime: new Date(),
// 时间间隔(秒)
duration: 20
};
const timeRange = {
// 漫游开始时间,格式 `Date` 标准
startTime: new Date(),
// 漫游借结束时间,格式 `Date` 标准
endTime: new Date(startTime.setSeconds(startTime.getSeconds() + 20))
};
# Events
覆盖物事件的使用请参照上面RoamingController 实例
// 可选事件
"ready" // 组件装载后,返回当前实例对象