随笔 - 24  文章 - 0  评论 - 0  阅读 - 8468

Cesium-PrimitiveCollection

  PrimitiveCollection

    是一个Primitive的集合,但是PrimitiveCollection本身也是一个Primitive,所以PrimitiveCollection 允许添加集合中,形成层次结构

      viewer到entity的关系:
        Viewer ==> DataSourceDisplay ==> DataSourceCollection ==> CustomDataSource ==> EntityCollection (entities)==> Entity

            将entity加入地球:

                viewer.entities.add(entity)

      viewer到primitive的关系

        Viewer ==> Scene ==> PrimitiveCollection(primitives) ==> primitive / primitives

            将primitive加入地球

                viewer.scene.primitives.add(primitive/primitivecollection)

 

 示例:

  var dataS = new Cesium.PrimitiveCollection() // 申明一个primitive集合
      dataS.name = 'primitive11'  // 给primitive集合设置一个名字
      viewer.scene.primitives.add(dataS) // 将集合加入到地球上

    加点:

      let  points = new Cesium.PointPrimitiveCollection()   // 点集合

      dataS.add(points) // 将点集合加入到primitive集合里

                      // points.add(PointPrimitive)

      points.add({

        position:new Cesium.Cartesian3(1.0,2.0,3.0),

        color:Cesium.Color.YELLOW

      })

    加线:

      dataS.add(

        new Cesium.Primitive({

          geometryInstances:instances,

          appearance:new Cesium.PolylineMaterialAppearance({

            material: Cesium.Material.fromType('Color',{

              color:Cesium.Color.HOTPINK

            })

          })

        })

      )

      var polylineInstance= new Cesium.GeometryInstance({

        geometry:new Cesium.PolylineGeometry({

          positions:position,

          width:3

        })

      })

      instances.push(polylineInstance)  // 给预设的GeometryInstance数组加新的GeometryInstance,自己就可以再渲染新的primitive,我不理解,但是有用。

    加面:

      dataS.add(

        new Cesium.Primitive({

          geometryInstance:instances,

          appearance:new Cesium.PerInstanceColorAppearance({

            flat:true,

            translucent:false

          })

        })

      )

      dataS.add(

        new Cesium.Primitive({

          geometryInstance:Instances1,

          appearance:new Cesium.PerInstanceColorAppearance({

            flat:true,

            translucent:false

          })

        })

      )

      var polylineInstance = new Cesium.GeometryInstance({

        geometry:new Cesium.PolygonGeometry({

            polygonHierarchy:hierarchy

          })

        attributes: {                  

          color: Cesium.ColorGeometryInstanceAttribute.fromColor(color),                  

          distanceDisplayCondition:new Cesium.DistanceDisplayConditionGeometryInstanceAttribute(near, far)                

        }

      })

      var polylineInstance1 = new Cesium.GeometryInstance({

        geometry:new Cesium.PolygonOutlineGeometry({

            polygonHierarchy:hierarchy

          })

        attributes: {                  

          color: Cesium.ColorGeometryInstanceAttribute.fromColor(color),                  

          distanceDisplayCondition:new Cesium.DistanceDisplayConditionGeometryInstanceAttribute(near, far)                

        }

      })

      instances.push(polylineInstance)

      instances1.push(polylineInstance1)

 

示例代码:data-center-admin里面的setMapLayer 自己看。。。。

posted on   zhanlanzzz  阅读(2198)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示