DEJA_VU3D - Cesium功能集 之 100-任意多边形(标绘)
在Cesium中,我们可以使用Cesium.PolygonGraphics
来创建任意多边形。以下是一个简单的示例,展示如何在Cesium中创建一个可交互的任意多边形:
// 假设已经有一个Cesium.Viewer实例叫做`viewer`
// 创建一个实体
var entity = viewer.entities.add({
polygon: {
hierarchy: new Cesium.CallbackProperty(function() {
// 多边形的顶点数组,例如:[[-72.1, 46.2], [-69.1, 46.2], [-69.1, 43.2], [-72.1, 43.2]]
return Cesium.Cartesian3.fromDegreesArray([
-72.1, 46.2,
-69.1, 46.2,
-69.1, 43.2,
-72.1, 43.2
]);
}, false),
material: Cesium.Color.RED.withAlpha(0.5), // 多边形的颜色和透明度
outline: true, // 是否显示边界
outlineColor: Cesium.Color.BLACK // 边界颜色
}
});
// 可选:为实体添加一个点集合,以便可以拖动顶点
entity.point = {
pixelsSize: 10,
color: Cesium.Color.RED,
disableDepthTestDistance: Number.POSITIVE_INFINITY,
show: true,
positions: new Cesium.CallbackProperty(function() {
if (!entity.polygon.hierarchy) {
return [];
}
var positions = Cesium.PolygonPipeline.computePositions(entity.polygon.hierarchy);
return positions;
}, false)
};
在上面的代码中,我们创建了一个多边形实体,并通过hierarchy
属性定义了多边形的顶点。这些顶点是通过经纬度表示的,并且使用了CallbackProperty
来确保多边形会随着地球的旋转而更新。我们还添加了一个点集合,用于显示多边形的顶点,这些点可以拖动以重新定位多边形。这个示例提供了一个基本框架,您可以根据需要进行扩展和定制。
评论已关闭