2021-04-12

作者: 阿群1986 | 来源:发表于2021-04-12 08:56 被阅读0次
    • Cesium3DTileset:用于流式传输大量的异构3D地理空间数据集;

    • Cesium3DTileStyle:瓦片集样式;

    • Cesium3DTile:数据集中的一个瓦片;

    • Cesium3DTileContent:瓦片内容;

    • Cesium3DTileFeature:瓦片集要素,用于访问Tile中批量表中的属性数据,可通过scene.pick方法来获取一个 BATCH,即三维要素。

      • Cesium3DTileFeature.getPropertyNames() 方法获取批量表中所有属性名;

      • Cesium3DTileFeature.getProperty(string Name) 来获取对应属性名的属性值。

    例1. 加载3DTiles

       var viewer = new Cesium.Viewer("cesiumContainer");
       // 添加3D Tiles
       var tileset = viewer.scene.primitives.add(
         new Cesium.Cesium3DTileset({
           url: "./data/Cesium3DTiles/Tilesets/Tileset/tileset.json",
           // maximumScreenSpaceError: 2, //最大的屏幕空间误差
           // maximumNumberOfLoadedTiles: 1000, //最大加载瓦片个数
         })
       );
    

    例2.

    //设置样式
    
           var properties = tileset.properties;
           if (Cesium.defined(properties) && Cesium.defined(properties.Height)) {
             tileset.style = new Cesium.Cesium3DTileStyle({
               color: {
                 conditions: [
                   ["${Height} >= 83", "color('purple', 0.5)"],
                   ["${Height} >= 80", "color('red')"],
                   ["${Height} >= 70", "color('orange')"],
                   ["${Height} >= 12", "color('yellow')"],
                   ["${Height} >= 7", "color('lime')"],
                   ["${Height} >= 1", "color('cyan')"],
                   ["true", "color('blue')"],
                 ],
               },
             });
           }
    
    //位置调整  
    
           var cartographic = Cesium.Cartographic.fromCartesian(
             tileset.boundingSphere.center
           );
           var surface = Cesium.Cartesian3.fromRadians(
             cartographic.longitude,
             cartographic.latitude,
             0.0
           );
           var offset = Cesium.Cartesian3.fromRadians(
             cartographic.longitude,
             cartographic.latitude,
             height
           );
           var translation = Cesium.Cartesian3.subtract(
             offset,
             surface,
             new Cesium.Cartesian3()
           );
           tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
         })
         .otherwise(function (error) {
           console.log(error);
         });
    
    //拾取要素
    
        var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
        handler.setInputAction(function (movement) {
          var feature = viewer.scene.pick(movement.position);
          if (Cesium.defined(feature) && feature instanceof Cesium.Cesium3DTileFeature) {
            var propertyNames = feature.getPropertyNames();
            var length = propertyNames.length;
            for (var i = 0; i < length; ++i) {
              var propertyName = propertyNames[i];
              console.log(propertyName + ": " + feature.getProperty(propertyName));
            }
          }
        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
    
    

    相关文章

      网友评论

        本文标题:2021-04-12

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