Entity模型贴地
const entity = viewer.entities.add({
name: '这是一个模型',
position: Cesium.Cartesian3.fromDegrees({ -123.0744619, 44.0503706, 100 }),
model: {
uri: url,
minimumPixelSize: 128,
maximumScale: 2000,
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND
}
})
Entity点贴地
核心代码
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND
const e = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(-122.1958, 46.1915),
point: {
color: Cesium.Color.SKYBLUE,
pixelSize: 10,
outlineColor: Cesium.Color.YELLOW,
outlineWidth: 3,
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
},
label: {
text: "紧贴地面",
font: "14pt sans-serif",
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
verticalOrigin: Cesium.VerticalOrigin.BASELINE,
fillColor: Cesium.Color.BLACK,
showBackground: true,
backgroundColor: new Cesium.Color(1, 1, 1, 0.7),
backgroundPadding: new Cesium.Cartesian2(8, 4),
disableDepthTestDistance: Number.POSITIVE_INFINITY
},
});
Entity线贴地
const point = viewer.entities.add({
name: "polyline",
polyline: {
positions: Cesium.Cartesian3.fromDegreesArray(arr),
width: 1,
material: new Cesium.Color(222/255, 216/255, 192/255, 1),
clampToGround: true,
},
});
Entity面贴地
核心代码
classificationType: Cesium.ClassificationType.TERRAIN
const e = viewer.entities.add({
polygon: {
hierarchy: {
positions: [
new Cesium.Cartesian3(
-2358138.847340281,
-3744072.459541374,
4581158.5714175375
),
new Cesium.Cartesian3(
-2357231.4925370603,
-3745103.7886602185,
4580702.9757762635
),
new Cesium.Cartesian3(
-2355912.902205431,
-3744249.029778454,
4582402.154378103
),
new Cesium.Cartesian3(
-2357208.0209552636,
-3743553.4420488174,
4581961.863286629
),
],
},
material: "Cesium_Logo_Color.jpg",
classificationType: Cesium.ClassificationType.TERRAIN,
stRotation: Cesium.Math.toRadians(45),
},
});
Primitive线贴地
// 创建贴地线段几何实例
const instance = new Cesium.GeometryInstance({
id: "PolylineGeometry",
geometry: new Cesium.GroundPolylineGeometry({
positions: Cesium.Cartesian3.fromDegreesArray([
108.0, 31.0,
100.0, 36.0,
105.0, 39.0
]),
width: 10.0,
})
});
// 根据几何实例创建贴地图元
const primitive = new Cesium.GroundPolylinePrimitive({
geometryInstances: instance,
appearance: new Cesium.PolylineMaterialAppearance({
material: Cesium.Material.fromType('Color'),
})
});
// 将图元添加到集合
viewer.scene.primitives.add(primitive)
Primitive面贴地
// 创建贴地面几何实例
const instance = new Cesium.GeometryInstance({
id: "PolygonGeometry",
geometry: new Cesium.PolygonGeometry({
polygonHierarchy: new Cesium.PolygonHierarchy(
Cesium.Cartesian3.fromDegreesArray([
-72.0, 40.0,
-70.0, 35.0,
-75.0, 30.0,
-70.0, 30.0,
-68.0, 40.0
])
)
}),
});
// 根据几何实例创建贴地面图元
const primitive = new Cesium.GroundPrimitive({
geometryInstances: instance, //可以是实例数组
appearance: new Cesium.MaterialAppearance({
material: Cesium.Material.fromType('Color', {
color: Cesium.Color.BLUE
}),
})
});
// 将图元添加到集合
viewer.scene.primitives.add(primitive)