Cesium实现鼠标获取点云坐标

var viewer = new Cesium.Viewer('cesiumContainer', {
      animation: false,       //是否显示动画控件
      homeButton: true,       //是否显示home键
      //geocoder:false,         //是否显示地名查找控件        如果设置为true,则无法查询
      baseLayerPicker: false, //是否显示图层选择控件
      timeline: false,        //是否显示时间线控件
      fullscreenButton: true, //是否全屏显示
      scene3DOnly: true,     //如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源
      infoBox: true,         //是否显示点击要素之后显示的信息
      sceneModePicker: false,  //是否显示投影方式控件  三维/二维
      navigationInstructionsInitiallyVisible: false,
      navigationHelpButton: false,     //是否显示帮助信息控件
      selectionIndicator: false,        //是否显示指示器组件
      //  //加载谷歌卫星影像
      //  imageryProvider:new Cesium.ArcGisMapServerImageryProvider({
      //       url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer'
      //   }),
      //  terrainProvider : new Cesium.CesiumTerrainProvider({url: 'https://www.supermapol.com/iserver/services/3D-stk_terrain/rest/realspace/datas/info/data/path/'}),

      // imageryProvider: new Cesium.WebMapTileServiceImageryProvider({
      //           url: "http://t0.tianditu.gov.cn/img_w/wmts?tk=7b435c61bff7f77eb49206e10d6397bd",
      //           layer: 'img',
      //           style: 'default',
      //           tileMatrixSetID: 'w',
      //           format: 'tiles',
      //           maximumLevel: 18
      //       }),
      // terrainProvider : Cesium.createWorldTerrain({
      //   requestVertexNormals: true
      // })

    });
    scene = viewer.scene;
    var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
    handler.setInputAction(function (evt) {
      var scene = viewer.scene;
      if (scene.mode !== Cesium.SceneMode.MORPHING) {
        var pickedObject = scene.pick(evt.position);
        if (scene.pickPositionSupported && Cesium.defined(pickedObject)) {
          var cartesian = viewer.scene.pickPosition(evt.position);
          if (Cesium.defined(cartesian)) {
            var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
            var lng = Cesium.Math.toDegrees(cartographic.longitude);
            var lat = Cesium.Math.toDegrees(cartographic.latitude);
            var height = cartographic.height;//模型高度
            mapPosition = { x: lng, y: lat, z: height };
            console.log(mapPosition);
          }
        }
      }
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);

 

Cesium中,可以通过以下方式获取点云坐标: 1. 首先,使用Cesium加载点云数据。可以使用`Cesium.Cesium3DTileset`类加载点云数据。在加载点云数据时,需要指定点云数据的URL,即点云数据的路径。例如: ``` var tileset = new Cesium.Cesium3DTileset({ url: '点云数据的URL' }); ``` 2. 然后,将加载的点云数据添加到场景中。可以使用`viewer.scene.primitives.add`方法将点云数据添加到场景的图元集合中。例如: ``` viewer.scene.primitives.add(tileset); ``` 3. 最后,可以使用Cesium的接口来获取点云坐标点云坐标通常包含在点云数据的属性中。可以通过访问点云数据的属性来获取坐标信息。具体的属性名称取决于点云数据的格式和结构。例如: ``` var positions = tileset.getPropertyValues('position'); ``` 以上是使用Cesium获取点云坐标的基本步骤。需要注意的是,具体的实现可能会依赖于点云数据的格式和使用的库或工具。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [cesium点云](https://blog.csdn.net/Raccon_/article/details/127301157)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值