场景视图
场景视图是 QPaaS_DT_API 调用的入口,它里面包含了云渲染视频流的接入渲染,并且封装了一些常用的方法以及模块类的快速入口。

调用示例
onMounted(() => {
nextTick();
const viewer = new Viewer(container.value, {
streamUrl: '10.10.10.253:5668',
cameraOptions: {
coordinate: [121.99225616455078, 40.75633239746094, 57.56663131713867],
armDistance: 1509.8798828125,
// armDistanceMin: 1500,
// armDistanceMax: 400000,
pitch: -21.074901580810547,
// pitchMin: -89,
// pitchMax: 5,
yaw: -131.867431640625,
// rotationSpeed: 2,
// zoomSpeed: 100000,
panIntensity: 0.8
// allowIdle: false,
// idleTime: 15,
// idleAnimationLength: 1,
// idleRotationPitch: 8,
// idleRotationYaw: 45,
// idleIsClockwise: true,
}
});
});
实例参数
// 初始化视图所需参数
export type ViewerOptions = {
streamUrl: string; // 视频流地址
cameraOptions: CameraOptions; // 初始相机参数
};
// 初始化相机参数
export type CameraOptions = {
coordinate?: number[]; // 相机坐标位置
armDistance?: number; // 镜头距坐标点距离
armDistanceMin?: number; // 镜头距坐标点距离范围最小值设置
armDistanceMax?: number; // 镜头距坐标点距离范围最大值设置
pitch?: number; // 镜头俯仰角; 值的范围 [-90, 90]
pitchMin?: number; // 镜头俯仰角范围最小值设置
pitchMax?: number; // 镜头俯仰角范围最大值设置
yaw?: number; // 镜头偏航角
rotationSpeed?: number; // 镜头旋转速度设置 默认值为:2.0
zoomSpeed?: number; // 镜头缩放速度设置 默认值为:100000.0
panIntensity?: number; // 镜头平移强度 默认值为:0.2
allowIdle?: boolean; // 是否开启镜头绕中心点的旋转动画 默认值: false
idleTime?: number; // 旋转动画开始时间 默认 15.0 秒后开启动画
idleAnimationLength?: number; // 动画长度 默认值: 1.0
idleRotationPitch?: number; // 旋转动画设置的镜头俯仰角 默认值: 8.0
idleRotationYaw?: number; // 旋转动画设置的镜头偏航角 默认值: 45.0
idleIsClockwise?: boolean; // 旋转动画是否顺时针旋转 默认值: true
};
成员变量
相机实例
- camera
- 只读
- 获取相机实例对象,调用相机相关方法
POI 实例
- marker
- 只读
- 获取 Marker 实例对象,调用 Marker 相关方法
路径实例
- polyline
- 只读
- 获取路径实例对象,调用路径相关方法
漫游视角实例
- character
- 只读
- 获取漫游视角实例对象,调用视角切换相关方法
天气控件实例
- weather
- 只读
- 获取天气控件实例对象,调用天气控件相关方法
坐标拾取控件实例
- picking
- 只读
- 获取坐标拾取控件实例对象,调用坐标拾取控件相关方法
圆环动画实例
- circleEffect
- 只读
- 获取圆环动画实例对象,调用圆环动画相关方法
轨迹回放实例
- trackline
- 只读
- 获取轨迹回放实例对象,调用轨迹回放相关方法
车流实例
- carFlow
- 只读
- 获取车流实例对象,调用车流相关方法
指南针控件实例
- compass
- 只读
- 获取指南针实例对象,调用指南针实例相关方法
视频流 video 元素
- streamingVideo
- 只读
- 获取视频流的 video 元素,可以用于控制 video 相关属性样式
方形区域实例
- squareRegion
- 只读
- 获取方形区域实例对象,调用方形区域实例相关方法
圆形区域实例
- roundRegion
- 只读
- 获取圆形区域实例对象,调用圆形区域实例相关方法
多边形区域实例
- polygon
- 只读
- 获取多变形区域实例对象,调用多变形区域实例相关方法
测量工具实例
- measureTool
- 只读
- 获取测量工具实例对象,调用测量工具实例相关方法
绘制工具实例
- drawTool
- 只读
- 获取绘制工具实例对象,调用绘制工具相关方法
路径热力图实例
- roadHeatMap
- 只读
- 获取路径热力图实例对象,调用路径热力图实例相关方法
粒子特效实例
- particleEffect
- 只读
- 获取粒子特效实例对象,调用粒子特效实例相关方法
自定义模型实例
- customModel
- 只读
- 获取自定义模型实例对象,调用自定义模型实例相关方法
智慧建筑实例
- smartBuilding
- 只读
- 获取智慧建筑对象,调用智慧建筑相关方法
方法
镜头聚焦点位
- 根据坐标位置进行镜头聚焦定位
- 方法名:flyTo
- 参数说明:
flyTo(
coordinate: Array<number>, // 需要聚焦的坐标数据
options: {
yaw?: number; // 聚焦镜头偏航角设置
pitch?: number; // 聚焦镜头俯仰角设置
armDistance?: number; // 镜头距聚焦坐标点距离设置
}
): this {}
- 示例参考:
viewer.flyTo([122.0016171003, 40.7461719867, 16]);
前端页面交互触发视频播放
- 用于初始化是前端页面交互触发视频播放
- 方法名:playStream
- 参数说明:
playStream(): this {}
- 示例参考:
<script setup lang="ts">
import { Viewer } from '@qpaas/dt-api';
import { nextTick, onMounted, ref } from 'vue';
const container = ref(undefined);
let viewer: Viewer;
onMounted(async () => {
nextTick();
viewer = new Viewer(container.value, {
streamUrl: '10.10.10.253:5668',
cameraOptions: {
coordinate: [121.99225616455078, 40.75633239746094, 57.56663131713867],
armDistance: 1509.8798828125,
pitch: -21.074901580810547,
yaw: -131.867431640625,
panIntensity: 0.8
}
});
});
function handleStream() {
viewer.playStream();
}
</script>
<template>
<div class="viewer">
<div class="tools">
<el-button type="primary" @click="handleStream()"
>初始化播放视频</el-button
>
</div>
<div class="home" ref="container"></div>
</div>
</template>
设置视频分辨率
- 设置视频分辨率
- 方法名:setViewportResolution
- 参数说明:
// wdith --- 视频宽度 height----视频高度
setViewportResolution(width: number, height: number): this {}
- 示例参考:
viewer.setViewportResolution(1920, 1080);
清空实例操作
清空视频实例操作
方法名:clear
参数说明:
示例参考:
viewer.on('loadend', () => {
viewer.clear();
});
销毁当前视图
销毁当前视图
方法名:destroy
参数说明:
示例参考:
viewer.destroy();
场景视图事件
- 场景视图事件
- 方法名:on/off
- 参数说明:
// 开启事件监听
on(type: ViewerEventType, callback, context) {}
// 关闭事件监听
off(type: ViewerEventType, callback, context): boolean {}
// ViewerEventType 参数说明
export class ViewerEventType {
static Loadend = 'loadend' as const; // 视频已正常播放
static CameraChanged = 'cameraChanged' as const; // 相机移动事件
}
- 示例参考:
viewer.on(ViewerEventType.Loadend, (evt: any) => {
console.log(evt);
});
