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

创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为翠屏企业提供专业的网站建设、成都做网站,翠屏网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
使用动态库的方法参见使用动态库,在app.json中增添一项 dynamicLib,与pages同级。
"dynamicLib": {"myDynamicLib": {"provider": "panoviewer"}},
在每个使用到图表组件的页面,配置*.json文件如:
{"usingSwanComponents": {"panoviewer": "dynamicLib://myDynamicLib/panoviewer"}}
*.swan文件这是一种最基本的配置方式。style也可以在*.css中声明,需要保证是有宽度和高度的。options在*.js中绑定到页面的 data 中:
const options = ...;Page({data: {options: options}});
其中,options 是配置项,定义了全景图的物料资源地址和渲染交互配置,一个典型的配置如下所示:
options = {"image": "https://xxx.com/.../xxx.jpg","smallPlanet": 3000,"config": {"projectionType": "equirectangular"}};
上支持的属性包括:
| 属性名称 | 类型 | 说明 |
|---|---|---|
| options | Object | 配置项 |
| 配置项名称 | 类型 | 说明 |
|---|---|---|
| image | Object/String | 投影模式对应的资源配置 |
| projectionType | String | 投影模式名称 |
| smallPlanet | Number | 小行星动画时长,如果未设置则表示无动画 |
动态库支持多种投影模式,包括球形、立方体、EAC、手机全景、分级分块,投影模式对应的名称如下表:
| 投影模式 | 名称 |
|---|---|
| 球形 | equirectangular |
| 立方体 | cubemap |
| EAC | cubestrip |
| 手机全景 | panorama |
| 分级分块 | multires |
除分级分块模式外,其他模式的 image 字段为资源 url ,分级分块模式的 image 参数是切片脚本生成的配置,说明如下:
| 配置项名称 | 类型 | 说明 |
|---|---|---|
| basePath | String | 分块图的根目录 |
| path | String | 分块图的格式化方式 |
| fallbackPath | String | 缩略图路径 |
| extension | String | 图像格式 |
| tileResolution | String | 分块 size |
| maxLevel | Number | 最大级别 |
| cubeResolution | Number | 立方体单面 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"}}