PolygonGraphics類是隸屬于實(shí)體對(duì)象的一個(gè)類型,主要用于創(chuàng)建幾何面對(duì)象和對(duì)面對(duì)象拉伸為盒子模型,數(shù)據(jù)的來(lái)源為點(diǎn)串?dāng)?shù)據(jù)。添加拉伸后的面實(shí)體效果如下圖:

實(shí)現(xiàn)代碼如下:
viewer.entities.add({
id: "test",
polygon: {
hierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([112, 40, 112.01, 40, 112.01, 40.01, 112, 40.01])),
height:300,
extrudedHeight:2000,
material:Cesium.Color.RED.withAlpha(0.5),
outline:true,
outlineColor:Cesium.Color.WHITE,
outlineWidth:2.0
}
});
viewer.flyTo(viewer.entities.getById("test"));
一、主要參數(shù)介紹
1、hierarchy:多邊形的點(diǎn)集合串,是一個(gè)PolygonHierarchy 類型的對(duì)象,里面可以創(chuàng)建普通面和導(dǎo)洞對(duì)象。

2、height:多邊形相當(dāng)?shù)孛娴母叨取?br>
3、extrudedHeight:多邊形的寄出高度,一般多邊形的拉升高度=extrudedHeight-height。
4、show:多邊形是否可見(jiàn)
5、fill:是否使用材質(zhì)填充,不填充則是透明,如果有邊線則只顯示邊線效果

6、material:對(duì)象的填充材質(zhì),就是對(duì)象的外觀,可以是顏色,也可以是貼圖等等,后續(xù)的文章會(huì)講解
7、outline:對(duì)象是否顯示邊線
8、outlineColor:邊線的顏色
9、outlineWidth:邊線的寬度
10、stRotation:材質(zhì)的旋轉(zhuǎn)角度
11、perPositionHeight:是否單獨(dú)使用對(duì)象的高度,也就是每個(gè)節(jié)點(diǎn)的高度可顯示,這樣可以做一個(gè)傾斜的平面
12、closeTop:拉伸的時(shí)候頂部是否封口
13、closeBottom:拉伸的時(shí)候底部是否封口
14、shadows:陰影投射方式
15、distanceDisplayCondition:即是控制模型在什么相機(jī)位置下顯示出來(lái)。例如設(shè)置distanceDisplayCondition:new Cesium.DistanceDisplayCondition(1500,5000),即是在相機(jī)距離1500-5000的位置范圍內(nèi)顯示,其他范圍模型都不顯示。
二、綜合使用
詳細(xì)大家看到這里,怎么添加entity都已經(jīng)會(huì)了,這里不再做多的講解,我們添加一個(gè)帶有洞的多邊形,拉伸他并給他貼一個(gè)圖片材質(zhì)
viewer.entities.add({
id: "test",
polygon: {
hierarchy: {
positions: Cesium.Cartesian3.fromDegreesArray([112, 40, 112.01, 40, 112.01, 40.01, 112, 40.01]),
holes:[new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([112.001, 40.001, 112.009, 40.001, 112.009, 40.006, 112.001, 40.006]))]
},
height: 300,
extrudedHeight: 2000,
material: new Cesium.ImageMaterialProperty ({
image:"data/building2.png"
}),
outline: true,
outlineColor: Cesium.Color.WHITE,
outlineWidth: 2.0,
}
});
viewer.flyTo(viewer.entities.getById("test"));
效果如下圖:
