Class: Camera

Camera

Camera, 相机相关的操作
一般通过api.camera调用其方法


<protected> new Camera()

See:

Methods


get(fn)

获取当前的相机位置
回调返回的数据格式如下:

{
            "x":	491433.656250,
            "y":	2486907.500000,
            "z":	685.200928,
            "pitch":	-38.999985,
            "yaw":	-64.000023,
            "roll":	0.000000,
            "camera":	[491433.656250, 2486907.500000, 685.200928, -38.999985, -64.000023, 0.000000]
        }

camera属性值有6个元素,依次为 [X, Y, Z, Pitch, Yaw, Roll]
x, y, z, pitch, yaw, roll几个值即可以在camera数组里取,也可以直接获取。

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式

Example
__g.camera.get( (r) => {
     var str = `Camera: ${r.x}, ${r.y}, ${r.z}, ${r.pitch}, ${r.yaw}`;
     //或者这样调用
     var str = `Camera: ${r.camera.join(',')}`;
     log(str);
})

getAnimationImage(name, fn)

根据导览名称获取对应导览缩略图的base64字符串,默认图片格式png,尺寸:128*128

Parameters:
Name Type Description
name string

导览名称,可以根据getAnimationList()方法获取

fn function

可选的回调函数,请参考二次开发:异步接口调用方式

Example
返回结果示例:
{
  "image":	"base64示例内容太长......" //image是导览缩略图的base64字符串 默认图片格式png,尺寸:128*128
}

base64类型图片使用说明:
//js可以直接把base64字符串设置为img标签的src属性值,代码示例如下:
__g.camera.getAnimationImage("animationName1").then(result=>{
   //设置base64类型图片
   document.getElementById("img1").setAttribute("src","data:image/png;base64,"+result.image);
});

getAnimationList(fn)

获取当前acp里所有导览的信息

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式

Example
获取当前场景所有导览的列表
[{
            "id":	0,
            "name":	"导览1"
        },
        {
            "id":	1,
            "name":	"导览2"
        }]

getEulerAngle(startPoint, endPoint)

根据空间两点计算欧拉角

Parameters:
Name Type Description
startPoint

起始点坐标位置,取值示例

endPoint

结束点坐标位置,取值示例

Example
返回欧拉角数组: [Pitch,Yaw,Roll] 

俯仰-Pitch:上下旋转角度,欧拉角向量的X轴,取值范围:[-90~+90]
航向-Yaw:左右旋转角度,欧拉角向量的Y轴,取值范围:[-180~+180]
翻滚-Roll:翻滚角度,欧拉角向量的Z轴

lockByBBox(bbox, fn)

锁定相机的交互范围,仅允许在BBox内交互

Parameters:
Name Type Description
bbox

即3D Bounding Box,3D物体的包围盒,用于表示三维物体坐标的取值边界,格式示例:[minX,minY,minZ,maxX,maxY,maxZ]

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


lookAt(x, y, z, distance, pitch, yaw, flyTime, fn)

通过观察点设置相机位置

Parameters:
Name Type Description
x number

观察点坐标X

y number

观察点坐标Y

z number

观察点坐标Z

distance number

可选参数,观察点距离目标点(被拍摄物体)的距离,取值范围:[0.01~任意正数],如果设置为0或者不设置,系统自动计算

pitch number

上下旋转角度(俯仰),单位是度。可选参数,如果没有设置或者设置为0,系统会自动设置默认值。

yaw number

左右旋转角度(航向),单位是度。可选参数,如果没有设置或者设置为0,系统会自动设置默认值。

flyTime number

可选参数,相机飞行的时间,取值范围:[0~任意正数],单位:秒,默认值2秒

fn function

可选的回调函数,请参考二次开发:异步接口调用方式

Example
__g.camera.lookAt(-913.18, -10852.01, 82.49, 200.0, 90.0, -50.0);

lookAtBBox(bbox, pitch, yaw, flyTime, fn)

通过BBox设置相机

Parameters:
Name Type Description
bbox array

bounding box

pitch number

上下旋转角度(俯仰),单位是度。 此参数可选,如果没有设置或者设置为0,系统会自动设置默认值。

yaw number

左右旋转角度(航向),单位是度。 此参数可选,如果没有设置或者设置为0,系统会自动设置默认值。

flyTime number

可选参数,相机飞行的时间,取值范围:[0~任意正数],单位:秒,默认值2秒

fn function

可选的回调函数,请参考二次开发:异步接口调用方式

Example
let bbox = [1083.27, -12907.29, 81.79, 1308.18, -12759.77, 201.51];
let yaw = 90.0;
let pitch = -50.0;
__g.camera.lookAtBBox(bbox, yaw, pitch);

moveBackward(fn)

后退

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


moveDown(fn)

下降

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


moveForward(fn)

前进

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


moveLeft(fn)

左移

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


moveRight(fn)

右移

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


moveUp(fn)

上升

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


pauseAnimation(fn)

暂停播放动画导航

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


playAnimation(id, fn)

开始播放动画导航

Parameters:
Name Type Description
id number

动画导航的编号

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


resumeAnimation(fn)

恢复播放动画导航

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


set(x, y, z, pitch, yaw, flyTime, fn)

设置相机位置,这是最常见的参数形式,另外两种参数形式,请参考二次开发:关于设置相机位置的三种形式

Parameters:
Name Type Description
x number

坐标X

y number

坐标Y

z number

坐标Z

pitch number

上下旋转角度(俯仰),单位是度。 此参数可选,如果没有设置或者设置为0,系统会自动设置默认值。

yaw number

左右旋转角度(航向),单位是度。 此参数可选,如果没有设置或者设置为0,系统会自动设置默认值。

flyTime number

可选参数,相机飞行的时间,取值范围:[0~任意正数],单位:秒,默认值2秒

fn function

可选的回调函数,请参考二次开发:异步接口调用方式

Example
__g.camera.set(-178.14, -8038.16, 250.47, -50.0, 90.0);

stop(fn)

停止

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


stopAnimation(fn)

停止播放动画导航

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


turnDown(fn)

低头

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


turnLeft(fn)

左转

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


turnRight(fn)

右转

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


turnUp(fn)

抬头

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


unlock(fn)

解锁相机的交互范围,恢复自由交互

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


useOldDataFormat(bUse)

设置是否使用旧版本的数据格式(2021.03.17之前的版本),这是一个全局的设置。
受影响的方法有:camera对象的set、lookAt、lookAtBBox,以camera.set举例:
之前版本的方法定义如下:(x, y, z, heading, tilt, flyTime, fn)
现在的定义如下:set(x, y, z, pitch, yaw, flyTime, fn)
两个的区别就是heading(yaw), tilt(pitch)的顺序互换了一下
如果调用了useOldDataFormat(),可以让用户代码保持兼容(不用修改就可以在新版本上运行)

Parameters:
Name Type Description
bUse boolean

可选参数,默认为true。