\

In the cone of light, all is fate

Cesium 获得坐标和当前相机视角

 

我开发时用的最多的一个方法,为的是获得具体点的坐标和记录当前相机视角,一部分代码是什么意思我也忘了,反正好用就行;

复制代码
var arrLoc = [];
var pickPosition = { x: null, y: null }
var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);  //定义事件
handler.setInputAction(function (movement) {


    // screenLocation.x = movement.position.x;
    // screenLocation.y = movement.position.y;


    var cartesian = viewer.camera.pickEllipsoid(
        movement.position,
        scene.globe.ellipsoid
    );
    if (cartesian) {
        var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
        var longitudeString = Cesium.Math.toDegrees(
            cartographic.longitude
        ).toFixed(2);                               //要更高的精度就修改保留的小数位数
        var latitudeString = Cesium.Math.toDegrees(
            cartographic.latitude
        ).toFixed(2);                               //同上


        pickPosition.x = longitudeString;
        pickPosition.y = latitudeString;
        let cf = { x: parseFloat(pickPosition.x), y: parseFloat(pickPosition.y) }


        console.log(cf) //鼠标点击位置


        var a = {
            position: viewer.camera.position,
            heading: viewer.camera.heading,
            pitch: viewer.camera.pitch
        }
        console.log(a)  //当前视角
    }
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
复制代码

 

posted @   Ymrt  阅读(6162)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示