美文网首页
SuperMap iClient3D for WebGL教程-

SuperMap iClient3D for WebGL教程-

作者: Mr桔子先生 | 来源:发表于2019-07-26 15:49 被阅读0次

    阴影率分析是一个很常用的三维空间分析功能,是对一定的空间在指定的时间范围内,分析日照的情况。通常只能分析之后对结果进行简单的查询,这个分析功能在SuperMap iClient3D for WebGL产品中不能对分析结果进行设置颜色,实现方案对比分屏显示困难。
    这节课程就来对上诉的问题进行解决和实现。
    本节课程分为两部分:
    1、阴影率分析结果重绘
    2、阴影率分析分屏对比
    一、阴影率分析结果重绘
    首先通过阴影率分析事件获取分析结果

    shadowQuery.queryPointsEvent.addEventListener(function(e) {
      console.log(e)
    })
    

    再循环分析结果,将分析结果重新绘制

    e.forEach(function(a) {
        ar color = getColor(a.shadowRatio)
        viewer.entities.add({
        position: a.position,
        point: {
        color: color,
        pixelSize: 5,
        show: true,
        outlineWidth: 1,
        outlineColor: Cesium.Color.YELLOW,
        disableDepthTestDistance: 0,
        }
        })
    })
    

    最终,清除分析结果

    shadowQuery.qureyRegion({
        position: [0, 0],
        bottom: 0,
        extend: 0
    });
    
    阴影率分析

    二、阴影率分析分屏对比
    在城市设计、规划等行业中,经常用到分屏对比功能,对比不同的建设方案对周围环境的影响。在SuperMap iClient3D for WebGL中支持kml图层设置分屏,可将阴影率分析结果绘制到kml图层中来实现分屏对比。
    首先,初始化kml图层

    kmldatasource1.setVisibleInViewport(0, false)
    kmldatasource1.setVisibleInViewport(1, true)
    

    注意,阴影率分析类也需要要初始化两个。
    然后获取结果进行绘制

    shadowQuery.queryPointsEvent.addEventListener(function(e) {
    var pointCollection = viewer.scene.primitives.add(new Cesium.PointPrimitiveCollection())
    if(shadowQuery._extend > 0) {
    
        kmldatasource.entities.removeAll()
        e.forEach(function(a) {
        var color = getColor(a.shadowRatio)
    
        kmldatasource.entities.add({
            position: a.position,
            point: {
                color: color,
                pixelSize: 5,
                show: true,
                outlineWidth: 1,
                outlineColor: Cesium.Color.YELLOW,
                disableDepthTestDistance: 0,
                }
            })
        })
        shadowQuery.qureyRegion({
            position: [0, 0],
            bottom: 0,
            extend: 0
            });
        }
    
    })
    

    下面来看下对比效果


    阴影率分析分屏对比

    本节课程就到这里,欢迎评论、转发、留言。

    相关文章

      网友评论

          本文标题:SuperMap iClient3D for WebGL教程-

          本文链接:https://www.haomeiwen.com/subject/lpcdrctx.html