三维功能
1、可视域分析
视域分析以观察者的角度,比较直观的展现地理空间中可视部分与不可视部分。
//创建可视域分析对象
var viewshed3D = new Cesium.DEViewshed3D(viewer);
//以primitives的方式将视域分析对象加载到当前场景中
viewer.scene.primitives.add(viewshed3D);
//设置视域分析的观测点与目标点
viewshed3D.viewerPosition=Cesium.Cartesian3.fromDegrees(119.06320539907986,33.59120978010516,64.69074782157811);
viewshed3D.setPoseByTargetPoint(Cesium.Cartesian3.fromDegrees(119.06260849360362,33.5927070973726,55.19686637677648));
除了以上基本参数,视域分析还支持设置水平视角与垂直视角、方向角、俯仰角、可视距离和分析颜色的调整。
2、分层设色
//创建用于分层的颜色表,指定对应的颜色值
var colorTable = new Cesium.DEColorDictTable();
colorTable.insert(91.0, new Cesium.Color(0.0, 0.0, 0.0));
colorTable.insert(92.0, new Cesium.Color(0.0, 0.0, 1.0));
//将颜色表分配给tile数据,并设置显示模式
tileset.setColorTable(colorTable);
tileset.setDisplayMode(2);
3、双屏对比
先创建用于对比的两个Viewer,用于方案对比。
var viewLeft = new Cesium.Viewer('viewLeft', options3D);
var viewRight = new Cesium.Viewer('viewRight', options3D);
4、模型压平
模型压平功能可将场景中绘制区域内的模型压平,模拟实现规划方案效果对比与展示,满足规划行业的应用。
var Mypolygon = new Cesium.PolygonGeometry({
polygonHierarchy:new Cesium.PolygonHierarchy(event.positions),
perPositionHeight : true
});
var index = tileset._flattenPolygon.push(Mypolygon) ;
tileset._needUpateFlatten = true;
模型数据压平前和压平后效果:
5、日照分析
日照分析基于给定时间段,以日照率的形式,计算在此时间段内指定空间范围内所受光照强度,一般以冷色到暖色过渡的方式显示。
//创建日照分析对象
var sunshineAnalyze = new Cesium.sunshineAnalyze(viewer);
//以primitives的方式将日照分析加载到当前场景中
viewer.scene.primitives.add(sunshineAnalyze);
//设置分析的区域点
Var pointsArray = [116.368,39.913,100,116.382,39.901,110,116.387,39.912,120];
sunshineAnalyze.regionPoints = pointsArray;
除了点的显示方式外,日照分析还支持立方体的显示方式,只需设置 sunshineAnalyze.isCubicStyle = true