krpano答疑
krpano加载数量极多的scene的方法
对于scene数量极多的项目,使用将scene标签整合在一个xml的方法(使用MAKE VTOUR droplet.bat生成),也即是通过loadscene的方式加载的话,会导致主xml文件体积变得很大,这样的话初次加载的话可能会花费很长的时间。
因为可使用MAKE PANO droplet.bat,对每个单独的全景图生成一个独立的xml,加载场景时使用loadpano。
使用JS代码执行scene标签与hotspot标签分离的场景加载
将hotspot代码单独放在某个data元素中。
1 2 |
var sceneXML = 'loadxml(<krpano>' + krpano.get('scene[get(xml.scene)].content') + krpano.get('data[hotspots].content') + '</krpano>, , MERGE)' krpano.call('loadxml(' + sceneXML +" )') |
krpano各版本bug汇总
bug具有时效性,本文首次发布的时候是2017年10月20日,krpano的版本目前已经更新到1.20.9,因此在pr13中已经修正的之前的版本的bug不会在本文出现。
(更多…)
球面坐标转换到全景图坐标
我们要研究的是3D空间中的球体坐标转换到球体全景图中的某一点的绝对平面坐标。
首先假设我们有一张球体全景图,对于图上的任何一点,我们可以将其拖到图像处理软件中,查看鼠标所指的位置,便得到其坐标,例如x=”200″,y=“100”。
球面坐标转换到全景图坐标参考教程:在MAKE PANO (FLAT) 平面全景中添加热点
当我们将其制作成3D空间时,该点实际上变成了球体坐标,也就是hlookat和vlookat。现在我们要做的就是一个逆向处理过程。从当前鼠标所指的位置,得到其在球体全景图的绝对坐标。 (更多…)
利用textfield插件和layer嵌入在线视频
krpano的layer和hotspot是两个神奇的元素,它们支持的文件类型非常广泛,嘻嘻,其实也就支持四种: SWF、JPG、PNG、GIF。
textfield是krpano一个神奇的插件,它有一个神奇的属性HTML,不过textfield的Flash版本插件仅支持极少量的HTML4和CSS代码。大部分HTML5代码的工作只能在JS插件下完成。
我们今天介绍如何在layer中嵌入一个网站在线视频。 (更多…)
微信全景结合二维码识别
krpano制作的全景在国内应用最多的场景就是在微信上展示。因为微信与微信公众号有着密不可分的关系,客户希望在展示全景的同时也希望用户能够关注其公众号。关注公众号的办法很多,其中一种就是在微信中长按二维码进行识别,然后跳转到其公众号页面中。
因此以下都是按照HTML5的情况进行讲解:
以下隐藏内容只提供VIP赞助会员,VIP会员说明请查看置顶文章
(更多…)在MAKE PANO (FLAT) 平面全景中添加热点
在krpano的下载包中,有一个MAKE PANO (FLAT) droplet.bat,可以对单个平面照片生成渐进式的全景展示。使用非常简单,将高清平面图片直接拖拽到droplet图标上,松开,过一会儿,项目就生成好了。 (更多…)
浅谈热点坐标与观看位置的关系
问题其实很简单,就是我们如何知道查看全景时,我们所看到的位置正处于某个热点附近,也就是这个热点已经很接近画面的中央。
要解决这个问题,我们就要理解热点坐标ath、atv以及观看位置view.hlookat、view.vlookat。 (更多…)
如何使用krpano跨域使用其它域名的图片
例如我们的xml文件和插件在一个服务器上,但我们的图片在另外一个域名的服务器上。也就是说,我们要进行跨越资源调用,俗称的CORS。这里会涉及到两处设置,一个是前端的,一个是图片的。 (更多…)
默认皮肤进入场景时让导航栏缩略图滚动至中部
问题描述
无论是哪一个版本的krpano,其使用MAKE VTOUR生成默认skin时,如果导航栏缩略图宽度比当前窗口要大时,也就是窗口宽度放不下全部缩略图的情况下,当你点击视图中某个缩略图,缩略图是不会自动滚动到中部的,也就是说,如果你要点击窗口之外的缩略图,你要点击两边的箭头让相应的场景缩略图滚动到中部,然后再点击。这样自然麻烦,我们现在要实现的是,如果缩略图总宽度小于窗口宽度时,让当前场景的缩略图自动滚动到导航栏中部。
方法
用代码编辑器打开skin文件夹中的vtourskin.xml文件,找到下面的
1 |
<action name="skin_update_scene_infos"> |
的一句代码:
1 |
txtadd(parentname, 'skin_thumb_', get(scene[get(xml.scene)].index)); |
如果你是1.19版本,你可以将上述代码改为:
1 2 |
txtadd(parentname, 'skin_thumb_', get(scene[get(xml.scene)].index)); layer[skin_thumbs].scrolltocenter(calc(layer[get(parentname)].x + skin_settings.thumbs_width /2),0); |
如果你是1.18版本,你可以将上述代码改为:
1 2 3 4 |
txtadd(parentname, 'skin_thumb_', get(scene[get(xml.scene)].index)); div(now_x,skin_settings.thumbs_width,2); add(now_x,layer[get(parentname)].x); layer[skin_thumbs].scrolltocenter(get(now_x),0); |
修改默认皮肤缩略图文字大小
使用缩略图文字显示
在漫游中放置一个可以打开外链的logo
以下代码可使用右上角按钮“在新窗口中打开”复制,你可以粘贴到tour.xml中,注意不要放在scene的标签内。
1 |
<layer name="my_logo" enabled="true" capture="true" keep="true" x="0" y="0" align="righttop" url="mylogo.png" scale="1" onclick="openurl('http://www.fang.com/',_blank);" /> |
默认的皮肤模版有一个skin_logo的layer,建议如果不喜欢这个效果的话,可以直接使用上面的代码,因为使用了不同的名字,所以不会与默认的skin_logo冲突。
然后你可以修改align的数值,这是对齐在屏幕的那个位置,现在是右上角。如果是左上角可以填lefttop。右下角是rightbottom,左下角是leftbottom。然后是logo地址,放在url属性中。目前这个logo和当前所在的xml文件是同一层目录。通过调整x和y,调整logo的位置。最好设置一下地址,在openurl里的地址替换一下。
注意,本地测试时,会受到浏览器的限制,会无法跳转。请看下面的链接说明:
移花接木(2)- 添加背景音乐和控制声音播放的按钮
更新于 2024.4.19 krpano 1.21.2
本案例官方下载包路径
你电脑的路径\krpano-1.21.2\viewer\examples\backgroundsound\ (1.21.2)
提示:如果不明白下载包路径是什么,请查看 循序渐进(3)- krpano下载包的使用说明
(更多…)
krpano添加分享至微博按钮
全景漫游项目在手机端和PC端有很多不同之处,其中一点就是手机端的展示平台通常自备浏览功能,例如微信右上角的三个小圆点,还有众多手机浏览器的强大分享功能。相比起手机端的分享功能,PC端的浏览器相对就差很多了。要快速将全景地址分享到微博,想通过浏览器自带的功能,并不是那么一件容易的事情。因此我们需要自己添加分享到微博的按钮。
事实上,关于分享到微博的按钮,微博本身提供了一个按钮: (更多…)
点击按钮(layer)或热点(hotspot)弹出帮助图片
这一次从解决问题的思路来解释如何实现一个简单的帮助画面。
首先我们要明确需求:
有一个按钮,它的功能就是弹出帮助画面,当点击这个按钮时,全景画面中央出现一个设计好的帮助图片,点击该图片,图片消失,同时如果不点击图片,点击按钮的话,图片也会消失。
krpano网页地址链接到指定场景和视角(适用krpano 1.19 pr2以前版本)
假设现在有那么一种情况,你拍了几套样板间,然后这十几个点(场景)都放在一个xml里,然后,这时候客户希望在能打开地址展示第一个场景的同时,还可以按照其需求通过打开网址直接看到其他场景,例如,打开网址直接就是卫生间(恶趣味的客户)。
以下方法适用于krpano 1.19 pr2及之前版本
我们不可能因为这样去调整文件中scene的位置,因为这样就需要很多个xml文件,同时又要生成很多个地址,占据服务器空间。我们只需要在原来的网页地址上做个小小手脚。
首先,我们先来看看默认皮肤中tour.xml有这么一个startup的action。 (更多…)