zoukankan      html  css  js  c++  java
  • Cesium中实时显示经纬度及视角高

    控件

            <div id="latlng_show" style="position:absolute;">
              <div style="float:left;">
                   <font size="1" color="white">经度:<span id="longitude_show"></span></font>
              </div>
              <br>
              <div style="float:left;">
                   <font size="1" color="white">纬度:<span id="latitude_show"></span></font>
              </div>
                <br>
              <div style="float:left;">
                   <font size="1" color="white">视角高:<span id="altitude_show"></span>km</font>
              </div>
               <br>
              <div style="float:left;">
                   <font size="1" color="white">海拔高:<span id="elevation_show"></span></font>
              </div>
    
            </div>
    

      

    代码

    // 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);
    

      

  • 相关阅读:
    2020软件工程作业02
    2020软件工程作业01
    为什么需要平衡二叉树?
    手机号码和邮箱等联系地址,为什么不明文显示?
    请把重要的事看轻 ——2017年终总结
    万事皆空:随缘而定
    微服务:微服务架构模式译文说明
    Mysql 查询—按位运算
    解决:spring security 登录页停留时间过长 跳转至 403页面
    excel模板解析—桥接模式:分离解析模板和业务校验
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/14059265.html
Copyright © 2011-2022 走看看