codecamp

百度智能小程序 VR 全景图-beta

panoviewer VR 全景图-beta

panoviewer 动态库提供了在小程序中播放全景图的方法,底层基于百度 webVR SDK Hydreigon 实现。

使用方法

1. 在项目中引用动态库

使用动态库的方法参见小程序文档:使用动态库,在 app.json 中增添一项 dynamicLib,与 pages 同级。

"dynamicLib": {
    "myDynamicLib": {
        "provider": "panoviewer"
    }
},

2. 在使用到组件的页面配置动态库

在每个使用到图表组件的页面,配置 *.json 文件如:

{
    "usingSwanComponents": {
        "panoviewer": "dynamicLib://myDynamicLib/panoviewer"
    }
}

3. 编写 *.swan 文件

<panoviewer options="{{ options }}" style="width: 100%; height: 100%; display: block"></panoviewer>

这是一种最基本的配置方式。style 也可以在 *.css 中声明,需要保证 <panoviewer> 是有宽度和高度的。options 在 *.js 中绑定到页面的 data 中:

const options = ...;
Page({
    data: {
        options: options
    }
});

其中,options 是配置项,定义了全景图的物料资源地址和渲染交互配置,一个典型的配置如下所示:

options = {
    "image": "https://xxx.com/.../xxx.jpg",
    "smallPlanet": 3000,
    "config": {
        "projectionType": "equirectangular"
    }
};

动态库属性列表

<panoviewer> 上支持的属性包括:

属性名称类型说明
optionsObject配置项

关键配置项说明

配置项名称类型说明
imageObject/string投影模式对应的资源配置
projectionTypestring投影模式名称
smallPlanetnumber小行星动画时长,如果未设置则表示无动画

投影模式

动态库支持多种投影模式,包括球形、立方体、EAC、手机全景、分级分块,投影模式对应的名称如下表:

投影模式名称
球形equirectangular
立方体cubemap
EACcubestrip
手机全景panorama
分级分块multires

除分级分块模式外,其他模式的 image 字段为资源 url,分级分块模式的 image 参数是切片脚本生成的配置,说明如下:

配置项名称类型说明
basePathstring分块图的根目录
pathstring分块图的格式化方式
fallbackPathstring缩略图路径
extensionstring图像格式
tileResolutionstring分块 size
maxLevelnumber最大级别
cubeResolutionnumber立方体单面 size

示例配置如下:

{
    image: {
        basePath:
            "https://hydreigon-publish.cdn.bcebos.com/swan-hydreigon/pano/lujiazui-4k/",
        path: "/%l/%s%y_%x",
        fallbackPath: "/fallback/%s",
        extension: "jpg",
        tileResolution: 512,
        maxLevel: 3,
        cubeResolution: 1304
    },
    config: {
        projectionType: "multires"
    }
}


百度智能小程序 VR 3D模型-beta
百度智能小程序 VR 3D 环物-beta
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

百度智能小程序开发文档

百度智能小程序 组件

百度智能小程序 地图

百度智能小程序 画布

百度智能小程序 API

百度智能小程序 界面

百度智能小程序 关注小程序引导组件

百度智能小程序 自定义组件

百度智能小程序 媒体

百度智能小程序 设备

百度智能小程序 拨打电话

百度智能小程序 内存警报

百度智能小程序 手机联系人

百度智能小程序 用户截屏事件

百度智能小程序 第三方平台

百度智能小程序 开放接口

百度智能小程序 百度收银支付

百度智能小程序 分包预下载

百度智能小程序 数据分析

百度智能小程序 服务端

百度智能小程序 云开发

百度智能小程序 初始化

百度智能小程序 云函数

百度智能小程序 服务端初始化

百度智能小程序 服务器获取上下文

百度智能小程序 服务端云函数

百度智能小程序 开发教程

百度智能小程序 功能开发

百度智能小程序 基本原理

百度智能小程序 小程序自动化

百度智能小程序 视频教程

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }