一、线段
const instance = new Cesium.GeometryInstance({
id: "PolylineGeometry",
geometry: new Cesium.PolylineGeometry({
positions: Cesium.Cartesian3.fromDegreesArray([
108.0, 31.0,
100.0, 36.0,
105.0, 39.0
]),
width: 10.0,
})
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.PolylineMaterialAppearance({
material: Cesium.Material.fromType('Color'),
})
});
viewer.scene.primitives.add(primitive)
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(108.0, 31.0, 13000000),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-90),
roll: 0
},
duration: 2.0
});
二、椭圆(圆形)
const instance = new Cesium.GeometryInstance({
geometry: new Cesium.EllipseGeometry({
center: Cesium.Cartesian3.fromDegrees(-100.0, 20.0),
semiMinorAxis: 500000.0,
semiMajorAxis: 1000000.0,
rotation: Cesium.Math.PI_OVER_FOUR,
vertexFormat: Cesium.VertexFormat.POSITION_AND_ST,
}),
id: "EllipseGeometry",
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.EllipsoidSurfaceAppearance({
material: Cesium.Material.fromType('Color')
})
});
viewer.scene.primitives.add(primitive)
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(-100.0, 20.0, 4000000),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-90),
roll: 0
},
duration: 2.0
});
三、圆形(圆柱)
const instance = new Cesium.GeometryInstance({
id: "CircleGeometry",
geometry: new Cesium.CircleGeometry({
center: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
radius: 100000.0,
extrudedHeight: 20000
})
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.MaterialAppearance({
material: Cesium.Material.fromType('Color'),
})
});
viewer.scene.primitives.add(primitive)
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 2000000),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-90),
roll: 0
},
duration: 2.0
});
四、连廊
const instance = new Cesium.GeometryInstance({
id: "CorridorGeometry",
geometry: new Cesium.CorridorGeometry({
vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
positions: Cesium.Cartesian3.fromDegreesArray([-72.0, 40.0, -70.0, 35.0, -68.0, 38.0]),
width: 100000,
extrudedHeight: 1000
}),
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.AQUA)
},
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.PerInstanceColorAppearance({
flat: true,
translucent: false
})
});
viewer.scene.primitives.add(primitive)
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(-72.0, 40.0, 1800000),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-90),
roll: 0
},
duration: 2.0
});
五、圆柱(圆锥)
const instance = new Cesium.GeometryInstance({
id: "CorridorGeometry",
geometry: new Cesium.CylinderGeometry({
length: 20000,
topRadius: 20000,
bottomRadius: 20000,
vertexFormat: Cesium.VertexFormat.POSITION_AND_NORMAL
}),
modelMatrix: Cesium.Matrix4.fromTranslation(Cesium.Cartesian3.fromDegrees(-75.0, 40.0, 10000.0)),
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.EllipsoidSurfaceAppearance({
material: Cesium.Material.fromType('Color', {
color: Cesium.Color.RED
})
})
});
viewer.scene.primitives.add(primitive)
六、矩形
const instance = new Cesium.GeometryInstance({
id: "RectangleGeometry",
geometry: new Cesium.RectangleGeometry({
ellipsoid: Cesium.Ellipsoid.WGS84,
rectangle: Cesium.Rectangle.fromDegrees(-80.0, 39.0, -74.0, 42.0),
height: 10000.0
}),
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.AQUA)
},
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.PerInstanceColorAppearance({
flat: true,
translucent: false
})
});
viewer.scene.primitives.add(primitive)
七、墙
const instance = new Cesium.GeometryInstance({
id: "WallGeometry",
geometry: new Cesium.WallGeometry({
positions: Cesium.Cartesian3.fromDegreesArrayHeights([
19.0, 47.0, 10000.0,
19.0, 48.0, 10000.0,
20.0, 48.0, 10000.0,
20.0, 47.0, 10000.0,
19.0, 47.0, 10000.0
])
}),
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.MaterialAppearance({
material: Cesium.Material.fromType('Color', {
color: Cesium.Color.BLUE
}),
})
});
viewer.scene.primitives.add(primitive)
八、多边形
const instance = new Cesium.GeometryInstance({
id: "PolygonGeometry",
geometry: new Cesium.PolygonGeometry({
polygonHierarchy: new Cesium.PolygonHierarchy(
Cesium.Cartesian3.fromDegreesArray([
-72.0, 40.0,
-70.0, 35.0,
-75.0, 30.0,
-70.0, 30.0,
-68.0, 40.0
])
)
}),
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.MaterialAppearance({
material: Cesium.Material.fromType('Color', {
color: Cesium.Color.BLUE
}),
})
});
viewer.scene.primitives.add(primitive)
九、 盒子
const instance = new Cesium.GeometryInstance({
id: "BoxGeometry",
geometry: new Cesium.BoxGeometry({
vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
maximum: new Cesium.Cartesian3(250000.0, 250000.0, 250000.0),
minimum: new Cesium.Cartesian3(-250000.0, -250000.0, -250000.0)
}),
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.AQUA)
},
modelMatrix: Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(-75.0, 40.0, 0.0)),
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.PerInstanceColorAppearance({
flat: true,
translucent: false
})
});
viewer.scene.primitives.add(primitive)
十、 球体
const instance = new Cesium.GeometryInstance({
id: "SphereGeometry",
geometry: new Cesium.SphereGeometry({
radius: 1000.0,
vertexFormat: Cesium.VertexFormat.POSITION_ONLY
}),
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
},
modelMatrix: Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(-75.0, 40.0, 1000)),
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.PerInstanceColorAppearance({
flat: true,
translucent: false
})
});
viewer.scene.primitives.add(primitive)
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(-75.0, 40.0, 25000),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-90),
roll: 0
},
duration: 2.0
});
十一、 椭球体
const instance = new Cesium.GeometryInstance({
id: "EllipsoidGeometry",
geometry: new Cesium.EllipsoidGeometry({
vertexFormat: Cesium.VertexFormat.POSITION_ONLY,
radii: new Cesium.Cartesian3(2000.0, 3000.0, 2000.0)
}),
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
},
modelMatrix: Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(-75.0, 40.0, 2000)),
});
const primitive = new Cesium.Primitive({
geometryInstances: instance,
appearance: new Cesium.PerInstanceColorAppearance({
flat: true,
translucent: false
})
});
viewer.scene.primitives.add(primitive)
十二、 添加移除
var collection = new Cesium.PrimitiveCollection();
collection.add(primitive)
viewer.scene.primitives.add(collection)
collection.remove(primitive)
原文:blog.csdn.net/qq_27814951…