【解决办法】iClient3D for WebGL中可通过 shadowQuery.getShadowRadioAsync 方法获取阴影率。具体使用请参考在线范例:
http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#shadowQuery
使用步骤:
1、点击范例中的“阴影分析”按钮,在场景中绘制目标区域。
2、程序完成阴影分析后,在场景中会出现阴影的可视化效果。
3、点击“获取阴影率”按钮,再用鼠标点击阴影可视化效果的小点,获取点击坐标作为参数调用shadowQuery.getShadowRadioAsync。
var handler = new SuperMap3D.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function (e) {
scene.pickPositionAsync(e.position).then((position1) => {
var cartographic = SuperMap3D.Cartographic.fromCartesian(position1);
shadowQuery.getShadowRadioAsync(cartographic).then((shadowRadio) => {
if (shadowRadio != -1) {
var longitude = SuperMap3D.Math.toDegrees(cartographic.longitude);
var latitude = SuperMap3D.Math.toDegrees(cartographic.latitude);
var height = cartographic.height;
console.log(shadowRadio);
console.log(longitude);
console.log(latitude);
console.log(height);
}
})
})
}, SuperMap3D.ScreenSpaceEventType.LEFT_CLICK);