cesium实现限高分析

Cesium ClassificationPrimitive

Cesium 的 ClassificationPrimitive 是一个用于在三维场景中分类地表或其他几何体的工具。这种分类通常用于在现有的地表或模型上应用覆盖效果,比如标记特定区域、着色或其他视觉效果,用于突出显示某些特征或为特定应用添加信息层。

  1. 地表分类:
    • ClassificationPrimitive 主要用于对地表进行分类处理,可以为地形或模型表面覆盖一层指定的材质或颜色,通常用于高亮、区分不同区域的用途。
  2. 与现有几何体的交互:
    • 它能够与地形、3D Tiles 或其他几何图形结合使用,提供了一种方法来在这些图形上绘制或标记数据,而不修改原始数据。
  3. 高度自定义的视觉效果:
    • 支持自定义的材质和着色方式,可以通过指定的Appearance对象来定义如何渲染覆盖层,包括但不限于使用 GLSL 着色器来创建复杂的视觉效果。

ClassificationPrimitive 可用于高亮显示特定区域,如城市规划区、受保护地区等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
RestrictHeight.prototype.addToMap = function () {
this.removeFromMap();
if (!this.positions) {
return;
}
const positions = Cesium.Cartesian3.fromDegreesArray(this.positions);
const polygonInstance = new Cesium.GeometryInstance({
geometry: new Cesium.PolygonGeometry({
polygonHierarchy: new Cesium.PolygonHierarchy(positions),
height: this.baseHeight,
extrudedHeight: this.baseHeight + this.extrudedHeight,
}),
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(this.color),
},
});

this.limitHeightPrimitive = this._coreMap.scene.primitives.add(
new Cesium.ClassificationPrimitive({
geometryInstances: polygonInstance,
releaseGeometryInstances: false,
classificationType: Cesium.ClassificationType.CESIUM_3D_TILE,
})
);
};
作者

wangyawei

发布于

2025-03-16

更新于

2025-03-21

许可协议