首页 / 浏览问题 / 三维GIS / 问题详情
获取选择构件的方位角和倾斜角度
22EXP 2017年05月11日
使用产品: SuperMap iClient  3D 8C for WebGL 操作系统:win7 x64

数据类型:  文件型

问题详细描述:需实现功能:1. 获取选择构件位置、方位角、倾斜角度;2. 保存到数据库并显示;3. 点击构件名称飞行定位到指定的构件位置

问题重现步骤: 1.构件位置已知获取方法,但获取方位角与倾斜角度如何获取?;2. 选择项的构件名称可以获取到吗?

其中方位与方位角度说明:

scene.camera.flyTo({
        destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),
        orientation: {
            heading: Cesium.Math.toRadians(heading),     // 方位角,0 默认向北
            pitch: Cesium.Math.toRadians(pitch),         // 倾斜角度,-90 默认向下
            roll: 0
        }
    });

1个回答

您好,

(1)构件本身是没有位置、方位角、倾斜角度的说法的,只有一个点的位置。您可以根据您的场景,给这个构件算一个合适的相机位置去观察它。如果确实是算得不合适,您可以在桌面里面,调一个合适观察这个构件的相机参数,把这个参数存属性表里面,当查询到构件的时候,读取属性表的相机信息,构造出一个完美的观察位置。

(2)保存到数据库并显示是指?

(3)选择项的构件名称可以获取到,参考属性查询那个范例。

http://support.supermap.com.cn:8090/iserver/iClient/for3D/webgl/examples/S3MTiles.html

3,389EXP 2017年05月11日

飞行定位到指定的构件位置,Camera下的flyTo方法:

flyTo(options)

相机从当前位置飞行到新的空间位置。

Example:

// 1. 飞向通过top-down视图表示的位置
viewer.camera.flyTo({
    destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
});

// 2. 飞向通过top-down视图表示的矩形
viewer.camera.flyTo({
    destination : Cesium.Rectangle.fromDegrees(west, south, east, north)
});

// 3. 飞向利用单位向量表示方向(orientatin)的位置
viewer.camera.flyTo({
    destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
    orientation : {
        direction : new Cesium.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734),
        up : new Cesium.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339)
    }
});

// 4. 飞向利用方位角(heading)、俯仰角(pitch)、滚动角(roll)表示方向(orientatin)的位置
viewer.camera.flyTo({
    destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0),
    orientation : {
        heading : Cesium.Math.toRadians(175.0),
        pitch : Cesium.Math.toRadians(-35.0),
        roll : 0.0
    }
});
您好,我对相机这块还不是太了解,再请问下:是否有直接方法获取相机方位角和倾斜角度?
相机是可以的呀,通过场景scene获取相机camera
...