在cesium中,我们可以通过既有的库来进行对地图的构建
// 向场景中添加一个几何体(立方体)
scene.primitives.add(
new Cesium.Primitive({
// 定义几何体实例
geometryInstances: new Cesium.GeometryInstance({
// 使用BoxGeometry.fromDimensions方法创建一个立方体几何体
geometry: Cesium.BoxGeometry.fromDimensions({
// 指定顶点格式,这里使用PerInstanceColorAppearance的顶点格式,以便支持每个实例的颜色
vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT,
// 设置立方体的尺寸,单位为米
dimensions: new Cesium.Cartesian3(400000.0, 300000.0, 500000.0),
}),
// 设置模型矩阵,用于定位立方体
modelMatrix: Cesium.Matrix4.multiplyByTranslation(
// 使用eastNorthUpToFixedFrame方法将经纬度转换为局部坐标系
Cesium.Transforms.eastNorthUpToFixedFrame(
// 指定立方体的中心位置,经度为-105.0,纬度为45.0
Cesium.Cartesian3.fromDegrees(-105.0, 45.0),
),
// 将立方体沿Z轴向上移动250000米
new Cesium.Cartesian3(0.0, 0.0, 250000),
new Cesium.Matrix4(),
),
// 设置几何体的颜色属性
attributes: {
// 使用ColorGeometryInstanceAttribute.fromColor方法设置颜色
color: Cesium.ColorGeometryInstanceAttribute.fromColor(
// 设置颜色为红色,透明度为0.5
Cesium.Color.RED.withAlpha(0.5),
),
},
}),
// 设置外观,使用PerInstanceColorAppearance
appearance: new Cesium.PerInstanceColorAppearance({
// 设置是否闭合,true表示闭合,即显示立方体的底部
closed: true,
}),
}),
);
// 向场景中添加一个几何体(矩形)
scene.primitives.add(
new Cesium.Primitive({
// 定义几何体实例
geometryInstances: new Cesium.GeometryInstance({
// 使用RectangleGeometry创建一个矩形几何体
geometry: new Cesium.RectangleGeometry({
// 使用Rectangle.fromDegrees方法指定矩形的范围,经度范围为-100.0到-93.0,纬度范围为30.0到37.0
rectangle: Cesium.Rectangle.fromDegrees(-100.0, 30.0, -93.0, 37.0),
// 设置矩形的高度,单位为米
height: 100000,
// 指定顶点格式,这里同样使用PerInstanceColorAppearance的顶点格式
vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT,
}),
// 设置几何体的颜色属性
attributes: {
// 使用ColorGeometryInstanceAttribute.fromColor方法设置颜色
color: Cesium.ColorGeometryInstanceAttribute.fromColor(
// 设置颜色为蓝色
Cesium.Color.BLUE,
),
},
}),
// 设置外观,使用PerInstanceColorAppearance
appearance: new Cesium.PerInstanceColorAppearance(),
}),
);
保存后如图所示
可以看到我们在地球上创建了一个矩形和一个长方体