Cesium之绘制图形
首先通过viewer.entities.add创建了一个entity(坐标定位在北京,根据坐标绘制了一个多边形),然后通过zoomto确保entity在视图中。
var viewer = new Cesium.Viewer('cesiumContainer');
var beijing = viewer.entities.add({
name: 'Beijing',
polygon: {
hierarchy: Cesium.Cartesian3.fromDegreesArray([
116.4, 39.9,
116.38, 39.9,
116.37, 39.92]),
height: 0,
material: Cesium.Color.RED.withAlpha(0.5),
outline: true,
outlineColor: Cesium.Color.BLACK
}
});
viewer.zoomTo(beijing);
运行上面的代码,效果如下:

下面代码,将多边形高度提升到了地球20万米上空。
beijing.polygon.height = 200000;

如果height为undefined,则体积从0开始,下面代码创建从20万米开始并延伸到25万米,就意味着体本身达到5万米。
beijing.polygon.height = 200000;
beijing.polygon.extrudedHeight = 250000;

除了多边形,还有下面这些形状的实体:
| 实体 | 类型 |
|---|---|
| Boxes | entity.box |
| Circles | entity.ellipse |
| Corridor | entity.corridor |
| Cylinder | entity.cylinder |
| Polygons | entity.polygon |
| Polylines | entity.polyline |
| Polyline Volumes | entity.polylineVolume |
| Rectangles | entity.rectangle |
| Spheres | entity.ellipsoid |
| Walls | entity.wall |
下面代码分别在北京、上海、西安绘制3钟不同的实体图形:
var viewer = new Cesium.Viewer('cesiumContainer');
//北京
var greenCylinder = viewer.entities.add({
name : '北京',
position: Cesium.Cartesian3.fromDegrees(115.97, 40.45, 200000.0),
cylinder : {
length : 400000.0,
topRadius : 200000.0,
bottomRadius : 200000.0,
material : Cesium.Color.GREEN.withAlpha(0.5),
outline : true,
outlineColor : Cesium.Color.DARK_GREEN
}
});
// 上海
var redCone = viewer.entities.add({
name : '上海',
position: Cesium.Cartesian3.fromDegrees(121.47, 31.23, 200000.0),
cylinder : {
length : 400000.0,
topRadius : 0.0,
bottomRadius : 200000.0,
material : Cesium.Color.RED
}
});
//西安
var redBox = viewer.entities.add({
name : '西安',
position: Cesium.Cartesian3.fromDegrees(108.93, 34.343, 300000.0),
box : {
dimensions : new Cesium.Cartesian3(400000.0, 300000.0, 500000.0),
material : Cesium.Color.RED.withAlpha(0.5),
outline : true,
outlineColor : Cesium.Color.BLACK
}
});
viewer.zoomTo(viewer.entities);
效果如下图:
