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

【UniApp】uniapp中使用PhotoSphereViewer全景图

CrazyPanda发表于:2024-01-10 12:09:49浏览:497次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框架中引入腾讯云播放器。1、注册腾讯云账号在引入腾讯云播放器之前,
发表于:2023-12-25 浏览:325 TAG:
【UniApp】uniapp及vue中动画功能实现方案
需求场景:实际开发过程中,我们经常遇到各类比较炫酷的动画开发,比如简单的echarts插件使用,animation动画等...动画实现方案:1.css动画,如gif,a-png,animation,transform等animation: handleAni 1s linear infinite; @keyframes handleAni {     0% { //css样式&
发表于:2023-12-12 浏览:376 TAG:
【UniApp】uniapp怎么判断是否安装微信
随着移动互联网的发展,微信已经成为了国内用户相对来说最为普及和使用最为广泛的社交工具。对于一些涉及到微信相关功能的应用程序开发者来说,需要在程序中加入判断用户是否已经安装了微信应用,以便在用户没有安装微信的情况下给出相应的提示或选择其他途径实现相关功能。在uniapp开发中,我们可以使用uniapp自带的uni.getProvider()函数来判断当前设备是否安装了某个提供商的应用程序。而微信作为目前国内使用最为广泛的社交工具之一,这里我们主要介绍如何使用uni.getProvider
发表于:2023-12-17 浏览:391 TAG:
【UniApp】uniapp引入iconfont图标及使用方式
🧊 前言本文主要讲述的是在使用uniapp中如何引入iconfont图标,以及两种常用的位置。位置一:App下原生导航栏的按钮使用字体图标。位置二:页面中的任意位置使用iconfont图标。🌺 正文第一步:打开iconfont官网新建项目并添加自己所需要的图标这里是iconfont的网址链接: iconfon官网 新建项目        不要勾选彩色,会导致在项目中无法修改字体颜色及样式,本人亲测,找了半天解决办
发表于:2023-12-08 浏览:415 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 浏览:351 TAG:
【UniApp】uniapp的标题怎么动态修改
Uniapp是一个基于Vue.js框架的跨平台开发工具,它可以将一个项目一次性编译成多个平台的应用程序,同时还提供了一些独特的功能,如动态修改标题等。在Uniapp中,我们可以很容易地实现动态修改标题的功能,具体方法如下:首先,在Vue组件中,我们可以使用mounted函数来获取到当前的页面实例,然后使用$refs属性来获取到头部组件中的标题组件,接着我们就可以使用this.$refs.title对象来对标题进行修改。示例代码如下:mounted() {  &nbs
发表于:2023-12-25 浏览:361 TAG:
【UniApp】Uniapp 本地插件安装教程
文章目录【Uniapp】Uniapp 本地插件安装教程1、创建插件目录2、把插件放到本地插件目录下3、配置插件4、制作自定义基座5、运行测试插件是否正常!【Uniapp】Uniapp 本地插件安装教程1、创建插件目录目录名称为 nativeplugins,这个是固定的 2、把插件放到本地插件目录下3、配置插件选择本地插件 勾选插件点确定检查插件是否安装完成4、制作自定义基座首先制作自动以基座,然后运行基座选择:自定义基座 5、运行测试插件是否正常!
发表于:2023-12-21 浏览:348 TAG:
【UniApp】最新uniapp打包IOS详细步骤
需要公司提供苹果开发者账号即可1. 打开苹果开发者官网点击打开链接🔗2.点击这个选项打开开发者配置需要注册账号并花钱加入成为开发者才会显示这个选项,一般公司会提供苹果开发者账号的3. 先配置证书Certificates 4.这里需要上传一个CSR文件5.生成CSR文件需要去这个网站 生成,或者通过别的渠道生成CSR文件PS: 上面的网站已经挂了,现在可用网站https://www.yunedit.com/,流程还是一样,生成需要使用到的文件就行  6. 去上传刚刚下载的CSR文件7. 下载苹果
发表于:2023-12-21 浏览:345 TAG:
【UniApp】UniApp原生讯飞语音插件-YL-SpeechRecognition
由于插件文档图片部分可能无法显示,可以移步到CSDN博客,查看完整文档:https://blog.csdn.net/baiyuliang2013/article/details/130925332插件说明:支持安卓IOS双端!新版本已由必须联系本人打离线包,升级为线上购买后自主导入sdk打包,更方便快捷!当然,您在使用时遇到问题依然可以联系本人QQ:453503875,微信:同qq。若您只需要安卓端,可使用:Uts版插件:https://ext.dcloud.net.cn/plugin?id=1
发表于:2023-12-07 浏览:358 TAG:
【UniApp】uniapp实现如何使用JSBridge实现与原生交互
uniapp实现如何使用JSBridge实现与原生交互,需要具体代码示例一、背景介绍在移动应用开发中,有时需要与原生环境进行交互,比如调用原生的一些功能或获取原生的一些数据。uniapp作为一种跨平台的移动应用开发框架,提供了一种方便的方式来实现与原生交互,即使用JSBridge进行通信。JSBridge是一种前端与移动原生端进行交互的技术方案,通过在前端和原生端分别实现一个桥梁,使得前端可以调用原生的方法和获取原生的数据,同时原生也可以通过桥梁向前端发送消息。二、JSBridge的实
发表于:2023-12-24 浏览:517 TAG: