云服务器内容精选

  • 接口调用示例 请求导航路径 const utmCode = "51N"; const from: number[] = [0, 0, 0]; const to: number[] = [100, 0, 0];const policy: number = 0; XRClient.requestNavi(utmCode, from, to, policy, this.RequestNaviCallBack);//返回从出发地到目的地的路径 获取SDK版本号 XRClient.getVersion();
  • 接口列表 表1 其他接口列表 接口 描述 参数名 参数类型 参数说明 返回值 requestNavi 请求导航路径。 utmCode string 当前utm区域。 void from number[3] 导航出发点utm坐标。 to number[3] 导航目的地utm坐标。 policy number 路线选择策略。 1:最短距离 2:电梯优先 3:扶梯优先 -2:不坐电梯 -3:不走扶梯 callback Function 回调函数,附带导航路径点信息。 getVersion 获取SDK版本号。 - - - string
  • 总体开发思路 使用WebARSDK开发移动端应用的工作流程如图1所示。 图1 工作流程 准备工作。 下载WebARSDK、收集AK/SK信息、开通关联服务。 创建H5移动端工程。 使用原生或者流行框架(如Vue、React)创建H5移动端工程。 引入WebARSDK文件。 下载、解压WebARSDK包,并将下载WebARSDK包放入工程目录,通过外部引入脚本的方式引入WebARSDK文件。 验证租户身份信息。 通过hwar.setAKSK方法将AK/SK传入SDK,验证租户身份信息。 开启AR会话。 获取图像及传感器数据,初始化SLAM,准备相关环境。 实现AR导航和渲染3D内容。 依靠视觉定位,获取当前设备位置,以及请求导航路径,实现空间位置追踪导航;开发者基于SDK输出的图像数据、相机矩阵、路径信息,实现3D数字内容渲染。 父主题: WebARSDK使用手册
  • WebARSDK简介 WebARSDK是一款轻量化JS-SDK,支持租户通过SDK快速集成和使用KooMap AR地图运行服务,开放能力的内存增加不大于3MB,运行时不依赖于Native App,可通过主流Web浏览器平台、主流终端设备的App内嵌WebView,实现WebAR体验。 WebARSDK提供的API,可以将用户、空间及数字内容连接在一起 ,达到厘米级的定位能力和1度以内的定姿能力,实现随时随地高精度的空间计算。在AR地图覆盖区域,用户可进行3D实景步行导引,无需担心GPS信号弱的环境。
  • 无法进行视觉定位原因排查 如果您无法进行视觉定位,建议您排查以下问题: 检查是否竖屏正向手持设备。 侦听事件“LANDSCAPE_BY_ROLL”检查当前屏幕是否竖屏。 侦听事件“ORIENTATION_NORMAL”检查屏幕正向状态。 验证视觉定位效果时,您需竖屏正向手持设备扫描周边环境。 检查定位区域是否在地图服务范围内。 按“F12”打开DevTools,在“Network”页签中查看“vps”的状态码。如果状态码为“400”,请在“Response”页签中查看“error_msg”内容,如显示“access denied, out of your service zone”,则表示位置不在您的地图服务范围。
  • 接口调用示例 侦听事件 用于侦听事件,并触发侦听函数。 XRClient.addEvent(GlobalBus.VPS_RESULT, this.onVpsResult,this); 定义侦听函数。 onVpsResult(evt) { XRClient.log("onVpsResult status" + evt.data.status); XRClient.log("onVpsResult info" + evt.data.info); if (evt.data.status) { XRClient.log("VPS success"); wx.showToast({ title: 'success', icon: 'success', duration: 2000 }) } else { XRClient.log("VPS failure"); wx.showToast({ title: 'failure', icon: 'none', duration: 2000 }) } }, 移除侦听事件 用于移除事件,移除后侦听函数不再触发。 XRClient.removeEvent(GlobalBus.VPS_RESULT, this.onVpsResult); 派发事件 用于派发事件,配合侦听事件使用,接收到此处派发的事件,并做相应处理。 XRClient.dispatchEvent('user_define', { status: false, info: 'test' } );
  • SDK内部事件 表2 SDK内部事件列表 事件名称 描述 携带数据 数据类型 数据说明 事件说明 VPS_RESULT Vps定位结果事件。 status boolean 定位是否成功。 Vps定位结果返回时触发该事件。 info string 具体定位结果信息。 VPS_TRACKING Vps跟踪状态事件。 status boolean 状态是否为跟踪中。 Vps跟踪状态变化时触发。 SCENE_INSTANCE scene实例事件。 info object scene实例。 初始化视觉定位模块时,派发scene实例事件。
  • 坐标系转换 SDK提供了UTM坐标与渲染引擎(如Three.js、LayaAir)坐标之间的转换方法。 // UTM坐标转成渲染坐标let vecInit = hwar.utm2Render([utm.x, utm.y, utm.z]);// 渲染坐标转成UTM坐标let renderPosUtm = hwar.render2Utm([render.x, render.y, render.z]);
  • 开发概述 HTSDK是接入KooMap AR地图运行服务的端侧SDK,助力于快速构建真实和虚拟融合世界。HTFoundation是适配HTSDK的示例代码,供用户在Unity3D中开发业务。 HTFoundation示例实现了真实世界构建、世界位姿定位和跟踪、虚实世界呈现。基于HTFoundation示例,用户可构建虚拟世界,包括虚拟对象设计、行为设计实现和业务逻辑开发。 图1 工作原理 父主题: HTSDK使用手册
  • 接口调用示例 初始化日志模块 const logger=new Logger() //创建Logger实例XRClient.initLogger(logger)//初始化日志模块 日志存储 XRClient.setIsSaveLog(true) 设置日志存储为“true”,打印日志的同时会写入日志文件到手机(仅Android支持,iOS暂不支持)。 设置日志存储为“false”,不写入日志文件到手机。 设置日志打印级别 XRClient.setLogOutputLevel(1) 日志级别包括:0(不输出)、1 (error) 、 2 (warn)、 3(log) 设置日志级别为0:不输出日志。 设置日志级别为1:只输出error级别日志。 设置日志级别为2:输出error和warn二个级别日志。 设置日志级别为3:输出error、warn、log三个级别日志。 打印普通级别的日志 XRClient.log("打印内容") 打印警告级别的日志 XRClient.warn("打印内容") 打印错误级别的日志 XRClient.error("打印内容")
  • 接口列表 表1 事件接口列表 接口 描述 参数名 参数类型 参数说明 返回值 addEvent 侦听事件。 evtName string 事件ID。 根据实际情况选择Vps定位结果事件ID、Vps状态事件ID或scene实例事件ID。 void cb Function 侦听到事件后,触发的回调函数。 cbThis any 当前实例。 removeEvent 移除侦听事件。 evtName string 事件ID。 根据实际情况选择Vps定位结果事件ID、Vps状态事件ID或scene实例事件ID。 void cb Function 回调函数。 dispatchEvent 派发事件。 evtName string 事件ID。 根据实际情况选择Vps定位结果事件ID、Vps状态事件ID或scene实例事件ID。 void params { key: value, key2: value2 } 事件携带的信息,键值对形式。
  • 接口列表 表1 视觉定位接口列表 接口 描述 参数名 参数类型 参数说明 返回值 init 初始化视觉定位模块。 config { access: string, secret: string, beforeLocateDelta: number, afterLocateDelta: number, autoRequest: boolean, workerPath: string, url: string } 初始化配置参数。 access:认证用的AK。 secret:认证用的SK。 beforeLocateDelta:首次定位成功前每隔几秒触发一次自动请求。 afterLocateDelta:定位成功后每隔几秒触发一次自动请求。 autoRequest:是否开启Vps自动请求。 workerPath:Vps模块用到的worker文件路径。 url:触发定位请求时使用的 域名 。 void requestVps 触发定位请求。 - - - void updatePerFrame 更新相机位姿。 - - - void getCameraOffset 获取相机偏移量。 - - - number[3] getUTMPosition 获取UTM(UNIVERSAL TRANSVERSE MERCARTOR GRID SYSTEM,通用横墨卡托格网系统)坐标。 - - - number[3] destroyVps 销毁视觉定位实例。 - - - void mockVps 模拟定位。 position Vector3 位置,使用UTM坐标系。 void rotation Vector3 朝向,以弧度制表示的欧拉角。
  • 调试选项 loglevel:UPDATE|INFO|WARNING|ASSERT|EXCEPTION|ERROR|NONE 日志级别左边包含右边的日志信息,即UPDATE级别会打印所有日志信息,使用该字段会打印HTDebug的日志,并写日志到此文件的上一级文件目录。NONE表示不保存log。 debugger_ctrl_switch:ON|OFF 是否在日志中显示调试面板,只对HTAppUIType中mNativeAppIds包含的应用包名有效。 fixed_location_switch:ON|OFF 是否使用自定义的固定位置。 longitude 经度,填写固定位置经纬的值,只在“fixed_location_switch”为“ON”时有效。 latitude 纬度,填写固定位置纬度的值,只在“fixed_location_switch”为“ON”时有效。
  • 环境要求 已安装配置NodeJS环境。 已安装代码编辑器,如Visual Studio Code。 已安装Web服务器,如http-server、VSCode插件live-server、Tomcat等。 Windows系统电脑已安装Chrome浏览器或基于Chromium内核的浏览器(例如Edge);Mac系统电脑已安装Safari浏览器。 移动设备已配置后置摄像头、陀螺仪、加速度传感器、GPS芯片等器件。 移动设备已安装支持WebRTC浏览器,如Chrome、Safari、华为浏览器等。
  • 快速开始 使用微信 开发者工具 创建小程序工程,导入SDK。 本文档使用的微信开发者工具版本为Nightly 1.06.2411282。 使用微信号登录微信开发者工具。 新建微信小程序工程。 单击“新建项目”,进入“创建小程序”页面。 图1 创建小程序 在“项目名称”文本框中填写项目名称。 “目录”选择项目存放的路径。 “AppID”选择“测试号”。 “后端服务”选择“不使用云服务”。 “开发模式”选择“小程序”。 “模板选择”选“不使用模板”。 单击“创建”,完成小程序工程创建。创建完成后,工程目录如图2。 图2 目录名称 新建文件并导入SDK。 在工具的资源管理器,单击右键,选择“新建文件”,新建文件“app.json”,并在app.json中配置页面(pages),代码如下: { "pages": [ "pages/index/index" ]} 单击右键,选择“新建文件”,新建文件“app.js”。 按Ctrl+S组合键,保存并编译,工具会自动生成pages文件夹及文件夹下的文件。 下载并解压CyberverseXRLightSDK软件包。 打开工程目录,将解压后得到的build文件夹复制到pages同级目录。 图3 导入SDK后目录 调用SDK,获取版本号。 在“index.js”文件的第一行导入XRClient。 import { XRClient } from "../../build/XRClient"; 在“index.js”文件的onLoad方法里打印SDK版本号。 onLoad(options) { console.log(XRClient.getVersion()) }, 真机调试,验证结果。 自动调试前,确保移动端设备的微信在前台运行,且与开发者工具登录的是同一个账号。 在微信开发者工具中,单击“真机调试”。 根据移动端设备情况选择“启动 Android 端自动真机调试”或 “启动 iOS 端自动真机调试”。 XRLightSDK是基于XRFrame方案的AR应用,不支持PC端调试。 单击“编译并自动调试”,弹出“真机调试”窗口。 图4 真机调试 在“Console”页签下,查看输出的内容,如果打印了SDK版本号信息,说明引入SDK成功。 图5 查看SDK版本信息 父主题: XRLightSDK使用手册