应用场景

业务是需要做一个百度全景图类似的功能,看了下百度地图的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 全景图插件应用相关推荐

  1. Photo Sphere Viewer 全景图

    Photo Sphere Viewer  一款基于 three.js 的简易3D插件,方便,实用,友好,看到网上有些API有错误,所以自己写一个修正版的 该js插件可以360度旋转查看全景图,也可以上 ...

  2. 开源全景插件 Photo Sphere Viewer

    概述 日常中,我们比较常见的是街区全景,百度通过街景车采集街景数据,最后形成全景应用,百度的全景还拥有一定的交互功能,可以随着街道移动街景,作为个人开发者,有一些开源库能够满足我们对全景的应用与探索. ...

  3. Photo Sphere Viewer渲染全景图片

    下载 官方网站: ---- https://photo-sphere-viewer.js.org 附属依赖必选项: ---- three.js ---- browser.js 注: 可以直接使用 np ...

  4. vue与单页面 使用Photo Sphere Viewer创建vr 360全景示例代码

    图片资料来源于:http://resource.haorooms.com/uploads/demo/media/3Dqj/index.html  因本人注册账号下载参考之后再到vue项目中,若有侵权请 ...

  5. Photo Sphere Viewer

    Photo Sphere Viewer photo-sphere-viewer中文文档_陈坚泓的博客-CSDN博客_photo-sphere-viewer

  6. 全景效果实现(Photo Sphere,photo-sphere-viewer全景虚拟漫游)

    简述:全景效果我们都知道,常用于虚拟场景体验,具体怎么实现,这里给大家推荐一款组件,便于实现全景的真实效果,Photo Sphere: 使用详细: 1.下载依赖: npm install photo- ...

  7. blender安装panoCamAdder全景图插件

    1.更新blender版本到3.2 https://www.blender.org/download/release/Blender3.2/blender-3.2.0-windows-x64.msi/ ...

  8. JS+CSS3 360度全景图插件 - Watch3D.js

    日常闲扯 从上一篇文章到这篇中间快过了一年了,时间真滴过得快.不是在下中间没想过写新的文章,而是自己确实变懒了(体重+1 +1 +1 +1....) ..OTL...不过到最后觉得还是需要写点东西,不 ...

  9. 360全景html插件,jQuery 360度全景图插件 PANORAMA VIEWER

    插件描述:PANORAMA VIEWER将帮助您把全景照片嵌入在网站上.使用鼠标拖拽方试查看效果. 基本用法 现在你可以用这个插件显示你的全景照片.因此,首先你必须将最新的jQuery库,jquery ...

最新文章

  1. Sharepoint 2007 用户信息管理总结(2) - 用户信息管理
  2. 【拔刀吧少年】之awk文本和数据处理编程语言
  3. asp.net验证码图片生成示例
  4. java lambda表达式详解_Java8新特性:Lambda表达式详解
  5. TypeScript算法专题 - blog2 - 单链表节点的索引、结点删除与链表反转
  6. 我们学校有一个计算机室英文,深圳朗文版小学二年级下册Unit 2 At school练习题...
  7. c51单片机矩阵键盘1602计算器_基于AT89C51单片机的十进制计算器系统设计
  8. 香橙派OrangePi Zero开发板的WiFi连接测试
  9. centos7搭建aria2+yaaw
  10. MySql 报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains....
  11. 静态NAT64实验配置
  12. 2021年全球社交应用支出排行榜TikTok列榜首;小猪佩奇和抖音推出防沉迷系列视频 | 美通社头条...
  13. 一顿操作猛如虎,仔细一看原地杵,程序员为什么要读源代码
  14. 关于react hook视频讲解笔记
  15. mysql 不免费了? java收费还远吗?
  16. 手机 html病毒,超级手机病毒
  17. 1014: 求三角形的面积 C语言
  18. configSections(配置文件)
  19. Team团队管理执行力
  20. c语言中的 t占的字节数,2017年9月计算机二级考试C语言预习自测题(4)

热门文章

  1. 【19调剂】华东师范大学计算机/软件工程非全日制调剂
  2. Java自学基础 常用类
  3. SCCB与IIC的异同及FPGA实现的注意事项
  4. 智能数显压力开关怎么使用?
  5. 火山小视频消重复技巧 怎么看视频md5
  6. 四川省部分地区经济发展水平的统计分析
  7. 通过Delphi打造自己的文本编辑器
  8. Himall商城插件内部成员\获取已安装的插件信息\获取指定的插件信息
  9. e2ee断点有时候断不下来解决方法
  10. 聊聊线性代数(14)SVD的应用--2