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

2019-08-14 10:20:00来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

最近学习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();

  


原文链接:https://www.cnblogs.com/xiada-zhihua/p/11259958.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Promise介绍及使用场景

下一篇:Aspnet Mvc 前后端分离项目手记(四)vue项目的搭建(一)(iview