UNPKG

uno-info-sdk

Version:
574 lines (358 loc) 14.2 kB
## Installation ```js npm install uno-info-sdk --save ``` ## Usage ```jsx 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<String> | - | | roomExclude | 当前广播需要过滤的端, target优先级高 | | Array<String> | - | | registerData | 注册内容 | | {name: string, group: string, hasCbMsg}[RegisterData](#registerdata) | - | | extraWs | websocket扩展配置 | | [Options](https://www.npmjs.com/package/uno-ws-client) | {} | ## Instance API | 属性名 | 说明 | 类型 | 备注 | | :-----| :---- | :---- | :---- | | listener | 按event和action监听消息内容返回 | (eventName: string, callback: (message: object) => void) => void | eventName规则: `sdk_${event}.${action}`,'.action'非必填。[Default Events](#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结构 ```javascript [ { "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] | | 镜头的视点参数 | <br /> --- <br /> ## 2、多对象查看镜头 sdkName: camera.show 描述:调用系统镜头对多个指定对象进行查看 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | layer | string | | 对象的图层名 | | target | [string] | | 对象ID数组 | <br /> --- <br /> ## 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 | <br /> --- <br /> ## 4、预设镜头 sdkName: camera.call 描述:调用预先编排好的一个镜头序列 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | sequence | [string] | | 预设镜头的数组 | <br /> --- <br /> ## 5、释放镜头 sdkName: camera.release 描述:解锁原来的任何镜头 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | cameraOffset | [number,number,number] | | 释放后镜头相对最后位置的位移 | <br /> --- <br /> ## 6、切换跟踪视角 sdkName: camera.switchMode 描述:在对象跟踪镜头下切换跟踪视角 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | cameraMode | string | | 跟踪视角("Car"(车内), "Drone"(无人机跟车), "Flight"(高空俯视)) | <br /> --- <br /> ## 7、隐藏三维图层 sdkName: layer.hide 描述:隐藏三维图层 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | layer | string | | 图层名 | <br /> --- <br /> ## 8、显示三维图层 sdkName: layer.show 描述:显示三维图层 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | layer | string | | 图层名 | <br /> --- <br /> ## 9、隐藏面板图层 sdkName: billboard.hide 描述:隐藏面板图层 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | layer | string | | 图层名 | <br /> --- <br /> ## 10、显示面板图层 sdkName: billboard.show 描述:显示面板图层 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | layer | string | | 图层名 | <br /> --- <br /> ## 11、切换气象 sdkName: climate.setup 描述:切换场景中的天气、日照等状态 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | weather | [string] | | 气象状态数组(foggy、rainy、snowy),数组为空即为晴天 | | sunlight | string | | 日夜切换,day/night | <br /> --- <br /> ## 12、恢复气象 sdkName: climate.reset 描述:恢复场景中的天气和日照状态 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | <br /> --- <br /> ## 13、切换数据环境 sdkName: env.changeEnv 描述:切换场景中的数据环境,即车辆、事件等数据来源从实时模式切换为历史模式或仿真模式 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | env | string | | 数据环境名称 | | isPlaying | boolean | | 是否播放 | <br /> --- <br /> ## 14、指定时间播放 sdkName: env.play 描述:在非实时环境下实现从指定日期指定时间开始播放 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | playTime | string | | 开始播放的时间 | | isPlaying | true | | 播放 | | uniqueId | string | | 一次播放的ID | | env | string | | 数据环境名称(playback历史数据, simulation仿真数据, release实时数据) | <br /> --- <br /> ## 15、暂停播放 sdkName: env.pause 描述:在非实时环境下实现暂停播放 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | playTime | string | | 停止播放的时间 | | isPlaying | false | | 暂停播放 | | uniqueId | string | | 一次播放的ID | | env | string | | 数据环境名称(playback历史数据, simulation仿真数据, release实时数据) | <br /> --- <br /> ## 16、请求地图同步 sdkName: map.request 描述:web端请求UE端发送地图位置信息,用于一些需要三维场景跳转到新位置之后再响应的web消息 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | entity | string | | 被同步对象为地图参数 | <br /> --- <br /> ## 17、监听地图同状态 sdkName: camera.update 描述:UE端返回web端请求的地图位置信息(响应web的请求地图同步) | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | position | [number, number, number] | | 三维场景当前的位置 | <br /> --- <br /> ## 18、呼出web的跟车控制面板 sdkName: layer.switchCameraUI 描述:UE找到车辆开始跟踪之后,控制web端打开/关闭web的跟车控制面板 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | enable | boolean | | 打开/关闭面板 | <br /> --- <br /> ## 19、孪生设备同步 sdkName: layer.update 描述:UE端返回视频接力中当前设备视频流和下一路设备的视频流地址 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | value | { this: string; next: string; } | | 视频接力中的当前视频流和下一个视频流 | | entity | string | | 被操作对象为图层 | <br /> --- <br /> ## 20、对象悬浮选择 sdkName: layer.hover 描述:UE端返回当前鼠标悬浮的对象 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | layer | string | | 被高亮对象的图层名 | | target | string | | 被高亮对象的ID | <br /> --- <br /> ## 21、对象双击选择 sdkName: layer.dclick 描述:UE端返回当前鼠标点击的对象 | 字段名 | 字段类型 | 是否必须 | 描述 | | :---: | :---: | :---: | :--- | | layer | string | | 被高亮对象的图层名 | | target | string | | 被高亮对象的ID | <br /> --- <br />