美文网首页
cesium鼠标点击事件,监听有时无效解决方案

cesium鼠标点击事件,监听有时无效解决方案

作者: 可乐_加冰_ | 来源:发表于2023-06-07 17:22 被阅读0次
 handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
        //鼠标左键
        handler.setInputAction(function (movement) {

          let earthPosition = viewer.scene.globe.pick(viewer.camera.getPickRay(movement.position), viewer.scene);//todo 下方的有时无法获取,用此方案
          // let ellipsoid = viewer.scene.globe.ellipsoid;
          // let cartographic = ellipsoid.cartesianToCartographic(earthPosition);
          // let lat = Cesium.Math.toDegrees(cartographic.latitude);
          // let lon = Cesium.Math.toDegrees(cartographic.longitude);

          // let earthPosition = viewer.scene.pickPosition(movement.position);//todo 注意这个有时候获取不到
         
          console.log('earthPosition--->',earthPosition)
          if (Cesium.defined(earthPosition)){

            let cartographic = Cesium.Cartographic.fromCartesian(earthPosition);
            // 经纬度
            let lon = Cesium.Math.toDegrees(cartographic.longitude).toFixed(8);
            let lat = Cesium.Math.toDegrees(cartographic.latitude).toFixed(8);
            pointsArr.push({longitude:Number(lon),latitude:Number(lat)})
            //模型高度
            let height = cartographic.height;
            if (Number(height) < 0) {
              let ray = viewer.camera.getPickRay(movement.position);
              earthPosition = viewer.scene.globe.pick(ray, viewer.scene);
            }
           
          }


        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);

相关文章

网友评论

      本文标题:cesium鼠标点击事件,监听有时无效解决方案

      本文链接:https://www.haomeiwen.com/subject/roxoedtx.html