uno-info-sdk v1.0.1
Installation
npm install uno-info-sdk --save
Usage
import { IndustrySDK } from 'uno-info-sdk';
const industrysdk = new IndustrySDK({
service: 'wss://pre-citybrain-open.aliyun.com/app/space-ws/ws',
registerData: {
name: "注册消息B",
group: "industry_room"
},
source: 'web',
target: 'web'
});
const { camera } = industrysdk;
sdk.wsClient.on('load', () => {
camera.focus.toTarget({
camera: [26957,52297,63267],
lookat: [55849,60942,67897],
layer: "Impedit hic aliquam omnis molestias aspernatur.",
target: "Asperiores et unde dolor rerum rem est aperiam."
})
})
sdk.listener('camera.focus.toTarget', (data) => {
console.log(data)
})
Options
属性名 | 说明 | 必填 | 类型 | 默认值 |
---|---|---|---|---|
service | 需要连接的服务地址 | 是 | String | - |
source | 当前客户端id | 否 | String | - |
target | 消息发送目标端 | 否 | Array | - |
roomExclude | 当前广播需要过滤的端, target优先级高 | 否 | Array | - |
registerData | 注册内容 | 是 | {name: string, group: string, hasCbMsg}RegisterData | - |
extraWs | websocket扩展配置 | 否 | Options | {} |
Instance API
属性名 | 说明 | 类型 | 备注 |
---|---|---|---|
listener | 按event和action监听消息内容返回 | (eventName: string, callback: (message: object) => void) => void | eventName规则: sdk_${event}.${action} ,'.action'非必填。Default Events |
registerEvent | 注册自定义事件 | (eventName: string, parser: (data) => data)) => {} | eventName规则: sdk_${event}.${action} ,'.action'非必填 |
send | 发送消息 | (event: string, message: object) => {} | - |
updateOptRetry | 更新配置后重新初始化 | (opts: Options) => {} | - |
destroy | 销毁函数 | Function | - |
RegisterData
属性名 | 说明 | 必填 | 类型 | 默认值 |
---|---|---|---|---|
name | 发送端名称 | 否 | string | - |
group | 消息通道房间名称 | 是 | string | - |
hasCbMsg | 注册消息是否需要广播 | 否 | boolean | - |
disconnectTime | 长时间不发送消息时,服务端主动断开服务需要的时间 | 否 | number | 60000 |
SDK json结构
[
{
"name": "对象查看", // dk大类名称
"desc": "", // sdk大类描述
"entity": "camera", // sdk作用实体
"category": "sequence", // sdk所属分类
"actionCode": "focus", // sdk的action
"params": [{ // sdk参数配置
"name": "camera", // 参数名称
"type": "[number, number, number]", // 参数类型,typescript语法
"require": true, // 参数是否必填
"desc": "" // 参数描述
}, {
"name": "lookat",
"type": "[number, number, number]",
"require": true,
"desc": ""
}, {
"name": "layer",
"type": "string",
"require": false,
"desc": ""
}, {
"name": "target",
"type": "string",
"require": false,
"desc": ""
}],
"children": {
"toTarget": { // sdk子类code
"name": "对象特写", // sdk子类名称
"fields": [ // sdk子类参数字段,取大类的params中的key
"camera", //name是这个字符串的参数,配置同大类
"lookat",
{ "target": true },, // name是这个对象的key的参数,配置同大类,但是require以当前的value为准
{ "layer": true }
],
"desc": ""
},
"fixed": {
"name": "定点特写",
"fields": ["camera", "lookat"],
"desc": ""
}
}
}
]
SDK文档v1.0.0
调用方式:sdkName({ param1, param2, ... })
1、对象查看镜头
sdkName: camera.focus
描述:调用系统镜头对单一指定对象或指定位置进行查看
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
camera | number, number, number | 是 | 镜头的相机参数 |
lookat | number, number, number | 是 | 镜头的视点参数 |
layer | string | 否 | 对象的图层名 |
target | string | 否 | 对象ID |
1.1、对象特写
sdkName: camera.focus.toTarget
描述:调用镜头实现对任意位置的定点特写。如:对隧道口、匝道口做特写
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
camera | number, number, number | 是 | 镜头的相机参数 |
lookat | number, number, number | 是 | 镜头的视点参数 |
target | string | 是 | 对象ID |
layer | string | 是 | 对象的图层名 |
1.2、定点特写
sdkName: camera.focus.fixed
描述:调用系统镜头实现对一个指定静态对象ID的定点特写,被特写对象会有外轮廓高亮。如:实现对某个杆子或路侧设备的特写
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
camera | number, number, number | 是 | 镜头的相机参数 |
lookat | number, number, number | 是 | 镜头的视点参数 |
2、多对象查看镜头
sdkName: camera.show
描述:调用系统镜头对多个指定对象进行查看
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 对象的图层名 |
target | string | 是 | 对象ID数组 |
3、跟踪镜头
sdkName: camera.track
描述:调用系统镜头实现对一个指定动态对象或不指定ID的任一对象实施动态跟踪,被跟踪对象会有外轮廓高亮
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 对象的图层名 |
target | string | 否 | 对象ID |
target_type | string | 否 | 对象类型 |
continuously | boolean | 否 | 是否连续跟踪,即跟丢了再选同类的下一个对象 |
location | number,number,number | 否 | 被跟踪对象的位置: 三维场景只加载当前范围内的车辆,如果被跟踪对象不在当前范围就找不到该对象,需要先让三维场景跳转到被跟踪对象的位置(location参数),加载新范围内的车辆再进行跟踪 |
cameraMode | string | 否 | 跟踪视角("Car"(车内), "Drone"(无人机跟车), "Flight"(高空俯视)) |
cameraDistance | number,number | 否 | 镜头相对被跟踪对象的位置,默认值3,2 |
3.1、指定对象(ID)跟踪
sdkName: camera.track.toTarget
描述:调用系统镜头实现对一个指定动态对象实施动态跟踪
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 对象的图层名 |
target | string | 是 | 对象ID |
continuously | boolean | 是 | 是否连续跟踪,即跟丢了再选同类的下一个对象 |
location | number,number,number | 是 | 被跟踪对象的位置: 三维场景只加载当前范围内的车辆,如果被跟踪对象不在当前范围就找不到该对象,需要先让三维场景跳转到被跟踪对象的位置(location参数),加载新范围内的车辆再进行跟踪 |
cameraMode | string | 是 | 跟踪视角("Car"(车内), "Drone"(无人机跟车), "Flight"(高空俯视)) |
cameraDistance | number,number | 是 | 镜头相对被跟踪对象的位置,默认值3,2 |
3.2、不指定对象(ID)跟踪
sdkName: camera.track.noTarget
描述:调用系统镜头实现对不指定ID的任一对象实施动态跟踪
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 对象的图层名 |
continuously | boolean | 是 | 是否连续跟踪,即跟丢了再选同类的下一个对象 |
target_type | string | 是 | 对象类型 |
cameraMode | string | 是 | 跟踪视角("Car"(车内), "Drone"(无人机跟车), "Flight"(高空俯视)) |
cameraDistance | number,number | 是 | 镜头相对被跟踪对象的位置,默认值3,2 |
3.3、释放跟踪镜头
sdkName: camera.track.release
描述:取消跟踪
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 对象的图层名 |
target | string | 是 | 对象ID |
4、预设镜头
sdkName: camera.call
描述:调用预先编排好的一个镜头序列
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
sequence | string | 是 | 预设镜头的数组 |
5、释放镜头
sdkName: camera.release
描述:解锁原来的任何镜头
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
cameraOffset | number,number,number | 是 | 释放后镜头相对最后位置的位移 |
6、切换跟踪视角
sdkName: camera.switchMode
描述:在对象跟踪镜头下切换跟踪视角
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
cameraMode | string | 是 | 跟踪视角("Car"(车内), "Drone"(无人机跟车), "Flight"(高空俯视)) |
7、隐藏三维图层
sdkName: layer.hide
描述:隐藏三维图层
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 图层名 |
8、显示三维图层
sdkName: layer.show
描述:显示三维图层
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 图层名 |
9、隐藏面板图层
sdkName: billboard.hide
描述:隐藏面板图层
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 图层名 |
10、显示面板图层
sdkName: billboard.show
描述:显示面板图层
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 图层名 |
11、切换气象
sdkName: climate.setup
描述:切换场景中的天气、日照等状态
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
weather | string | 是 | 气象状态数组(foggy、rainy、snowy),数组为空即为晴天 |
sunlight | string | 是 | 日夜切换,day/night |
12、恢复气象
sdkName: climate.reset
描述:恢复场景中的天气和日照状态
字段名 | 字段类型 | 是否必须 | 描述 |
---|
13、切换数据环境
sdkName: env.changeEnv
描述:切换场景中的数据环境,即车辆、事件等数据来源从实时模式切换为历史模式或仿真模式
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
env | string | 是 | 数据环境名称 |
isPlaying | boolean | 是 | 是否播放 |
14、指定时间播放
sdkName: env.play
描述:在非实时环境下实现从指定日期指定时间开始播放
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
playTime | string | 是 | 开始播放的时间 |
isPlaying | true | 是 | 播放 |
uniqueId | string | 是 | 一次播放的ID |
env | string | 是 | 数据环境名称(playback历史数据, simulation仿真数据, release实时数据) |
15、暂停播放
sdkName: env.pause
描述:在非实时环境下实现暂停播放
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
playTime | string | 是 | 停止播放的时间 |
isPlaying | false | 是 | 暂停播放 |
uniqueId | string | 是 | 一次播放的ID |
env | string | 是 | 数据环境名称(playback历史数据, simulation仿真数据, release实时数据) |
16、请求地图同步
sdkName: map.request
描述:web端请求UE端发送地图位置信息,用于一些需要三维场景跳转到新位置之后再响应的web消息
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
entity | string | 是 | 被同步对象为地图参数 |
17、监听地图同状态
sdkName: camera.update
描述:UE端返回web端请求的地图位置信息(响应web的请求地图同步)
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
position | number, number, number | 是 | 三维场景当前的位置 |
18、呼出web的跟车控制面板
sdkName: layer.switchCameraUI
描述:UE找到车辆开始跟踪之后,控制web端打开/关闭web的跟车控制面板
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
enable | boolean | 是 | 打开/关闭面板 |
19、孪生设备同步
sdkName: layer.update
描述:UE端返回视频接力中当前设备视频流和下一路设备的视频流地址
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
value | { this: string; next: string; } | 是 | 视频接力中的当前视频流和下一个视频流 |
entity | string | 是 | 被操作对象为图层 |
20、对象悬浮选择
sdkName: layer.hover
描述:UE端返回当前鼠标悬浮的对象
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 被高亮对象的图层名 |
target | string | 是 | 被高亮对象的ID |
21、对象双击选择
sdkName: layer.dclick
描述:UE端返回当前鼠标点击的对象
字段名 | 字段类型 | 是否必须 | 描述 |
---|---|---|---|
layer | string | 是 | 被高亮对象的图层名 |
target | string | 是 | 被高亮对象的ID |
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago