三维空间分析 |
阴影率统计分析是指在特定时间段内对被遮挡的物体阴影情况进行分析的活动。SuperMap iClient3D for Plugin提供了阴影率统计分析功能(ShadowQuery类),可在三维场景中指定某个区域,根据设置间隔进行自动插值并计算每个点在指定时间段的阴影率,通过分层设色策略显示与分析该区域内的阴影率现象,并支持单点阴影率的查询与分析。
阴影率统计分析可广泛应用在城市规划、建筑物设计、景观分析等方面。比如在城市规划中需要考虑新建建筑是否严重影响周边建筑的光照,查看其影响的区域有多大,如何调整建筑的高度,才不会影响周边建筑的采光。
在SuperMap iClient3D for Plugin中阴影率分析类为ShadowQuery类,其方法及属性见下表:
表 4.1 ShadowQuery类属性列表
返回类型 |
名称 |
描述 |
Number |
baseUtcOffset |
获取或设置计算太阳位置时所用的地方时与 UTC 的偏移量。 |
DateTime |
endTime |
获取或设置分析的结束时间。 |
GeoRegion3D |
queryRegion |
获取或设置分析区域 。 |
Number |
spacing |
获取或设置分析展示点的间距。 |
DateTime |
startTime |
获取或设置分析的开始时间。 |
Number |
timeInterval |
获取或设置时间间隔。 |
表 4.2 ShadowQuery类方法列表
类型 |
名称 |
描述 |
void |
build |
执行阴影分析。 |
void |
clear |
清除分析结果。 |
Color |
getColorTable |
获取当前阴影率对应的颜色表。 |
Number |
getRatioValues |
获取阴影率分析的阴影率数值。 |
Number |
getShadowRatio |
获取指定位置的阴影率数值。 |
Color |
setColorDictionary |
设置阴影率范围及其对应的颜色表。 |
shadowQuery = new SuperMap.Web.Realspace.ShadowQuery(); var date = new Date(); date.setMinutes(0); date.setSeconds(0); date.setHours(parseInt(startHour)); //设置阴影率分析的开始时间 shadowQuery.set_startTime(date); date.setHours(parseInt(endHour)); //设置阴影率分析的结束时间 shadowQuery.set_endTime(date); //设置阴影率分析结果展示点的间隔 shadowQuery.set_spacing(dSpacing); //设置分析的时间间隔 shadowQuery.set_timeInterval(nInterval); //设置分析区域 shadowQuery.set_queryRegion(geoRegion); var colors = new Array(); colors[0] = new SuperMap.Web.Core.Color(255,0,0,255); colors[1] =new SuperMap.Web.Core.Color(0,0,255,255); var keys = new Array(0,1); //设置阴影率范围及其对应的颜色表 shadowQuery.setColorDictionary(keys,colors); //执行分析 shadowQuery.build(); |
阴影率分析的实现效果如下图:
图 4‑1 阴影率统计结果