pannellum插件 多分辨率 多场景转换 自动加载

  • 简单功能可以使用vue的插件

  • vue-pannellum组件
    https://github.com/jarvisniu/vue-pannellum

  • pannellum插件
    https://pannellum.org/

  • 下载pannellum,多分辨的json文件使用python转换

  • 创建全景图模块,使用type: “multires”,设置为多分辨率,通过python生成的json文件来将数据设置在场景中,实现多场景的多分辨率全景图

  • 多场景时,设置autoLoad不生效,无法自动加载,可以使用this.viewer.loadScene(‘circle’)来实现进去后场景自动加载,若是单场景,不需要切换场景,可以直接使用json的url设置将"type": "multires"设置后,"multiRes"设置为对应的url即可

//在template内
<template>
  <div id="panorama" :style="height">
    <div class="list">
      <div :class="num==0?'btn2':'btn1'" @click="scene1Change1">按钮1</div>
      <div :class="num==1?'btn2':'btn1'" @click="scene1Change2">按钮2</div>
      <div :class="num==2?'btn2':'btn1'" @click="scene1Change3">按钮3</div>
    </div>
    <div class="appearn_conten">
      <p>
        {{text}}
      </p>
    </div>
  </div>
</template>
//在javascript中
<script>
import "pannellum";
import "pannellum/build/pannellum.css";
import axios from "axios";
export default {
  data() {
    return {
    	 viewer: null,
		 height: "",     
		}
    },
    mounted() {
    //自适应高度
    let widowHeight = window.innerHeight
      ? window.innerHeight
      : document.documentElement && document.documentElement.clientHeight
      ? document.documentElement.clientHeight
      : document.body.offsetHeight;
    this.height = `height:${widowHeight}px`;
   	this.createdPannellum()
  },
  methods:{
		//创建全景图
		createdPannellum(){
			 // 设置场景,先将默认场景设置
     			   console.log(res);
     		   this.viewer = pannellum.viewer("panorama", {
          		 type: "multires",
          		 //设置场景的默认属性
         		 default: {
         		   firstScene: "circle",//默认场景
           		  sceneFadeDuration: 1000,//切换场景时间为1秒
          		},
          		//场景的设置
         		 scenes: {
         		 //可以在这里设置多个场景
           			 circle: {
						"basePath":`json文件路径`
						},//设置场景
         		 },
       		 });
       		 this.viewer.loadScene('circle')//场景自动加载,因为在配置的时候autoLoad不生效,所以调用加载场景的事件,实现自动加载
     	
     	 //下面可以循环获取python生成的json文件,添加不同的场景
   		
      		  this.viewer.addScene('house',{
						"basePath":`json文件路径`
						})
		},
	scene1Change1() {
      console.log("第一个按钮点击");
      //切换场景也可以使用loadScene进行切换
      this.viewer.loadScene("house");
      
    },
    scene1Change2() {
      console.log("第二个按钮点击");
     
      this.viewer.loadScene("circle");
    },
    scene1Change3() {
     
      console.log("第三个按钮点击");
    },
	}
 }
</script>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值