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
});