首页 > 建站教程 > 地图,GIS教程 >  photo-sphere-viewer 加载瓦片,大大优化加载速度正文

photo-sphere-viewer 加载瓦片,大大优化加载速度

photo-sphere-viewer实现全景的方法如下:

import { onMounted, reactive, ref } from 'vue'
import { Viewer } from '@photo-sphere-viewer/core'
import '@photo-sphere-viewer/core/index.css'
import {MarkersPlugin} from '@photo-sphere-viewer/markers-plugin'
import '@photo-sphere-viewer/markers-plugin/index.css'
let viewer = null
onMounted(() => {
   viewer = new Viewer({
       container: document.querySelector("#viewer"),
       adapter: EquirectangularTilesAdapter,
       // 一张图,加载非常慢
       panorama: '/oss/1.jpg',
       caption: '博物馆',
       size: {
           width: "100%",
           height: "100%",
       },
       loadingTxt:"加载中...",
   })
})


这个的确能实现,但是由于全景图太大,导致加载速度太慢,所以要用瓦片去实现。点击ImageMagick瓦片切片方式,查看如何用ImageMagick将图片切成瓦片。下面是重新加载瓦片的代码:

1、安装equirectangular-tiles-adapter

npm i @photo-sphere-viewer/equirectangular-tiles-adapter@5.7.1

注意,这里要锁定版本,版本号和您的@photo-sphere-viewer/core一致,否则可能安装失败


2、使用EquirectangularTilesAdapter

// 加载相关adapter
import { EquirectangularTilesAdapter } from '@photo-sphere-viewer/equirectangular-tiles-adapter'
onMounted(() => {
   viewer = new Viewer({
       container: document.querySelector("#viewer"),
       adapter: EquirectangularTilesAdapter,
       panorama: {
       // 原始图片尺寸
        width: 8192,
   cols: 32,
   rows: 16,
   // 这里为压缩后的全景图,用来首次加载
   baseUrl: `./oss/s1.jpg`,
   // 这里是加载当前场景的瓦片
   tileUrl: (col, row) => {
   return `/oss/1_${col}_${row}.jpg`
   }
        },
       caption: '博物馆',
       size: {
           width: "100%",
           height: "100%",
       },
       loadingTxt:"加载中...",
   })
})


这时,加载速度明显快多了,看下效果图: