krpano--控制热点跳转到场景的指定视角

krpano课堂(肥宗) · 2015-07-13 19:32

有这么一种情况,假设我们用三个场景,这三个场景恰好是一条街道的同一方向的三个拍摄点。如上图。

我们可以通过设置A、B、C三个场景中的view元素中的hlookat属性,实现了从A到B、从B到C保持同一个方向。假设我们的图是左东右西的方向。那我们站在A点面向B的方向,我们会看到链接到B的热点,当我们点击该热点时,初始视角应该还是面向东方,也就是能看到更远处的链接到C的热点。简单来说,保持了方位的统一。

问题来了,当我们从C回到B,或者从B回到A时,进入场景的时候初始视角还是面向东方,而不是面向西方,这样就没有保持方位的统一。如何在krpano的默认热点中实现方位的统一呢?

krpano默认生成热点的代码控制分为两个部分,一个是tour.xml中的每个hotspot元素,一个是在vtourskin.xml中对应的名为skin_hotspotstylestyle元素。

tour.xml中某个热点:

 
<hotspot name="spot1" style="skin_hotspotstyle" ath="200.496" atv="10.890"linkedscene="scene_a1kt" />

vtourskin.xml中的style:

 
<style name="skin_hotspotstyle" url="vtourskin_hotspot.png" scale="0.5" edge="top" oy="0"distorted="false"

tooltip=""

onclick="if(linkedscene, skin_hidetooltips(); tween(scale,0.25,0.5); tween(oy,-20,0.5); tween(alpha,0,0.5); looktohotspot(); loadscene(get(linkedscene),null,get(skin_settings.loadscene_flags),get(skin_settings.loadscene_blend)); skin_updatescroll(); );"

onloaded="if(skin_settings.tooltips_hotspots, if(linkedscene, copy(tooltip,scene[get(linkedscene)].title); loadstyle(skin_tooltips); ));"

/>

当然,指定到特定的场景这个是没有问题的,本来热点就是指定到某个场景的。基本上我们要指定一个新的hlookat值。因此我们对hotspot的部分,例如是从C回到B时的热点,也就是在C场景中,linkedscene为B的热点:

 
<hotspot name="spot1" style="skin_hotspotstyle" ath="200.496" atv="10.890"linkedscene="scene_B" hlookat="200" />

可以看到我们加了一个hlookat=”200″,这个就是我们从C进入到B时的初始视角。该值的获取可以使用options插件。

然后我们将style改为:

 
<style name="skin_hotspotstyle" url="vtourskin_hotspot.png" scale="0.5" edge="top" oy="0"distorted="false"

tooltip=""

onclick="if(linkedscene, skin_hidetooltips(); tween(scale,0.25,0.5); tween(oy,-20,0.5); tween(alpha,0,0.5); looktohotspot(); loadscene(get(linkedscene),null,get(skin_settings.loadscene_flags),get(skin_settings.loadscene_blend)); skin_updatescroll();if(hlookat,lookat(get(hlookat),get(view.vlookat),110)); );"

onloaded="if(skin_settings.tooltips_hotspots, if(linkedscene, copy(tooltip,scene[get(linkedscene)].title); loadstyle(skin_tooltips); ));"

/>

其实这里我们是在onclick事件中的if中增加了一个

 
if(hlookat,lookat(get(hlookat),get(view.vlookat),110));

意思就是如果存在hlookat,那么就使用lookat这个action,跳转到指定的位置。分别对应的是球面坐标中的水平和垂直位置以及视角fov

时间: 2024-08-27 20:34:59

krpano--控制热点跳转到场景的指定视角的相关文章

react-router v4 使用 history 控制路由跳转

问题 当我们使用react-router v3的时候,我们想跳转路由,我们一般这样处理 我们从react-router导出browserHistory. 我们使用browserHistory.push()等等方法操作路由跳转. 类似下面这样 import browserHistory from 'react-router'; export function addProduct(props) { return dispatch => axios.post(`xxx`, props, config

js控制页面跳转,清缓存,强制刷新页面

单看标题,必定满脸蒙13. 其实,想表达的仅仅是,在js中通过window.location.href控制页面跳转时,有时会跳转至缓存页面,并没有真正去请求要跳转的地址,导致页面数据未能及时加载刷新. 直奔code... 解决办法: 在HTML中埋入隐藏from,通过js调用from进行请求链接地址 <form id='hidden_submit_info' method="post" enctype="multipart/form-data" action=

c++里解决“控制传输跳过的实例化”的方法

c++里解决“控制传输跳过的实例化”的方法 现遇到了一个错误,如下: 这个原因是在case 里定义了变量csTime,解决方法是用大括号解决其变量作用域.也就是这样: 这样就成功的解决了问题. 程序也就能正常的跑起来了:

Jsp页面跳转和js控制页面跳转的几种方法

Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet或者是JSP到另外的一个Servlet.JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有

Error:控制传输跳过的实例化解决办法

switch红色下划线, Error:控制传输跳过的实例化解决办法 (2012-12-26 13:39:52) 转载▼ 标签: 杂谈   如下: switch(iParam1) { case 0:     CString strResult;   strResult.Format(_T("%s"), iParam2);   break;   case 1:   break; default:  break; } 会提示控制传输跳过的实例化解决办法 因为在case 0:中定义了一个变量s

React-Router JS&#25511;&#21046;&#36335;&#30001;&#36339;&#36716;

React-Router JS控制路由跳转 时间: 2016-04-12 15:01:20 作者: zhongxia React-Router 控制路由跳转的方式,目前知道的有两种[Link 链接, 和 JS控制跳转 ] ,但是最常用的就是 用 Link(类似 a 标签),来进行跳转 JS实现方式 由于有时候需要 点击某个标签,或者某一个按钮,来动态的实现页面跳转的地址,这个就需要使用到 JS 来实现 实现的代码很简单 this.props.history.pushState(null, url

JS弹出框、对话框、提示框,JS关闭窗口、关闭页面和JS控制页面跳转

一.JS弹出框.对话框.提示框 //====================== JS最常用三种弹出对话框 ======================== //1弹出对话框并输出一段提示信息 function ale() { //弹出一个对话框 alert("提示信息!"); } //2弹出一个询问框,有确定和取消按钮 function firm() { //利用对话框返回的值 (true 或者 false) if (confirm("你确定提交吗?")) { a

KRPano动态热点专用素材图50多个,加动态热点使用方法

KRPano动态热点专用素材是一种特定形式的序列图,该序列图要求帧的水平和垂直的具体位置必须准确,否则图的动作将会出现错乱,KRPano不支持动态图.目前网上比较匮乏动态热点素材,在此亲手整理制作了50多个热点素材图. 使用的时候请用横着或者竖着的长图,这个就是动态热点素材图,其它的图我们直接看到图像内容的是给大家预览的,好知道是什么热点素材图,KRPano会自动识别这种素材图,播放顺序从左到右.从上到下. 每张热点素材图,都是亲手拆解动态图.组合序列图等流程完成整理制作的,光是动态图网上就很不

如何通过报表单元格右键控制报表跳转到不同链接地址

需求说明: 润乾报表的单元格中支持超链接属性,用户可以通过设置该属性,实现在浏览器端用鼠标点击某个单元格跳转到指定页面,并且还能够传递所需要的参数,从而实现数据的钻取(详见<玩转报表超链接>).不过这种超链接的设置方式只能跳转到单一的指定页面,在一些特殊的业务要求中,用户可能需要基于一个单元格查看不同的明细信息.比如,用户在访问一个地区列表时,既想经由该页面查看某地区的销售收入情况,又想查看该地区的其他信息.这样,在原有方式下就需要增加多个超链接按钮,每个按钮设置不同的超链接,而这种做法不一定