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)
示例:
加点:
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 自己看。。。。
浙公网安备 33010602011771号