ThingJS摄像机总结
作者:互联网
飞行
设置摄像机的位置:镜头位置 position 和被拍摄物体的位置 target (又叫目标点)
app.camera.position = [x,y,z];
app.camera.target = [x,y,z];
app.camera.fit 聚焦到某物体:
// 盯着某一物体:设置摄像机到物体的“最佳看点”
app.camera.fit(obj);
// 盯着某一坐标点
app.camera.fit({
position: [100, 100, 100],
target: [0, 0, 0]
});
app.camera.flyTo 飞到某个位置:
// 摄像机飞到一个指定位置
app.camera.flyTo({
position: [0, 20, 20],
target: [-30, 10, 0],
time: 2 * 1000,
complete: function() {
console.log(“飞行结束”);
}
});
//飞到某物体的左侧
app.camera.flyTo({
object: obj,
xAngle: 0, //绕物体自身X轴旋转角度
yAngle: 90, //绕物体自身Y轴旋转角度
radiusFactor: 3, //物体包围盒半径的倍数
time: 1 * 1000,
complete: function() {
console.log(“飞行结束”);
}
});
app.camera.rotateAround 环绕某物体
app.camera.rotateAround({
object: obj,//环绕的物体
time: 5*1000,//环绕飞行的时间
yRotateAngle : 180,//环绕y轴飞行的旋转角度
loopType:THING.LoopType.PingPong //循环往复环绕
});
app.camera.followObject 摄像机跟随物体
app.camera.followObject(obj);
交互
move 摄像机水平移动5米:设置移动距离(水平移动,垂直移动),正负代表方向
app.camera.move(5,0);
zoom 摄像机推进10米:设置推进距离,正负代表方向
app.camera.zoom(10);
rotateAround 摄像机旋转:环绕 Y 轴、X 轴旋转10度
app.camera.rotateAround({
target: app.camera.target,
yRotateAngle: 10, // 环绕Y轴旋转角度(俯仰面(竖直面)内的角度)
xRotateAngle: 10, // 环绕X轴旋转角度(方位面(水平面)内的角度)
time: 1000 // 环绕飞行的时间
});
摄像机观察模式的切换:
var viewMode = app.camera.viewMode;
if (viewMode = “normal”) {
app.camera.viewMode = THING.CameraView.TopView; //切换成顶视图(2D)模式
}else {
app.camera.viewMode = THING.CameraView.Normal; //切换成 3D 模式
}
关闭默认的交互操作:左键旋转、右键平移、滑轮缩放
app.camera.inputEnabled=false // 关闭所有默认的交互操作(旋转、平移、缩放);
app.camera.enablePan=false // 关闭默认的平移操作;
app.camera.enableRotate=false // 关闭默认的旋转操作;
app.camera.enableZoom=false // 关闭默认的缩放操作;
设置摄像机的上下水平移动范围:摄像机转动范围
//设置摄像机水平角度范围[最小值, 最大值]
app.camera.yAngleLimitRange = [30, 60];
//设置摄像机俯仰角度范围[最小值, 最大值]
app.camera.xAngleLimitRange = [30, 60];
在地球上控制相机—在地球上使用摄像机,相关操作需要添加 isEarth 参数
- 使用快捷代码-地图-动态创建map
- 设置园区在地球上的坐标(问题:不知道坐标怎么得来的)
- 将摄像机飞到指定的位置时,创建园区
- 在earthFlyTo方法的回调函数中去创建园区
app.camera.earthFlyTo 摄像机在地球上飞行到指定位置:
app.camera.earthFlyTo({
time: 3000, // 飞行时间 ms
lonlat: sceneLonlat, // 要飞到的目标点的经纬度
height: 200, // 摄像机离地高度
heading: 0, // 水平角(方位角)单位:度
pitch: 45, // 垂直角(俯仰角)单位:度
complete: function () {
}
});
摄像机水平旋转:在地球上使用摄像机,相关操作需要添加 isEarth 参数
app.camera.rotateAround({
isEarth: true,
target: app.camera.target,
yRotateAngle: 360, // 水平旋转360度
xRotateAngle: 0, // 环绕X轴旋转角度(方位面(水平面)内的角度)
time: 5000 // 环绕飞行的时间
});
标签:总结,target,app,旋转,摄像机,camera,ThingJS,环绕 来源: https://blog.csdn.net/weixin_55966654/article/details/119332816