cesium通过点击获取经纬度和高程,必须添加dem数据源

在这里插入图片描述

 let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)
      handler.setInputAction(function(click) {
        let pick = new Cesium.Cartesian2(click.position.x, click.position.y)
        if (pick) {
          let cartesian = viewer.scene.globe.pick(viewer.camera.getPickRay(pick), viewer.scene)
          if (cartesian) {
            //世界坐标转地理坐标(弧度)
            let cartographic = viewer.scene.globe.ellipsoid.cartesianToCartographic(cartesian)
            if (cartographic) {
              //海拔
              let height = viewer.scene.globe.getHeight(cartographic)
              //视角海拔高度
              let he = Math.sqrt(
                  viewer.scene.camera.positionWC.x * viewer.scene.camera.positionWC.x +
                  viewer.scene.camera.positionWC.y * viewer.scene.camera.positionWC.y +
                  viewer.scene.camera.positionWC.z * viewer.scene.camera.positionWC.z
              )
              let he2 = Math.sqrt(
                  cartesian.x * cartesian.x + cartesian.y * cartesian.y + cartesian.z * cartesian.z
              )
              //地理坐标(弧度)转经纬度坐标
              let point = [
                (cartographic.longitude / Math.PI) * 180,
                (cartographic.latitude / Math.PI) * 180,
              ]
              if (!height) {
                height = 0
              }
              if (!he) {
                he = 0
              }
              if (!he2) {
                he2 = 0
              }
              if (!point) {
                point = [0, 0]
              }

              that.viewHeight = (he - he2).toFixed(1) //视高
              that.lon = point[0].toFixed(4) //经度
              that.lat = point[1].toFixed(4)//纬度
              that.elevation = height.toFixed(2)//海拔
            }
          }
        }
      }, Cesium.ScreenSpaceEventType.LEFT_CLICK)//监听的是鼠标滑动事件
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小仙有礼了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值