Cesium学习笔记-工具篇07-GroundClipping挖地形(转)

前一篇篇博客我们学习了地形开挖工具groundpush,但是在新版本的cesium中无法使用,查看新版cesium,发现提供了类似的功能:GroundClipping。

效果:Cesium学习笔记-工具篇07-GroundClipping挖地形

与groundpush工具不同的是直接挖走区域内影像,形成一个黑洞。

调用代码十分简单:

 var terrainProvider = new Cesium.CesiumTerrainProvider({

            url: './sampledata/terrain/ctb-merger/'

        });

 

        //一: WebMapTileServiceImageryProvider--天地图

        var mtdt = new Cesium.WebMapTileServiceImageryProvider({

            url: 'http://t0.tianditu.com/img_w/wmts?',

            layer: 'img',

            style: 'default',

            format: 'tiles',

            tileMatrixSetID: 'w',

            credit: new Cesium.Credit('天地图全球影像服务'),

            maximumLevel: 18

        });

 

        var viewer = new Cesium.Viewer('cesiumContainer', {

            imageryProvider: mtdt,

            contextOptions: {

                webgl: {

                    alpha: true

                }

            },

            terrainProvider: terrainProvider,

            creditContainer: "creditContainer",

            selectionIndicator: false,

            animation: false,   

            baseLayerPicker: false,  

            geocoder: false,  

            timeline: false, 

            sceneModePicker: true,  

            navigationHelpButton: false,  

            infoBox: false,   

            fullscreenButton: true

        });

 

        viewer.scene.globe.depthTestAgainstTerrain = true; 

 

        //设置初始位置

        viewer.camera.setView({

            destination: Cesium.Cartesian3.fromDegrees(128.055, 42.006, 1500)

        });

 

 

        var position = Cesium.Cartesian3.fromDegrees(128.055, 42.006, 500.0);

        var entity = viewer.entities.add({

            position: position,

            box: {

                dimensions: new Cesium.Cartesian3(1400.0, 1400.0, 2800.0),

                material: Cesium.Color.WHITE.withAlpha(0.3),

                outline: true,

                outlineColor: Cesium.Color.WHITE

            }

        });

 

        var globe = viewer.scene.globe;

        globe.depthTestAgainstTerrain = true;

        globe.clippingPlanes = new Cesium.ClippingPlaneCollection({

            modelMatrix: entity.computeModelMatrix(Cesium.JulianDate.now()),

            planes: [

                new Cesium.Plane(new Cesium.Cartesian3(1.0, 0.0, 0.0), -700.0),

                new Cesium.Plane(new Cesium.Cartesian3(-1.0, 0.0, 0.0), -700.0),

                new Cesium.Plane(new Cesium.Cartesian3(0.0, 1.0, 0.0), -700.0),

                new Cesium.Plane(new Cesium.Cartesian3(0.0, -1.0, 0.0), -700.0)

            ],

            edgeWidth: 1.0,

            edgeColor: Cesium.Color.WHITE

        });

 

示例源码:github源码

 

转自:http://blog.sina.com.cn/s/blog_15e866bbe0102xwyd.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值