全景图Photo Sphere Viewer插件在HTML中的基础使用

本文介绍了如何使用photo-sphere-viewer插件在项目中实现3D全景图的拖拽查看、放大缩小以及点位标记功能。详细展示了通过引入在线文件和下载本地资源两种方式配置插件,并提供了示例代码和方法封装。此外,还分享了如何添加和响应点击标记点的回调函数。
摘要由CSDN通过智能技术生成

目录

背景

功能说明

拖拽查看

放大缩小

点位标记

插件介绍及使用方式

引入在线文件直接实现(基本页面)

下载插件至本地实现(含JS方法)

结语


背景

在公司项目开发中用到了这个插件,先记录下来使用方法,方便回顾

插件全英官网 photo-sphere-viewer.js.org/

功能说明

该插件实现了3D图 拖拽查看放大缩小点位标记

拖拽查看

放大缩小

点位标记

插件介绍及使用方式

photo-sphere-viewer 插件,它基于three.js和uEvent 2实现

引入在线文件直接实现(基本页面)

通过引入Photo Sphere Viewer的在线css样式,JS依赖,实现全景图的基本操作,可直接复制到HTML中使用

代码如下:

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 在线CSS样式 -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/photo-sphere-viewer@4/dist/photo-sphere-viewer.min.css"/>
</head>
    <!-- 在线JS -->
<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>

    <!-- 挂载的DOM元素必须有明确的宽高 -->
<div id="viewer" style="width: 100vw; height: 100vh;"></div>

<script>
  const viewer = new PhotoSphereViewer.Viewer({
    container: document.querySelector('#viewer'),  //挂载的DOM元素
    panorama: 'path/to/panorama.jpg',              //全景图路径
  });
</script>

下载插件至本地实现(含JS方法)

通过下载Photo Sphere Viewer的CSS样式以及JS依赖,并引入到HTML中使用

CSS样式JS依赖下载地址:http://47.97.66.144:8080/PhotoSphereViewer/doc.zip

(复制到浏览器下载  )

HTML页面

<head>
    <meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1.0">
        <title>tittle</title>
        <!-- 下载至本地的CSS样式 -->
        <link rel="stylesheet" type="text/css" href="css/photo-sphere-viewer.min.css" />
</head>
	<!-- 下载至本地的JS -->
	<script src="js/jquery-1.7.2.js"></script>
	<script src="js/three.min.js"></script>
	<script src="js/D.min.js"></script>
	<script src="js/doT.min.js"></script>
	<script src="js/uevent.min.js"></script>
	<script src="js/photo-sphere-viewer.js"></script>
<body>
        <!-- 全景图 -->
        <div id="photo-sphere">
               <div id="viewer"></div>
        </div>
               <style>
                    html,
                    body {
                            height: 100%;
                            margin: 0;
                            padding: 0;
                    }

                    #photo-sphere {
                            position: absolute;
                            width: 100%;
                            height: 100%;
                            margin: 0 auto;
                            box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.4);

                    }
                </style>
         <!-- 调用封装的全景图方法JS -->      
         <script src="js/(自定义名字).js"></script>
	</body>
</html>

封装的全景图方法JS

//设置标记点信息
var MARKERS = [{		
       id: 1,
       image: 'img/index/marker.png', //标记点的图标样式,可以自己更改
       width: 35,
       height: 35,
       longitude: 0.548882760744928,
       latitude: -0.36324690389825065,
       tooltip: '标记点一',
}, ]

//延时执行3D图函数,保证图片等加载完毕
setTimeout("viewer()", 600);  

//封装3D图函数
function viewer() {	

       //设置3D图信息
       var PSV = PhotoSphereViewer({  
               container: 'viewer',                  //挂载的Dom ID
               panorama: 'img/index/pingwu.jpg',     //3D图路径
               navbar: false,                        //显示导航栏
               time_anim: false,                     //播放动画延时
               anim_speed: '1rpm',                   //旋转速度 默认2rpm
               default_fov: 90,                      //默认视野
               default_long: 0.548882760744928,      //初始化角度
               default_lat: -0.36324690389825065,    //初始化角度
               size: {                               //3D图大小
                       width: '100%',
                       height: '100%',
               },
               markers: MARKERS,                     //标记点信息

       });

       //点击全景图执行的回调函数
       PSV.on('click', function() {  

       })

       // 点击图片显示标记点,控制台打印标记点的longitude,latitude点位,方便调试以及点位新增操作
       var i = 0;
       PSV.on('click', function(e) {
               i++;
               var lon = e.longitude;
               var lat = e.latitude;
               console.log(lon, lat);
               PSV.addMarker({
                       id: i,
                       image: 'img/index/marker.png',
                       width: 30,
                       height: 30,
                       longitude: lon,
                       latitude: lat,
                       anchor: 'bottom center',
                       tooltip: '灯'
               })
       });

       //点击标记点执行的回调
       PSV.on('select-marker', function(marker) { 



       });
       }

结语

该文只提到了Photo Sphere Viewer插件的基本功能使用,还有更多的方法在官网上,等这阵忙完了再去研究,感兴趣的小伙伴可以去了解下,官网在文首。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果要使用 Photo Sphere Viewer 插件加载没有后缀的图片,你可以在加载图片时,使用 `setPanorama()` 方法来指定图片的路径,并使用 `setPanoramaType()` 方法来指定图片类型。以下是一个示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Photo Sphere Viewer</title> <link rel="stylesheet" href="photo-sphere-viewer.min.css"> <style> #viewer { width: 800px; height: 600px; } </style> </head> <body> <div id="viewer"></div> <script src="photo-sphere-viewer.min.js"></script> <script> var viewer = new PhotoSphereViewer.Viewer({ container: 'viewer', panorama: '', defaultLong: Math.PI, defaultLat: 0, time_anim: false }); viewer.setPanorama('/path/to/image', null, {panorama_type: 'equirectangular'}); </script> </body> </html> ``` 在上面的示例,我们首先引入了 Photo Sphere Viewer 的 CSS 和 JavaScript 文件。然后创建了一个名为 `viewer` 的 `<div>` 元素,用于显示全景图。在 JavaScript 部分,我们创建了一个新的 `Viewer` 实例,并将其绑定到 `viewer` 容器上。然后,使用 `setPanorama()` 方法来指定图片的路径为 `/path/to/image`,并通过 `{panorama_type: 'equirectangular'}` 参数来指定图片类型为等距圆柱投影(equirectangular)。 请将示例的文件路径和图片路径替换为你自己的实际路径。注意,如果你的图片没有后缀,需要确保图片本身的格式是支持的,比如常见的 JPEG 或 PNG 格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值