cesium随笔 — 获取当前视角的经纬度,鼠标的经纬度,视角中心点经纬度

一 、获取当前视角的经纬度

var cartographic = Cesium.Ellipsoid.WGS84.cartesianToCartographic(viewer.camera.position);
var longitude = Cesium.Math.toDegrees(cartographic.longitude);
   var latitude = Cesium.Math.toDegrees(cartographic.latitude);
   var altitude = cartographic.height;
var pitch =viewer.camera.pitch;
var roll =viewer.camera.roll;
var heading =viewer.camera.heading;
var angle = new Array();
angle.push(longitude);  // 经度
angle.push(latitude);  // 纬度
angle.push(altitude);  // 海拔
angle.push(pitch); // 俯仰角
angle.push(roll); // 俯仰角
angle.push(heading); // 俯仰角

二、鼠标的经纬度

 //鼠标移动获取坐标
handler3D.setInputAction(function (movement) {
   //获取鼠标位置,camera.pickEllipsoid()返回一个cartesian类型位置
   var my_ellipsoid = viewer.scene.globe.ellipsoid;
   let click_position =  viewer.scene.camera.pickEllipsoid(movement.endPosition,my_ellipsoid);
if(click_position)
{
       //位置数据转换只地理数据类型
      let carto_position = my_ellipsoid.cartesianToCartographic(click_position);
     let longitude = Cesium.Math.toDegrees(carto_position.longitude).toFixed(6);
      let latitude = Cesium.Math.toDegrees(carto_position.latitude).toFixed(6);
      console.log("坐标的位置为"+longitude+"经度,"+latitude+"纬度") ;
}
 }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

三、视角中心点经纬度

    var result = window.viewer.camera.pickEllipsoid(
      new Cesium.Cartesian2(
        window.viewer.canvas.clientWidth / 2,
        window.viewer.canvas.clientHeight / 2,
      ),
    );
    var curPosition = Cesium.Ellipsoid.WGS84.cartesianToCartographic(result);
    var lon = (curPosition.longitude * 180) / Math.PI;
    var lat = (curPosition.latitude * 180) / Math.PI;
    var pitch = Number((viewer.camera.pitch).toFixed(2));
    var angle = new Array();
    angle.push(lon);  // 经度
    angle.push(lat);  // 纬度
    angle.push(pitch); // 俯仰角

四、获取相机高度

     var altitude=viewer.camera.positionCartographic.height;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值