uno-info-sdk
v1.0.1
Published
通信开发模式sdk
Downloads
118
Readme
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 |