您的当前位置:首页>全部文章>文章详情

【UniApp】uniapp中使用PhotoSphereViewer全景图

CrazyPanda发表于:2024-01-10 12:09:49浏览:489次TAG:

近期有个项目要用到全景图,就开始研究做了一个demo,每次使用一个新东西,迎接的都是挑战

本案例是在uniapp中引入全景图,插入markers节点:

1. 下载依赖包

npm install photo-sphere-viewer

安装之后下载下来的包含 three.js  uevent.js  photo-sphere-viewer

20200514133727751.png

注: 可以不用在当前项目下创建node_modules,只需要把用到的文件复制到项目目录下即可

2.uniapp中使用es6引入外部文件

page.vue 中

引入PhotoSphereViewer,MarkersPlugin,GyroscopePlugin,StereoPlugin,最新PhotoSphereViewer中没有MarkersPlugin,GyroscopePlugin,StereoPlugin,使用时需要单独引入,视情况而定

import { Viewer as PhotoSphereViewer } from 'photo-sphere-viewer';
    import MarkersPlugin from 'photo-sphere-viewer/dist/plugins/markers'
    import 'photo-sphere-viewer/dist/photo-sphere-viewer.css';
    import 'photo-sphere-viewer/dist/plugins/markers.css';
    var viewer = new PhotoSphereViewer({
                    container: ‘container’, //容器
                    panorama: ‘urls’, //拼合图片路径
                    size: {
                        width: '100%',
                        height: screen.availHeight
                    },
                    defaultZoomLvl: 50,
                    navbar        : [
                          'autorotate', 'zoom', 'download', 'markers', 'markersList','caption', 'fullscreen',
                    ],
                    plugins: [
                          // GyroscopePlugin,   //根据需要引入
                          // StereoPlugin,
                          [MarkersPlugin, {
                            markers: (function () {
                              var a = [];                       
                               a.push({
                                  id       : 'circle',
                                  tooltip  : 'A circle of radius 30',
                                  circle   : 30,
                                  svgStyle : {
                                    fill       : 'rgba(255,255,0,0.3)',
                                    stroke     : 'yellow',
                                    strokeWidth: '2px',
                                  },
                                  longitude: -0.5,
                                  latitude : -0.28,
                                  anchor   : 'center right',
                                });
                      
                                a.push({
                                  id       : 'ellipse',
                                  tooltip  : 'An ellipse of radius 60/30',
                                  ellipse  : [60, 30],
                                  svgStyle : {
                                    fill       : 'rgba(255,255,0,0.3)',
                                    stroke     : 'yellow',
                                    strokeWidth: '2px',
                                  },
                                  longitude: -0.5,
                                  latitude : -0.28,
                                  anchor   : 'center left',
                                });
                              
                              return a;
                            }())
                          }],
                        ]
                })

3.获取MarkersPlugin 

const markersPlugin  = viewer.getPlugin(MarkersPlugin);

markersPlugin.addMarker({id: 'new-marker',longitude: '45deg',latitude: '0deg',image: 'assets/pin-red.png',});
markersPlugin.on('select-marker', (e, marker) => {markersPlugin.updateMarker({id: marker.id,image: 'assets/pin-blue.png'});});

4.更多使用 还请看官网案例

https://photo-sphere-viewer.js.org

https://github.com/mistic100/Photo-Sphere-Viewer/issues/377

此版本和上一版本变化比较大,没有头绪时可以看下迭代日志

猜你喜欢

【UniApp】uniapp怎么关闭软键盘
在开发移动应用程序时,我们经常需要用户在输入框中输入信息。然而,在某些情况下,软键盘通常会影响到应用程序的用户体验。在使用uniapp框架时,我们常常需要关闭软键盘,以方便应用程序的使用。在本文中,我们将探讨如何在uniapp中关闭软键盘。在uniapp中,我们可以使用原生的方式关闭软键盘。一种方法是在输入框之外的任何位置单击。这将导致键盘被隐藏,并使输入框失去焦点。但是,这种方法可能会在用户意外单击页面上的其他区域时导致数据丢失或者用户体验变得不好。另一种方法是通过JavaScri
发表于:2023-12-17 浏览:552 TAG:
【UniApp】Flutter和uniapp的区别:适用场景、生态系统和社区支持
随着移动应用开发领域的迅速发展,各种跨平台开发框架也应运而生。在这些框架中,Flutter和uniapp无疑是两个备受关注的热门选择。它们都具有跨平台开发的能力,但在适用场景、生态系统和社区支持等方面存在一些区别。首先,适用场景是选择开发框架的重要考虑因素之一。Flutter是Google推出的UI框架,使用Dart语言进行跨平台开发。它主要适用于开发高性能的移动应用程序,特别是那些对视觉效果和动画效果要求较高的应用。Flutter具有热重载功能,在开发过程中能够实时预览修改后的效果,提高开发效
发表于:2024-03-31 浏览:310 TAG:
【UniApp】Flutter和uniapp的异同和特点
在移动应用开发领域,Flutter和uniapp是两个备受关注的跨平台开发框架。它们的出现使得开发者能够快速且高效地开发同时支持多个平台的应用程序。然而,尽管它们有着相似的目标和用途,但在细节和特性方面存在一些差异。接下来,我们将深入比较Flutter和uniapp,并探讨它们各自的特点。Flutte是由Google推出的开源移动应用开发框架。Flutter使用Dart编程语言,它不仅提供了一个丰富的UI组件库,还使用自绘引擎来实现高性能的渲染效果。与传统的原生开发相比,Flutter可以在不同
发表于:2024-03-31 浏览:280 TAG:
【UniApp】Flutter与uniapp哪个更适合移动应用开发需求
今天,移动应用开发已成为越来越多企业和个人关注的重点领域。对于开发者来说,选择一种适合自己需求的开发框架至关重要。在众多可选的开发框架中,Flutter和uniapp都是备受关注的两个。本文将比较这两个框架的优缺点,帮助读者选择最适合自己的移动应用开发方案。首先,让我们来了解一下这两个框架。Flutter是由谷歌开发的跨平台移动应用开发框架,其使用Dart语言进行编码。而uniapp是由DCloud开发的跨平台应用框架,其使用了Vue.js作为基础框架。对比Flutter和uniapp,首先要考
发表于:2024-03-31 浏览:283 TAG:
【UniApp】uniapp中如何实现音频录制和声音处理
UniApp是一个基于Vue.js的跨平台开发框架,可以帮助开发者在一次编码的基础上同时生成多个平台的应用,包括iOS、Android、H5等。在UniApp中实现音频录制和声音处理的功能,需要使用到uni-extend插件和uni-audio组件。首先,在你的UniApp项目中,需要安装uni-extend插件。打开命令行窗口,切换到你的项目目录下,运行以下命令来安装uni-extend插件:npm install uni-extend安装完成后,在你的项目中创建
发表于:2023-12-11 浏览:344 TAG:
【UniApp】利用uniapp实现图标动画效果
利用uniapp实现图标动画效果引言:在现代科技发展的背景下,人们对于跨平台开发需求越来越高。而uniapp作为一种基于Vue.js的前端框架,实现了一套代码多端运行的理念,成为了众多开发者的首选。本文将探讨如何利用uniapp实现图标动画效果,通过具体的代码示例来展示实现的过程。一、准备工作首先,我们需要一个uniapp项目的基础架构。可以在HBuilderX等开发工具中创建一个uniapp项目,这里不再赘述具体步骤。二、下载图标库在实现图标动画效果之前,我们需要准备一些图标资源。可
发表于:2023-12-09 浏览:400 TAG:
【UniApp】uniapp引入iconfont图标及使用方式
🧊 前言本文主要讲述的是在使用uniapp中如何引入iconfont图标,以及两种常用的位置。位置一:App下原生导航栏的按钮使用字体图标。位置二:页面中的任意位置使用iconfont图标。🌺 正文第一步:打开iconfont官网新建项目并添加自己所需要的图标这里是iconfont的网址链接: iconfon官网 新建项目        不要勾选彩色,会导致在项目中无法修改字体颜色及样式,本人亲测,找了半天解决办
发表于:2023-12-08 浏览:407 TAG:
【UniApp】利用uniapp实现音频播放功能
利用uniapp实现音频播放功能随着移动互联网的发展,音频播放功能成为了许多应用必不可少的功能之一。而利用uniapp可以方便地实现音频播放功能,而且具有跨平台的特点,可以在不同的移动终端上运行。在进行uniapp开发之前,我们需要先准备好音频资源文件。在本文中,我们将使用一个名为"music.mp3"的音频文件作为示例。首先,我们需要在uniapp的项目中创建一个音频播放页面。在pages文件夹下,新建一个名为"audio"的文件夹,并在该文件
发表于:2023-12-09 浏览:643 TAG:
【UniApp】如何在uniapp中实现智能推荐和个性化推送
如何在uniapp中实现智能推荐和个性化推送随着移动互联网的快速发展,用户在使用手机应用的过程中,希望能够得到个性化、智能化的推荐服务。在uniapp框架中,我们可以利用一些常用的技术手段,实现智能推荐和个性化推送功能。本文将介绍如何在uniapp中实现这两个功能,并提供具体的代码示例。一、智能推荐算法智能推荐是一种根据用户的行为和偏好,自动给用户推荐最相关的内容。常见的智能推荐算法有基于协同过滤的算法、基于内容的算法和基于深度学习的算法。在uniapp中,我们可以使用uniCloud
发表于:2023-12-24 浏览:332 TAG:
【UniApp】uniapp实现滑动验证功能
利用uniapp实现滑动验证功能一、简介滑动验证是一种常见的验证方法,通过用户在页面上滑动滑块来验证身份。在移动端应用和网页中广泛应用,可以有效地防止机器人攻击和恶意注册。本文将介绍如何使用uniapp框架实现滑动验证功能,并提供具体的代码示例。二、实现步骤创建uniapp项目首先,我们需要创建一个uniapp项目。打开HBuilderX或其他uniapp开发工具,点击新建项目,选择模板为uni-app,填写项目名称等信息,点击确认创建项目。引入滑动验证组件uniapp支持通过npm方
发表于:2023-12-28 浏览:375 TAG: