Cesium中实时显示经纬度及视角高(转载)

这篇博客介绍了如何利用Cesium JavaScript库实现实时获取地图鼠标位置的经纬度、海拔和视角高度信息,并在网页上动态展示。通过监听鼠标移动事件,转换坐标并更新数据显示,为地图应用提供了互动体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接

HTML

    <div id="latlng_show" style="background-color:rgba(0, 0, 0, 0.5);bottom:1px;width:100%;height:30px;position:absolute;z-index: 999;">
        <div style="float:left;">
             <font size="1" color="white">经度:<span id="longitude_show"></span></font>
        </div>
        
        <div style="float:left;">
             <font size="1" color="white">纬度:<span id="latitude_show"></span></font>
        </div>
          
        <div style="float:left;">
             <font size="1" color="white">视角高:<span id="altitude_show"></span>km</font>
        </div>
        
        <div style="float:left;">
             <font size="1" color="white">海拔高:<span id="elevation_show"></span></font>
        </div>
       
      </div>

js

    // g跟随鼠标获取经纬度和海拔
var longitude_show=document.getElementById('longitude_show');
var latitude_show=document.getElementById('latitude_show');
var altitude_show=document.getElementById('altitude_show');
var elevation_show=document.getElementById('elevation_show');
 
 
var canvas=viewer.scene.canvas;
//具体事件的实现
var ellipsoid=viewer.scene.globe.ellipsoid;
var handler = new Cesium.ScreenSpaceEventHandler(canvas);
handler.setInputAction(function(movement){
            //捕获椭球体,将笛卡尔二维平面坐标转为椭球体的笛卡尔三维坐标,返回球体表面的点
             var cartesian=viewer.camera.pickEllipsoid(movement.endPosition, ellipsoid);
              if(cartesian){
                   //将笛卡尔三维坐标转为地图坐标(弧度)
                   var cartographic=viewer.scene.globe.ellipsoid.cartesianToCartographic(cartesian);
                   //将地图坐标(弧度)转为十进制的度数
                    var lat_String=Cesium.Math.toDegrees(cartographic.latitude).toFixed(4);
                    var log_String=Cesium.Math.toDegrees(cartographic.longitude).toFixed(4);
                    var alti_String=(viewer.camera.positionCartographic.height/1000).toFixed(2);
                    var elec_String=viewer.scene.globe.getHeight(cartographic).toFixed(4);
 
                    longitude_show.innerHTML=log_String;
                    latitude_show.innerHTML=lat_String;
                    altitude_show.innerHTML=alti_String;//视角高度 km
                    elevation_show.innerHTML=elec_String;//海拔
               }
        },Cesium.ScreenSpaceEventType.MOUSE_MOVE);

效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值