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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM