cesium 一些功能

1.获取相机参数

function getcameraPosInfo () {
    // 获取 相机姿态信息
    let head = viewer.scene.camera.heading
    let pitch = viewer.scene.camera.pitch
    let roll = viewer.scene.camera.roll
    let info = { head: head, pitch: pitch, roll: roll }
    // 获取位置 wgs84的地心坐标系,x,y坐标值以弧度来表示
    let position = viewer.scene.camera.positionCartographic // with longitude and latitude expressed in radians and height in meters.
    // 以下方式也可以获取相机位置只是返回的坐标系不一样
    // var position = viewer.scene.camera.position //cartesian3 空间直角坐标系
    // var ellipsoid = scene.globe.ellipsoid;
    // var position
=ellipsoid.cartesianToCartographic(viewer.scene.camera.position)//
    // 弧度转经纬度
    let longitude = Cesium.Math.toDegrees(position.longitude)
    let latitude = Cesium.Math.toDegrees(position.latitude)
    let height = position.height
    return { lng: longitude, lat: latitude, h: height, mat: info }
}

2.获取相机中心点坐标 

/* 获取camera高度  */
function getHeight () {
    if (viewer) {
    let scene = viewer.scene
    let ellipsoid = scene.globe.ellipsoid
    let height = ellipsoid.cartesianToCartographic(viewer.camera.position).height
    return height
    }
}
/* 获取屏幕中心点坐标 */
function getCenterPosition () {
    let result = viewer.camera.pickEllipsoid(new Cesium.Cartesian2(viewer.canvas.clientWidth / 2, viewer.canvas.clientHeight / 2))
    let curPosition = Cesium.Ellipsoid.WGS84.cartesianToCartographic(result)
    let lon = curPosition.longitude * 180 / Math.PI
    let lat = curPosition.latitude * 180 / Math.PI
    let height = getHeight()
    return {
        lon: lon,
        lat: lat,
        height: height
    }
}

3.锁定和解除锁定相机视角

let center = Cesium.Cartesian3.fromDegrees(prosition.lon, prosition.lat)// camera视野中心点坐标
let heading = Cesium.Math.toRadians(parseFloat(heading_show.value))
let pitch = Cesium.Math.toRadians(-45.0)
let range = prosition.height
//锁定视角
viewer.camera.lookAt(center, new Cesium.HeadingPitchRange(heading, pitch, range))


//解除锁定
viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY)

4.3D场景和2D场景切换

viewer.scene.mode = Cesium.SceneMode.SCENE3D // 三维场景

viewer.scene.mode = Cesium.SceneMode.SCENE2D // 平面场景

5.获取相机位置,姿态 

 // 获取相机位置,姿态等
        function getcameraPosInfo () {
          // 获取 相机姿态信息
          let head = viewer.scene.camera.heading
          let pitch = viewer.scene.camera.pitch
          let roll = viewer.scene.camera.roll
          let info = { head: head, pitch: pitch, roll: roll }
          // 获取位置 wgs84的地心坐标系,x,y坐标值以弧度来表示
          let position = viewer.scene.camera.positionCartographic // with longitude and latitude expressed in radians and height in meters.
          // 以下方式也可以获取相机位置只是返回的坐标系不一样
          // var position = viewer.scene.camera.position //cartesian3 空间直角坐标系
          // var ellipsoid = scene.globe.ellipsoid;
          // var position =ellipsoid.cartesianToCartographic(viewer.scene.camera.position)//
          // 弧度转经纬度
          let longitude = Cesium.Math.toDegrees(position.longitude)
          let latitude = Cesium.Math.toDegrees(position.latitude)
          let height = position.height
          return { lon: longitude, lat: latitude, height: height, mat: info }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y_Hungry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值