Definition: WorkImage, ImageOptions
点位全景图数据结构,包含瓦片列表。
interface WorkImage {
/** 分辨率列表 */
sizeList: readonly number[];
/** 瓦片信息列表,按 level 排序 */
tiles: readonly WorkTile[];
// ... 其他基础图片 URL
}
全景图及瓦片的图片处理配置。
interface ImageOptions {
/** 图片尺寸参数 (例如 512, 1024...) */
size?: number;
/** 图片质量参数 (0-100) */
quality?: number;
/** 图片格式参数 */
format?: "jpg" | "jpeg" | "png" | "heif" | "heic" | "webp" | "avif";
/** URL 转换函数 */
transform?: (url: string, options: ImageURLOptions) => string;
}
在 Five 加载 Work 数据时,WorkParser 会解析 panorama.size_list (或 panorama.tiles) 字段。
level = log2(size / 512)。size > baseSize (通常是初始全景图大小),URL 中的 /cube_{size}/ 部分会被动态替换(通过 replaceImageSize 函数)。size <= baseSize,直接使用基础全景图 URL,并设置 scale。tiles 数组会按 level 升序排列。readonly number[][2048, 6144] 表示该点位全景图有两个层级,分别是 2048px 和 6144px。cube_{size},{size} 是层级分辨率,必须与 sizeList 中的值对应。并必须存在 2048px 层级的图片。PanoramaController 使用 Tiling 类来管理瓦片加载:
FOV) 和视图大小 (viewSize),计算所需的最佳瓦片层级。默认策略会优先保证画面清晰度,同时考虑网络开销。tileMaxRequest 限制同时进行的网络请求数量,避免阻塞。在初始化 Five 时,可以通过 panorama 配置参数来配置瓦片加载行为。
| Parameter | Type | Default | Description |
|---|---|---|---|
tileLevelForFov |
(fov: number, viewSize: Vector2) => number | false |
undefined |
自定义函数,用于根据当前 FOV 和视图尺寸决定加载哪个层级的瓦片。返回 level 数值。如果设置为 false,则禁用动态瓦片加载。默认使用内部策略。 |
tileMaxRequest |
number |
3 |
最大的瓦片图片并发请求数。增加此值可能加快加载速度,但也可能导致网络拥塞。 |
imageOptions |
ImageOptions |
undefined |
全景图及瓦片的图片处理配置。可用于全局控制图片的加载格式(如强制使用 WebP)、质量压缩比例或通过 transform 函数自定义图片 URL。 |
import { Five } from "@realsee/five";
const five = new Five();
five.on("loaded", () => {
const observer = five.work.observers[0];
if (observer && observer.images && observer.images.tiles) {
console.log("Available Tiles:", observer.images.tiles);
observer.images.tiles.forEach(tile => {
console.log(`Level: ${tile.level}, Size: ${tile.size}, Scale: ${tile.scale}`);
});
}
});
import { Five } from "@realsee/five";
const five = new Five({
// 自定义瓦片层级选择策略
tileLevelForFov: (fov, viewSize) => {
// 简单示例:FOV 小于 60 度时强制使用 Level 2,否则使用 Level 1
if (fov < 60) {
return 2;
}
return 1;
},
// 限制并发请求数
tileMaxRequest: 6,
// 图片加载配置
imageOptions: {
// 强制请求 WebP 格式的图片
format: "webp",
// 图片质量设置为 80%
quality: 80,
// (可选) 自定义 URL 转换逻辑
// transform: (url, options) => {
// return url + `?x-oss-process=image/format,webp/quality,q_80`;
// }
}
});
tags: [全景瓦片, 高清全景, 分片加载, 瓦片, 全景图, 分辨率, 按需加载, pano-tile, observer, LOD, tile]