GeometryFactory 是 CesiumJS 中的一个用于创建几何体的工厂。它提供了一些方法来创建各种类型的几何体,例如点、线、多边形等。
new GeometryFactory()
创建一个新的 GeometryFactory 对象。
创建一个点几何体。
参数:
options
: Object,可选,用于设置点几何体的属性,包括以下属性:
position
: Cartesian3,必需,点的位置。color
: Color,可选,点的颜色,默认为 Cesium.Color.WHITE。outlineColor
: Color,可选,点的轮廓颜色,默认为 Cesium.Color.BLACK。outlineWidth
: Number,可选,点的轮廓宽度,默认为 1.0。pixelSize
: Number,可选,点的大小,以像素为单位,默认为 10.0。返回值:
PointGraphics
: PointGraphics,表示点几何体的图形属性。示例:
var point = geometryFactory.createPoint({
position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
color: Cesium.Color.RED,
outlineColor: Cesium.Color.WHITE,
outlineWidth: 2.0,
pixelSize: 20.0
});
创建一条折线几何体。
参数:
options
: Object,可选,用于设置折线几何体的属性,包括以下属性:
positions
: Array.<Cartesian3>,必需,折线的顶点坐标数组。width
: Number,可选,折线的宽度,默认为 1.0。material
: Material,可选,折线的材质,默认为 Cesium.MaterialColorType.COLOR。
Color: material
: Color,折线的颜色。PolylineDashMaterial: material
: PolylineDashMaterial,折线的虚线材质。PolylineGlowMaterial: material
: PolylineGlowMaterial,折线的发光材质。PolylineOutlineMaterial: material
: PolylineOutlineMaterial,折线的轮廓材质。followSurface
: Boolean,可选,折线是否贴在地球表面,默认为 true。返回值:
PolylineGraphics
: PolylineGraphics,表示折线几何体的图形属性。示例:
var polyline = geometryFactory.createPolyline({
positions: Cesium.Cartesian3.fromDegreesArray([
-75.59777, 40.03883,
-75.59624, 40.03883,
-75.59624, 40.03786,
-75.59777, 40.03786
]),
width: 5.0,
material: Cesium.Color.RED.withAlpha(0.5),
followSurface: true
});
创建一个多边形几何体。
参数:
options
: Object,可选,用于设置多边形几何体的属性,包括以下属性:
hierarchy
: Array.<Cartesian3> | PolygonHierarchy,必需,多边形的层次结构。
Array.<Cartesian3>
: 表示多边形的顶点坐标数组。PolygonHierarchy
: 表示多边形的层次结构,包含以下属性:
positions
: Array.<Cartesian3>,表示多边形所有边界的顶点坐标。holes
: Array.<PolygonHierarchy>,可选,表示多边形的内部空洞,是一个多边形层次结构数组。extrudedHeight
: Number,可选,多边形的拉升高度,表示多边形的厚度,默认为 0.0。heightReference
: HeightReference,可选,多边形高度的参考系,默认为 Cesium.HeightReference.NONE。material
: Material,可选,多边形的材质,默认为 Cesium.MaterialColorType.COLOR。
Color: material
: Color,多边形的颜色。ImageMaterial: material
: ImageMaterial,多边形的纹理材质。PolylineDashMaterial: material
: PolylineDashMaterial,多边形的虚线材质。outline
: Boolean,可选,是否绘制多边形的轮廓线,默认为 true。outlineColor
: Color,可选,多边形的轮廓线颜色,默认为 Cesium.Color.BLACK。outlineWidth
: Number,可选,多边形的轮廓线宽度,默认为 1.0。perPositionHeight
: Boolean,可选,是否按照顶点高度提升,默认为 false。返回值:
PolygonGraphics
: PolygonGraphics,表示多边形几何体的图形属性。示例:
var polygon = geometryFactory.createPolygon({
hierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([
-108.0, 42.0,
-100.0, 42.0,
-104.0, 40.0
])),
material: Cesium.Color.ORANGE.withAlpha(0.5),
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
outline: true,
outlineColor: Cesium.Color.BLACK,
outlineWidth: 5.0
});
创建一个圆几何体。
参数:
options
: Object,可选,用于设置圆几何体的属性,包括以下属性:
center
: Cartesian3,必需,表示圆心的位置。radius
: Number,必需,表示圆的半径。material
: Material,可选,圆的材质,默认为 Cesium.MaterialColorType.COLOR。
Color: material
: Color,圆的颜色。ImageMaterial: material
: ImageMaterial,圆的纹理材质。PolylineDashMaterial: material
: PolylineDashMaterial,圆的虚线材质。heightReference
: HeightReference,可选,圆高度的参考系,默认为 Cesium.HeightReference.NONE。outline
: Boolean,可选,是否绘制圆的轮廓线,默认为 true。outlineColor
: Color,可选,圆的轮廓线颜色,默认为 Cesium.Color.BLACK。outlineWidth
: Number,可选,圆的轮廓线宽度,默认为 1.0。numberOfVerticalLines
: Number,可选,圆的垂线数量,默认为 16。stackPartitions
: Number,可选,圆的垂直分区数,默认为 1。slicePartitions
: Number,可选,圆的水平分区数,默认为 128。返回值:
CircleGraphics
: CircleGraphics,表示圆几何体的图形属性。示例:
var circle = geometryFactory.createCircle({
center: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
radius: 1000.0,
material: Cesium.Color.YELLOW.withAlpha(0.5),
heightReference: Cesium.HeightReference.RELATIVE_TO_GROUND,
outline: true,
outlineColor: Cesium.Color.BLACK,
outlineWidth: 5.0,
numberOfVerticalLines: 32,
stackPartitions: 2,
slicePartitions: 64
});
创建一个矩形几何体。
参数:
options
: Object,可选,用于设置矩形几何体的属性,包括以下属性:
coordinates
: Rectangle | Array.<Number>,必需,矩形的坐标范围。
Rectangle: coordinates
: 表示矩形的坐标范围,是一个 Cesium.Rectangle 对象。Array.<Number>: coordinates
: 表示矩形的坐标范围,是一个由 [west, south, east, north] 组成的数组。height
: Number,可选,矩形的高度,默认为 0.0。heightReference
: HeightReference,可选,矩形高度的参考系,默认为 Cesium.HeightReference.NONE。material
: Material,可选,矩形的材质,默认为 Cesium.MaterialColorType.COLOR。
Color: material
: Color,矩形的颜色。ImageMaterial: material
: ImageMaterial,矩形的纹理材质。PolylineDashMaterial: material
: PolylineDashMaterial,矩形的虚线材质。outline
: Boolean,可选,是否绘制矩形的轮廓线,默认为 true。outlineColor
: Color,可选,矩形的轮廓线颜色,默认为 Cesium.Color.BLACK。outlineWidth
: Number,可选,矩形的轮廓线宽度,默认为 1.0。返回值:
RectangleGraphics
: RectangleGraphics,表示矩形几何体的图形属性。示例:
var rectangle = geometryFactory.createRectangle({
coordinates: Cesium.Rectangle.fromDegrees(-75.0, 28.0, -70.0, 32.0),
height: 50000.0,
material: Cesium.Color.CYAN.withAlpha(0.5),
heightReference: Cesium.HeightReference.NONE,
outline: true,
outlineColor: Cesium.Color.BLACK,
outlineWidth: 5.0
});
创建一个椭球几何体。
参数:
options
: Object,可选,用于设置椭球几何体的属性,包括以下属性:
center
: Cartesian3,必需,表示椭球的中心位置。radii
: Cartesian3,必需,表示椭球的三个轴的半径。material
: Material,可选,椭球的材质,默认为 Cesium.MaterialColorType.COLOR。
Color: material
: Color,椭球的颜色。ImageMaterial: material
: ImageMaterial,椭球的纹理材质。heightReference
: HeightReference,可选,椭球高度的参考系,默认为 Cesium.HeightReference.NONE。返回值:
EllipsoidGraphics
: EllipsoidGraphics,表示椭球几何体的图形属性。示例:
var ellipsoid = geometryFactory.createEllipsoid({
center: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
radii: new Cesium.Cartesian3(10000.0, 20000.0, 30000.0),
material: Cesium.Color.BLUE.withAlpha(0.5),
heightReference: Cesium.HeightReference.NONE
});
创建一个圆柱体几何体。
参数:
options
: Object,可选,用于设置圆柱体几何体的属性,包括以下属性:
length
: Number,必需,表示圆柱体的长度。topRadius
: Number,必需,表示圆柱体顶面的半径。bottomRadius
: Number,必需,表示圆柱体底面的半径。slices
: Number,可选,表示圆柱侧面的分段数,默认为 128。material
: Material,可选,圆柱体的材质,默认为 Cesium.MaterialColorType.COLOR。
Color: material
: Color,圆柱体的颜色。ImageMaterial: material
: ImageMaterial,圆柱体的纹理材质。PolylineDashMaterial: material
: PolylineDashMaterial,圆柱体的虚线材质。heightReference
: HeightReference,可选,圆柱体高度的参考系,默认为 Cesium.HeightReference.NONE。outline
: Boolean,可选,是否绘制圆柱体的轮廓线,默认为 true。outlineColor
: Color,可选,圆柱体的轮廓线颜色,默认为 Cesium.Color.BLACK。outlineWidth
: Number,可选,圆柱体的轮廓线宽度,默认为 1.0。返回值:
CylinderGraphics
: CylinderGraphics,表示圆柱体几何体的图形属性。示例:
var cylinder = geometryFactory.createCylinder({
length: 5000.0,
topRadius: 200.0,
bottomRadius: 400.0,
slices: 64,
material: Cesium.Color.GREEN.withAlpha(0.5),
heightReference: Cesium.HeightReference.NONE,
outline: true,
outlineColor: Cesium.Color.BLACK,
outlineWidth: 5.0
});