如何控制默认热点跳转到指定场景的指定视角

有这么一种情况,假设我们用三个场景,这三个场景恰好是一条街道的同一方向的三个拍摄点。如下:未标题-1

我们可以通过设置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中某个热点:

vtourskin.xml中的style:

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

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

然后我们将style改为:

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

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

亲自试一试

 

krpano 1.19 pr6之后的方法(上文方法不适用于pr6之后)

  1. 使用MAKE VTOUR droplet(1.19 pr6之后的版本)
  2. 使用tour_editor.html添加热点
  3. 编辑tour.xml,在需要控制进入场景视角的热点中加上linkedscene_lookat如下
第一个参数是水平坐标,第二个参数是垂直坐标,第三个参数是视场。

 

发表评论