Class: PanoramicAndSceneSync

PanoramicAndSceneSync(containerDiv, overlay)

全景图和三维场景同步联动

Constructor

new PanoramicAndSceneSync(containerDiv, overlay)

构造函数
Parameters:
Name Type Default Description
containerDiv * containerDiv 容器Div,在默认的左右分屏模式下,将该DIV左右平分,左边为全景图,右边为三维场景,自动实现左右联动
overlay * false 左右分屏模式还是覆盖重叠模式,默认是false,即左右分屏模式

Methods

addPOI(poi)

添加POI热点,可在楼层导航图控件创建完毕后调用
Parameters:
Name Type Description
poi *
Example
{
     id:POI ID,必须,可以是String或Number
     name:POI名称,用于鼠标悬浮在热点图标上显示的文字,必须
     position:POI在三维模型中的位置,必须, THREE.Vector3对象 
     imageUrl:POI的图标,图标为20x20尺寸。非必须,不填就使用bimi自带的蓝色POI图标
     imageOffsetX:POI图标X偏移,默认是10
     imageOffsetY:POI图标Y偏移,默认是10
     data: 热点对应的全景图和三维场景的数据对象,当点击POI图标时,切换到该数据,必须参数
     {
         image:'temp/sky-box-master/1235.jpg',
         bim:'temp/半径项目Revit文件/bim.bin' ,
         defaultQuaternion:{"x":-0.06635499364895026,"y":0.11403174830228421,"z":0.007633527392872102,"w":0.9912292895473359},
         position:new THREE.Vector3(-43.0,16.55,6.491),
         pitch: 0,
         yaw:75
     }
}

changeLevel(options)

切换楼层,也支持同时切换全景图和模型
Parameters:
Name Type Description
options * { image:'temp/sky-box-master/1235.jpg' 全景图图片url,如果不需要切换全景图,可不填 bim:'temp/半径项目Revit文件/bim.bin' 三维模型资源url,如果不需要切换三维模型,可不填 defaultQuaternion:{"x":0,"y":0,"z":0,"w":1} 全景图默认视角四元数,非必要参数,如果不需要切换全景图,可不填 position:Vector3对象 ,全景图对应三维场景的位置,如果不需要切换三维模型,可不填 pitch:绕X轴角度,非必要参数,如果不需要切换三维模型,可不填 yaw:绕Y轴角度,非必要参数,如果不需要切换三维模型,可不填 level:楼层导航图数据对象,必填参数 { dataUrl:模型楼层导航图数据url level:指定当前楼层 } poi:该楼层对应的热点数组数据,可选参数,如果不填,那么楼层图上将没有热点 [ { id:108, name:'1F的某个热点', data: { image:'sky-box-master/1235.jpg', bim:'半径项目Revit文件/bim.bin' , defaultQuaternion:{"x":-0.06635499364895026,"y":0.11403174830228421,"z":0.007633527392872102,"w":0.9912292895473359}, position:new THREE.Vector3(-43.0,16.55,6.491), pitch: 0, yaw:75 } }, ] }

changePanoramic(options)

切换全景图
Parameters:
Name Type Description
options *
Example
{
     image:'temp/sky-box-master/1235.jpg' 全景图图片url
     bim:'temp/半径项目Revit文件/bim.bin' 三维模型资源url
     defaultQuaternion:{"x":0,"y":0,"z":0,"w":1}  全景图默认视角四元数,非必要参数
     position:Vector3对象 ,全景图对应三维场景的位置
     pitch:绕X轴角度,非必要参数
     yaw:绕Y轴角度,非必要参数
}

dispose()

销毁资源

init(options)

初始化全景图和三维场景
Parameters:
Name Type Description
options *
Example
{
     image:'temp/sky-box-master/1235.jpg' 全景图图片url
     bim:'temp/半径项目Revit文件/bim.bin' 三维模型资源url
     defaultQuaternion:{"x":0,"y":0,"z":0,"w":1}  全景图默认视角四元数,非必要参数
     position:Vector3对象 ,全景图对应三维场景的位置
     pitch:绕X轴角度,非必要参数
     yaw:绕Y轴角度,非必要参数
     level:楼层导航图数据对象,非必要参数
     {
         containerDiv:楼层导航图的容器Dom对象,最终楼层导航图会自动放置于该Dom中
         dataUrl:模型楼层导航图数据url
         level:指定当前楼层
     }
     poi:楼层导航图上的POI热点数组,非必要参数,注意如果设置poi参数,那么必须也设置level参数,因为POI热点是依赖于楼层导航图的
     [
         {
             id:POI ID,必须,可以是String或Number
             name:POI名称,用于鼠标悬浮在热点图标上显示的文字,必须
             position:POI在三维模型中的位置,必须, THREE.Vector3对象 
             imageUrl:POI的图标,图标为20x20尺寸。非必须,不填就使用bimi自带的蓝色POI图标
             imageOffsetX:POI图标X偏移,默认是10
             imageOffsetY:POI图标Y偏移,默认是10
             data: 热点对应的全景图和三维场景的数据对象,当点击POI图标时,切换到该数据,必须参数
             {
                 image:'temp/sky-box-master/1235.jpg',
                 bim:'temp/半径项目Revit文件/bim.bin' ,
                 defaultQuaternion:{"x":-0.06635499364895026,"y":0.11403174830228421,"z":0.007633527392872102,"w":0.9912292895473359},
                 position:new THREE.Vector3(-43.0,16.55,6.491),
                 pitch: 0,
                 yaw:75
             }
         }
     ]
}

removePOI(id)

移除POI热点
Parameters:
Name Type Description
id * POI id

setLayout(overlay)

设置布局为左右分隔还是覆盖
Parameters:
Name Type Default Description
overlay * false 是否覆盖,默认是false

setOverlayOpacity(opacity)

设置覆盖模式下,全景图的透明度
Parameters:
Name Type Default Description
opacity * 1 全景图透明度,默认是1.0

setPanoramicDefaultQuaternion(quaternion)

设置全景图默认视角四元数
Parameters:
Name Type Description
quaternion *
Example
quaternion数据定义如下:
{"x":0,"y":0,"z":0,"w":1}

setPositionPitchYaw(position, pitch, yaw)

三维场景定位的位置调整参数
Parameters:
Name Type Default Description
position THREE.Vector3 定位坐标
pitch Number 0 绕X轴角度
yaw Number 0 绕Y轴角度

updateOrbit()

更新视角,再调用setPositionPitchYaw()后需要调用此函数更新场景视角