360度全景展示图片全景图片插件

  • 1269
  • 0
  • 0


tpanorama

插件包括两部分:全景展示部分,全景标记编辑部分,二者结合使用非常方便!

使用插件首先需要引用 three.js

1.全景展示

1.1 参数说明


参数名称 类型 说明
container string 存放全景的容器id
url string 存放全景图片的路径
lables array {position:{lon:经度,lat:纬度},logoUrl:'logo路径',text:'内容'}
widthSegments num 水平切段数
heightSegments num 垂直切段数(值小粗糙速度快,值大精细速度慢)
pRadius num 全景球的半径,影响视觉效果,推荐使用默认值
minFocalLength num 镜头最小拉近距离
maxFocalLength num 镜头最大拉近距离
showlable 'show'/'click' 显示标记的方式,分为直接显示和点击显示


1.2 公用方法
方法名称
说明
config
给全景对象设置配置信息
init
初始化全景对象
clean
清除全景对象


1.3 使用

初始化:(参数不设置则采用默认参数)

  1. var opt, tp;
  2. window.onload = function() {
  3.     opt = {
  4.         container: 'panoramaConianer', //容器
  5.         url: 'img/p1.png',
  6.         lables: [{
  7.             position: {
  8.                 lon: 180,
  9.                 lat: 0
  10.             },
  11.             logoUrl: '',
  12.             text: '我是一个标记'
  13.         }],
  14.         widthSegments: 60, //水平切段数
  15.         heightSegments: 40, //垂直切段数(值小粗糙速度快,值大精细速度慢)
  16.         pRadius: 1000, //全景球的半径,推荐使用默认值
  17.         minFocalLength: 6, //镜头最a小拉近距离
  18.         maxFocalLength: 100, //镜头最大拉近距离
  19.         showlable: 'show' // show,click
  20.     }
  21.     tp = new tpanorama(opt);
  22.     tp.init();
  23. }
复制代码

修改某些参数

  1. opt.showlable = 'click';
  2. opt.lables = [{position:{lon:180,lat:0},logoUrl:'img/logo.png',text:'点击了这个标记'}];
  3. opt.url = 'img/p1.png';
  4. tp.clean();
  5. tp.config(opt);
  6. tp.init();
复制代码

2.添加全景标记工具

在展示全景的时候,你或许会对标记的位置产生了疑问,如何确定标记的位置?

我们可以使用类似经纬度的参数来表达它,注意这里使用的经纬度并不是真正的经纬度,是我们根据地球的经纬度模拟出来的一个参数。

下面这个工具就是用于获取我们想标记位置的 '经纬度'的一种方法,有了这个工具就可以完美结合上面的全景展示工具来使用了。

2.1 参数说明

参数名称
类型
说明
container
string
存放全景设置的容器id
imgUrl
string
全景图路径
width
string
指定宽度(这里图片必须严格按比例放置),高度自适应
showGrid
bool
是否显示全景图的网格
showPosition
bool
是否显示经纬度信息框
lableColor
string
标记在图上的颜色
gridColor
string
绘制格网的颜色
lables
array
以前标记过的标记 {lon:114,lat:38,text:'标记一'}
addLable
bool
是否开启双击添加标记(必须开启经纬度提示)
getLable
bool
是否开启右键查询标记 (必须开启经纬度提示)
deleteLbale
bool
开启默认中键删除 (必须开启经纬度提示)

2.2 公共方法


方法名称
说明
config
给全景对象重新设置配置信息
init
初始化全景设置对象
getAllLables
获取所有已经添加的标记
addLable
用于手动设置添加标记
getLable
用于手动设置获取标记
delete
用于手动删除标记
listen
对全景对象监听事件
2.3 使用

2.3.1 默认参数使用

使用默认参数,对标记的增删查改已封装好,所有标记设置完成时可使用getAll方法与数据库进行交互

初始化(参数不设置则采用默认参数)

  1. var opt, s;
  2. window.onload = function() {
  3.     opt = {
  4.         container: 'set', //setting容器
  5.         imgUrl: 'img/p3.png',
  6.         width: '1000px', //指定宽度,高度自适应
  7.         showGrid: true, //是否显示格网
  8.         showPosition: true, //是否显示经纬度提示
  9.         lableColor: '#9400D3', //标记颜色
  10.         gridColor: '#48D1CC', //格网颜色
  11.         lables: [{
  12.             lon: -72.00,
  13.             lat: 9.00,
  14.             text: '蓝窗户'
  15.         }, {
  16.             lon: 114.12,
  17.             lat: 69.48,
  18.             text: '一片云彩'
  19.         }, {
  20.             lon: 132.48,
  21.             lat: -12.24,
  22.             text: '大海'
  23.         }], //标记   {lon:114,lat:38,text:'标记一'}
  24.         addLable: true, //开启后双击添加标记  (必须开启经纬度提示)
  25.         getLable: true, //开启后右键查询标记  (必须开启经纬度提示)
  26.         deleteLbale: true //开启后中键删除(必须开启经纬度提示)
  27.     };
  28.     s = new tpanoramaSetting(opt);
  29.     s.init();
  30. }
复制代码

参数切换

  1. function changeImg(name) {
  2.     if (name == "p1") {
  3.         opt.lables = [{
  4.             lon: 178.56,
  5.             lat: -15.84,
  6.             text: '神像'
  7.         }]
  8.     }
  9.     if (name == "p2") {
  10.         opt.lables = [{
  11.             lon: -80.64,
  12.             lat: -16.92,
  13.             text: '蓝色'
  14.         }, {
  15.             lon: 46.80,
  16.             lat: 10.44,
  17.             text: '绿色'
  18.         }]
  19.     }
  20.     if (name == "p4") {
  21.         opt.lables = [{
  22.             lon: 48.96,
  23.             lat: -20.16,
  24.             text: '樱花'
  25.         }]
  26.     }
  27.     opt.imgUrl = 'img/' + name + '.png';
  28.     s.clean();
  29.     s.config(opt);
  30.     s.init();
  31. }
复制代码

2.3.2 自定义事件

很多情况下默认参数不能满足我们的业务需求,这时可以自定义事件。

插件提供了listen函数用于监听各种事件。


添加标记:

  1. s.listen('dblclick', function(e) {
  2.     var text = prompt("标记名称");
  3.     if (text != null && text != undefined && text != "") {
  4.         s.addLable(e, text);
  5.         alert("添加标记:" + text + " 后台交互");
  6.     }
  7. });
复制代码

查询标记:

  1. s.listen('mousedown', function(e) {
  2.     if (e.button == 2) {
  3.         var p = s.getLable(e);
  4.         if (p.lon != null && p.lon != undefined && p.lon != "") {
  5.             alert("经度:" + p.lon + ",纬度:" + p.lat + ",名称:" + p.text + "   其他操作");
  6.         }
  7.     }
  8. });
复制代码

删除标记:

  1. s.listen('mousedown', function(e) {
  2.     if (e.button == 1) {
  3.         var p = s.getLable(e);
  4.         if (p.lon != null && p.lon != undefined && p.lon != "") {
  5.             var c = confirm("您确认要删除该标记吗?");
  6.             if (c) {
  7.                 s.delete(p);
  8.                 s.clean();
  9.                 s.init();
  10.                 alert("删除成功!   后台交互")
  11.             }
  12.         }
  13.     }
  14. });
复制代码


360度全景展示图片全景图片插件
  • 123321666 刚刚下载了一个素材
  • qqTomY56 刚刚下载了一个素材
  • dampson 刚刚下载了一个素材
  • 小小小人物 刚刚下载了一个素材
  • 一个普通的人 刚刚下载了一个素材
  • qqxpyTX 刚刚下载了一个素材
  • Allen111 刚刚下载了一个素材
  • 許7474 刚刚下载了一个素材
  • 牧6604 刚刚下载了一个素材
  • 卜小姐 刚刚下载了一个素材
  • qqawaituoj 刚刚下载了一个素材
  • 镇魔曲 刚刚下载了一个素材
  • qqPfag 刚刚下载了一个素材
  • minifun 刚刚下载了一个素材
  • qqRANNdl 刚刚下载了一个素材
分享者:
分享者头像
小编
热门素材推荐
HTML素材网,HTML5模板,网页特效 微信公众账号二维码 淘宝店铺地址二维码
Copyright©2024  素材8  Powered by 智伙伴科技
   鲁ICP备14029286号-5 鲁公网安备37060202001967号
返回顶部返回顶部
发布主题