Vue项目中是实现全景图片

全景图片查看器,网络上相关的插件有很多,例如:Panolens.jsPano.jsphoto-sphere-viewer.js,这些插件都是基于 Three.js,我这次是用的是 photo-sphere-viewer.js

# 第一步: 安装

npm install  photo-sphere-viewer --save-dev 

# 第二步: 引入

import { Viewer } from 'photo-sphere-viewer'
import 'photo-sphere-viewer/dist/photo-sphere-viewer.css'

或者标签引入

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/photo-sphere-viewer@4/dist/photo-sphere-viewer.min.css"/>
<script src="https://cdn.jsdelivr.net/npm/three/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/uevent@2/browser.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/photo-sphere-viewer@4/dist/photo-sphere-viewer.min.js"></script>

# 第三步: 使用

// 或者放在 initPhotoSphere() 方法里
this.PSV = new Viewer({
  container: document.getElementById('viewer'),
  panorama: require('@/static/' + val),
  autorotateDelay:true, //是否自旋转动
  captureCursor:true,
  autorotateSpeed:0.12943951023931953, // 旋转速度
  size: {
    width: '100%',
    height: '600rpx'
  },
  caption: '一号地块',
  // time_anim: false,
  // defaultLat: 1.4441088145446443,
  // defaultLong: 0.0800613513013615,
  // sphereCorrection: {pan: 30.01, tilt: 0, roll: 0}, // 校正 低 倾斜 卷
  maxFov: 100,         // 最大缩放值
  minFov: 10,          // 最小缩放值
  defaultZoomLvl: 20,     // 默认缩放值,在1-179之间
  // mousewheel: false,    // 禁止鼠标滚轮缩放
  touchmoveTwoFingers:false,
  moveSpeed: 1, // 鼠标拖拽的速度
  loadingImg: null,
  loadingTxt: "place wait...",
  navbar: false,
  navbar: [
    'autorotate',
    'zoom',
     'caption',
     'fullscreen' //全屏
    ]
}) 

标签引入时使用方法类似,只是方法名称不同,如下

new PhotoSphereViewer.Viewer({
  参数与之相同。。。
});

# 图片切换

if (this.PSV) {
  this.PSV.destroy()
}
this.$nextTick(() => {
  this.initPhotoSphere()
})

有时候会有问题,也没有Cannot load image的报错,初步判断应该不是图片路径的问题。尝试换一种切换图片的方式。如下

if (this.PSV) {
  this.PSV.setPanorama(this.factoryLink, true, true)
} else {
  this.initPhotoSphere()
}

如切换过快,导致上个图还没加载完则会报 PSVError: Loading already in progress错误导致图片不显示,解决方案如下:

if (this.PSV) {
  this.imageLoaded = false
  console.log(this.imageLoaded)
  this.PSV.setPanorama(this.factoryLink, true, true).then(() => {
  this.imageLoaded = true
    console.log('-------替换图片完成--------')
  });
} else {
  this.initPhotoSphere()
}

到此全景图片查看器就完成了,赶快试试吧,是不是很酷炫,别忘记点赞收藏哦~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345