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 自己看。。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律