[go: up one dir, main page]

tzbm123456 发表于 2022-6-16 08:05:46

3DTileset上如何加载地形图

<3DTileset上如何加载地形图>
2022年6月16日

tzbm123456 发表于 2022-6-16 08:09:36

本帖最后由 tzbm123456 于 2022-7-3 08:00 编辑

//一、加载地形图b3dm文件
   tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
      url : './DataSource/SQJS/XDY_DG/b3dm/Dxt/Dxt/tileset.json'
      //url : './DataSource/TZBM/jjj/b3dm/jjj/tileset.json'
   }));
   //设置实体样式
   var transparentStyle=new Cesium.Cesium3DTileStyle({
      color: "color('white',1.0)",
      show: true
   });            
   tileset.style=transparentStyle;
   viewer.flyTo(tileset,{
       duration : 10,
       maximumHeight : 1000000,
   });
//二、设置地图材质
   imageMaterial = new Cesium.ImageMaterialProperty ({
      image:'./DataSource/SQJS/XDY_DG/b3dm/Dxt/Dxt/M_41.png',
      color: Cesium.Color.WHITE,
      repeat : new Cesium.Cartesian2(1, 1)
   });

//三、添加地图材质
   const polygon = viewer.entities.add({
      polygon: {
      hierarchy: new Cesium.PolygonHierarchy(
      Cesium.Cartesian3.fromDegreesArray()
      ),
      //material: Cesium.Color.BLUE.withAlpha(0.5),
      material : imageMaterial,
      classificationType: Cesium.ClassificationType.CESIUM_3D_TILE,
      //classificationType: Cesium.ClassificationType.TERRAIN,
      },
   });
   viewer.flyTo(polygon,{
      duration : 10,
      maximumHeight : 1000000,
   });

/*
特别说明:
1、cesium.js:41 Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0。

2、classificationType起作用,必须不设置height参数。
*/












tzbm123456 发表于 2022-6-16 12:27:49


tzbm123456 发表于 2022-6-16 12:29:38

本帖最后由 tzbm123456 于 2022-7-3 08:01 编辑

<绘制贴地线体>
button7 = gui.add(controls, 'button7').name('绘制贴地线体').onFinishChange(function(){
    alert('绘制贴地线体');
    viewer.scene.primitives.add(
   new Cesium.GroundPolylinePrimitive({//贴地primitive线
       geometryInstances: new Cesium.GeometryInstance({
      geometry: new Cesium.GroundPolylineGeometry({//贴地线几何
         positions:Cesium.Cartesian3.fromDegreesArray(),
         width : 10.0,
      }),
       }),
       appearance: new Cesium.PolylineMaterialAppearance({
         material: Cesium.Material.fromType('Color', {
            color: Cesium.Color.RED
          })
       })
      })
    )
})









tzbm123456 发表于 2022-6-16 13:29:35

<JS 类型判断>
1、typeof(ptArr)
   'object'
2、typeof(23)
   'number'
3、typeof('we')
   'string'
4、typeof("we")
   'string'
5、ptArr instanceof Cesium.Cartesian3
   true


tzbm123456 发表于 2024-5-1 10:01:53

本帖最后由 tzbm123456 于 2024-6-8 09:58 编辑

CesiumTileset数据结构.
<2024年5月1日>
一、Cesium3DTileset   tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({      url : './DataSource/SQJS/XDY_DG/b3dm/Dxt/Dxt/tileset.json'      //url : './DataSource/TZBM/jjj/b3dm/jjj/tileset.json'   }));   //设置实体样式   var transparentStyle=new Cesium.Cesium3DTileStyle({      color: "color('white',1.0)",      show: true   });               tileset.style=transparentStyle;   viewer.flyTo(tileset,{       duration : 10,       maximumHeight : 1000000,   });
二、Cesium3DTile1、父Cesium3DTile:children为非空数组<获取方法>Cesium3DTileset.root<判断方法>arr = Cesium3DTileset.childrenArray.isArray(arr) && arr.length > 02、子Cesium3DTile:children为空数组<获取方法>父Cesium3DTile.children 提取元素<判断方法>arr = 父Cesium3DTile.children.childrenArray.isArray(arr) && arr.length === 0三、Cesium3DTileContent(获取方法 子Cesium3DTile.content)1、Composite3DTileContent<获取方法>子Cesium3DTile.content<判断方法>Cesium3DTile.content instanceof Cesium.Composite3DTileContent 为真时:arr = Composite3DTileContent.innerContentsArray.isArray(arr) && arr.length > 02、Batched3DModel3DTileContent(包含相同纹理材质,且不同群组、或未连接的面实体形成的Feature元素)<获取方法>Composite3DTileContent.innerContents 提取元素<判断方法>Composite3DTileContent.innerContents instanceof         Cesium.Batched3DModel3DTileContent 为真时:arr = Composite3DTileContent.innerContentsBatched3DModel3DTileContent == arr\四、Cesium3DTileFeature<获取方法>i = Batched3DModel3DTileContent.featuresLengthfeature = Batched3DModel3DTileContent.getFeature(i) 五、Cesium3DTileFeature的Member和Method(一)Members1、color     将元素添加红色,透明度为0.8(色相范围0-1,透明度0-1)    feature.color = new new Cesium.Color(1,0,0,0.8);2、featureId3、polylinePositions4、primitive5、tileset(二)Methods1、Cesium.Cesium3DTileFeature.getPropertyInherited(content, batchId, name)2、getProperty(name)     value = feature.getProperty(‘name’);3、getPropertyNames()4、hasProperty(name)5、setProperty(name, value)

Cesium3DTileset:Cesium3DTileset.root->   Cesium3DTile:Cesium3DTile.content->    Cesium3DTileContent: (Composite3DTileContent或Batched3DModel3DTileContent)->      Cesium3DTileFeature
页: [1]
查看完整版本: 3DTileset上如何加载地形图