欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

学习cesium,关于图层界面的切换

程序员文章站 2022-04-12 11:33:04
最近学习cesium的3D引擎,有关图层切换的例子比较少,在官网上看见了一些例子加以自己的理解。投机了一种近似于图层切换的效果。 这种图层切换每次点击按钮时,会把其他的数据和实体给删除。然后再创建或加载一个新的 闲话不多说我们直接上代码 ......

最近学习cesium的3d引擎,有关图层切换的例子比较少,在官网上看见了一些例子加以自己的理解。投机了一种近似于图层切换的效果。

这种图层切换每次点击按钮时,会把其他的数据和实体给删除。然后再创建或加载一个新的

闲话不多说我们直接上代码

sandcastle.addtoolbarbutton('basic styling', function() {
                viewer.datasources.add(cesium.geojsondatasource.load(url, {
                    stroke: cesium.color.hotpink,
                    fill: cesium.color.pink.withalpha(0.5),
                    strokewidth: 3
                }));
            });
            sandcastle.addtoolbarbutton('按钮',function() {

                var position = cesium.cartesian3.fromdegrees(116.39053344726561,39.89604077881996, 0.0);
                var hpr = new cesium.headingpitchroll(cesium.math.toradians(135), 0.0, 0.0);
                var orientation = cesium.transforms.headingpitchrollquaternion(position, hpr);

                var model = viewer.entities.add({
                    id:'01',
                    position : position,
                    orientation : orientation,
                    model : {
                        uri : url,
                        minimumpixelsize : 128,
                        maximumscale : 20000
                    }
                });

   
            },"toolbar");

            sandcastle.reset = function() {
                viewer.datasources.removeall();
                viewer.entities.removebyid('01')//根据id删除entity

                //设置相机为home为起点
                viewer.camera.lookat(cesium.cartesian3.fromdegrees(116.39053344726561,39.89604077881996, 2631.082799425431), new cesium.cartesian3(0.0, -4790.0, 3930.0));
                viewer.camera.lookattransform(cesium.matrix4.identity);
            };

//sandcastle_end
            sandcastle.finishedloading();