photo-sphere-viewer4 全景图插件应用
应用场景
业务是需要做一个百度全景图类似的功能,看了下百度地图的api,发现只能调用百度自己的图片,不能使用自己的图。因此找了photo-sphere-viewer来实现功能,版本是4.8.1。具体效果图如下(图片中十字线是另外地方用的,插件本身并没有):
先安装
npm install photo-sphere-viewer@4.8.1 -S
实现步骤
import 'photo-sphere-viewer/dist/photo-sphere-viewer.css'
import 'photo-sphere-viewer/dist/plugins/markers.css'
import 'photo-sphere-viewer/dist/plugins/gallery.css'
import 'photo-sphere-viewer/dist/plugins/virtual-tour.css'
import { Viewer } from 'photo-sphere-viewer'
// 这里只用到了标签插件/图库插件/虚拟漫游插件这三个插件,如果用陀螺仪插件的话域名必须是https的。
import { MarkersPlugin } from 'photo-sphere-viewer/dist/plugins/markers';
import { GalleryPlugin } from 'photo-sphere-viewer/dist/plugins/gallery';
import { VirtualTourPlugin } from 'photo-sphere-viewer/dist/plugins/virtual-tour';
因为用的vue,所以定义都放外面了,没有放data里面。
let PSV = null
let markersPlugin = null
let galleryPlugin = null
let virtualTourPlugin = null
具体代码如下
PSV = new Viewer({container: document.getElementById("viewer"),navbar: [ // 底部导航栏,依次是自动播放、缩放、图库、文字、全屏'autorotate','zoom','gallery','caption','fullscreen',],lang: { // 鼠标移到导航栏显示的文字说明autorotate: '自动旋转',zoom : '缩放',zoomOut : '缩小',zoomIn : '放大',gallery : '图库',fullscreen: '全屏'},plugins: [ // 用到的插件需要在这里提前写入[MarkersPlugin, {// markers: arr}],[GalleryPlugin, {// visibleOnLoad: true,}],[VirtualTourPlugin, {positionMode: VirtualTourPlugin.MODE_GPS,renderMode : VirtualTourPlugin.MODE_3D,}]]
})
// 标记
markersPlugin = PSV.getPlugin(MarkersPlugin); // 所有插件用到的时候都需要提前获取
// 标记的事件用on直接写,具体有哪些可以查官网https://photo-sphere-viewer-4.netlify.app/
markersPlugin.on('select-marker', function(e) { console.log('psv-marker:', e)
});// 图库
const galleryPlugin = PSV.getPlugin(GalleryPlugin);
// 图库的setItems方法用来设置图库的全景和全景缩略图
galleryPlugin.setItems([{id: 'sphere1',panorama : _this.baseUrl + 'demo1.jpg',thumbnail: _this.baseUrl + 'demo1-thumb.jpg', // 缩略图options : {caption: 'Test <b>html1</b>', // 这里可以直接写html},}
])
// 漫游
virtualTourPlugin = PSV.getPlugin(VirtualTourPlugin);
let arrowStyle = { // 自定义箭头颜色,但没办法改箭头的图案,就很不人性化color : 0xffffff,hoverColor : 0xaa5500,outlineColor: 0x7fdcdcdc,// scale : [1, 4],
}
virtualTourPlugin.setNodes([{ id: '1',panorama: _this.baseUrl + 'demo1.jpg',// 全景图thumbnail: _this.baseUrl + 'demo1-thumb.jpg', // 图库插件的缩略图name: 'One', // 图库和箭头显示的文字links: [{ nodeId: '2', arrowStyle }, // 需要展示的全景图id],markers: [ // 全景中需要添加的标记{id: 'marker-1',image: _this.baseUrl + 'point.png',tooltip: 'Cape Florida Light, Key Biscayne',width : 56,height : 80,anchor : 'bottom center',longitude: '105deg',latitude: '35deg',}],position: [120.090258, 30.322021, 3], // GPS/WGS84经纬度,+高程(可不填)panoData: {poseHeading: 270, // 0 to 360,水平视角posePitch: 0, // -90 to 90,竖直方向的角度poseRoll: 0, // -180 to 180}},{id: '2',panorama: _this.baseUrl + 'demo2.jpg',// 全景图thumbnail: _this.baseUrl + 'demo2-thumb.jpg', // 图库插件的缩略图name: 'two',links: [ // 点击箭头后需要展示的全景图,{ nodeId: '1', arrowStyle }, // 有来有回,节点1中展示2,那节点2中必须有1,这里的nodeId应对节点的id],position: [120.089913, 30.321986, 3]}
]
// 切换后的回调
virtualTourPlugin.on('node-changed', (e, nodeId, data) => {const { fromLink, fromLinkPosition, fromNode } = dataconsole.log('当前节点信息:', fromLink)console.log('上一节点经纬度(弧度):',fromLinkPosition)console.log('上一节点信息:', fromNode)
})
photo-sphere-viewer4 全景图插件应用相关推荐
- Photo Sphere Viewer 全景图
Photo Sphere Viewer 一款基于 three.js 的简易3D插件,方便,实用,友好,看到网上有些API有错误,所以自己写一个修正版的 该js插件可以360度旋转查看全景图,也可以上 ...
- 开源全景插件 Photo Sphere Viewer
概述 日常中,我们比较常见的是街区全景,百度通过街景车采集街景数据,最后形成全景应用,百度的全景还拥有一定的交互功能,可以随着街道移动街景,作为个人开发者,有一些开源库能够满足我们对全景的应用与探索. ...
- Photo Sphere Viewer渲染全景图片
下载 官方网站: ---- https://photo-sphere-viewer.js.org 附属依赖必选项: ---- three.js ---- browser.js 注: 可以直接使用 np ...
- vue与单页面 使用Photo Sphere Viewer创建vr 360全景示例代码
图片资料来源于:http://resource.haorooms.com/uploads/demo/media/3Dqj/index.html 因本人注册账号下载参考之后再到vue项目中,若有侵权请 ...
- Photo Sphere Viewer
Photo Sphere Viewer photo-sphere-viewer中文文档_陈坚泓的博客-CSDN博客_photo-sphere-viewer
- 全景效果实现(Photo Sphere,photo-sphere-viewer全景虚拟漫游)
简述:全景效果我们都知道,常用于虚拟场景体验,具体怎么实现,这里给大家推荐一款组件,便于实现全景的真实效果,Photo Sphere: 使用详细: 1.下载依赖: npm install photo- ...
- blender安装panoCamAdder全景图插件
1.更新blender版本到3.2 https://www.blender.org/download/release/Blender3.2/blender-3.2.0-windows-x64.msi/ ...
- JS+CSS3 360度全景图插件 - Watch3D.js
日常闲扯 从上一篇文章到这篇中间快过了一年了,时间真滴过得快.不是在下中间没想过写新的文章,而是自己确实变懒了(体重+1 +1 +1 +1....) ..OTL...不过到最后觉得还是需要写点东西,不 ...
- 360全景html插件,jQuery 360度全景图插件 PANORAMA VIEWER
插件描述:PANORAMA VIEWER将帮助您把全景照片嵌入在网站上.使用鼠标拖拽方试查看效果. 基本用法 现在你可以用这个插件显示你的全景照片.因此,首先你必须将最新的jQuery库,jquery ...
最新文章
- Sharepoint 2007 用户信息管理总结(2) - 用户信息管理
- 【拔刀吧少年】之awk文本和数据处理编程语言
- asp.net验证码图片生成示例
- java lambda表达式详解_Java8新特性:Lambda表达式详解
- TypeScript算法专题 - blog2 - 单链表节点的索引、结点删除与链表反转
- 我们学校有一个计算机室英文,深圳朗文版小学二年级下册Unit 2 At school练习题...
- c51单片机矩阵键盘1602计算器_基于AT89C51单片机的十进制计算器系统设计
- 香橙派OrangePi Zero开发板的WiFi连接测试
- centos7搭建aria2+yaaw
- MySql 报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains....
- 静态NAT64实验配置
- 2021年全球社交应用支出排行榜TikTok列榜首;小猪佩奇和抖音推出防沉迷系列视频 | 美通社头条...
- 一顿操作猛如虎,仔细一看原地杵,程序员为什么要读源代码
- 关于react hook视频讲解笔记
- mysql 不免费了? java收费还远吗?
- 手机 html病毒,超级手机病毒
- 1014: 求三角形的面积 C语言
- configSections(配置文件)
- Team团队管理执行力
- c语言中的 t占的字节数,2017年9月计算机二级考试C语言预习自测题(4)