Cesium.js(3):Cesium查看器、场景、实体、数据源介绍

1 Cesium的四大类说明

1.1 Viewer查看器类

Viewer是cesium的查看器类,第一个参数是地图主窗口DIV的容器ID,第二个参数option是Viewer的可选设置参数,包含图层、地形时间系统等参数,种类多样,主要作用是对视口中各个组件的配置,比如隐藏仪表盘、时间轴等。

隐藏仪表盘、时间轴代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>生成地球</title>
    <script src="../../libs/Cesium/Cesium.js"></script>
    <link href="../../libs/Cesium/Widgets/widgets.css" rel="stylesheet">
    <style>
        html,
        body {
            margin: 0px;
            padding: 0px;
        }
    </style>
</head>
<body>
    <div id="puiedu-cesiumContainer"></div>
    <script>
        Cesium.Ion.defaultAccessToken = '你的token';
        const viewer = new Cesium.Viewer('puiedu-cesiumContainer',{
            //隐藏仪表盘、时间轴
            animation:false,
            timeline:false
        });
    </script>
</body>
</html>

效果如下:

1.2 Scene场景类 

Scene是Cesium的场景类,是所有3D图形对象的容器,是在viewer内部隐式创建的,可以对整个场景环境进行修改,如修改地球的显隐‘光照强度等,也可以修改地球的图层样式和地形数据,也可以在图层上绘制几何体、点线面,也控制着整个场景的交互,如鼠标对场景的控制,相机视口的移动等。示例:将地球设置为隐藏,地球的参数是globe。

viewer.scene.globe.show = false;

设置scene进行视口切换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>生成地球</title>
    <script src="../../libs/Cesium/Cesium.js"></script>
    <link href="../../libs/Cesium/Widgets/widgets.css" rel="stylesheet">
    <style>
        html,
        body {
            margin: 0px;
            padding: 0px;
        }
    </style>
</head>
<body>
    <div id="puiedu-cesiumContainer"></div>
    <script>
        Cesium.Ion.defaultAccessToken = '你的token';
        const viewer = new Cesium.Viewer('puiedu-cesiumContainer',{
            animation:false,
            timeline:false
        });
        viewer.scene.globe.show = true;
        console.log(viewer.imgerLaters == viewer.scene.imgerLaters);
        viewer.scene.camera.setView({
            destination:Cesium.Cartesian3.fromDegrees(116.39,39.91,400)
        });
    </script>
</body>
</html>

效果如下:

1.3 Entity实体类

Entity是Cesium的实体类,entity是由primitive封装的,entity不属于scene。示例:添加一个尺寸为100的绿色圆点,并自动移动到圆点位置。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>生成地球</title>
    <script src="../../libs/Cesium/Cesium.js"></script>
    <link href="../../libs/Cesium/Widgets/widgets.css" rel="stylesheet">
    <style>
        html,
        body {
            margin: 0px;
            padding: 0px;
        }
    </style>
</head>
<body>
    <div id="puiedu-cesiumContainer"></div>
    <script>
        Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxNjkyMTU4Yi05NWUxLTRlNDctYjEzNy1kYmY4OTcyYjY3YTYiLCJpZCI6MjExNjUzLCJpYXQiOjE3MTQyMDg2Mjl9.uYY6j9R-rDITluH9RnJEQ3hiKFr7dAc4bMkQQ_riIYA';
        const viewer = new Cesium.Viewer('puiedu-cesiumContainer',{
            animation:false,
            timeline:false
        });
        viewer.scene.globe.show = true;
        console.log(viewer.imgerLaters == viewer.scene.imgerLaters);
        // viewer.scene.camera.setView({
        //     destination:Cesium.Cartesian3.fromDegrees(116.39,39.91,400)
        // });
        const entity = viewer.entities.add({
            position:Cesium.Cartesian3.fromDegrees(116.39,39.91,400),
            point:{
                pixelSize:100,
                color:new Cesium.Color(0,1,0,1)
            }
        })
        viewer.trackedEntity = entity;
    </script>
</body>
</html>

效果如下:

1.4 DataSourceCollection数据源集合类

 DataSourceCollection是Cesium的数据源集合类,是cesium中加载矢量数据的主要方式之一,最大特点是支持加载矢量数据集和外部文件的调用,主要有三种调用方式,分别为CzmlDataSource、kmlDataSource、GeojsonDataSource,分别对应加载czml、kml、Geojson格式的数据。在gis开发中加载矢量数据是必不可少的功能,将矢量数据转换为以上任何一种格式的数据,便可以在cesium中实现矢量数据的加载和存取。举例:加载GeoJson格式的数据,加三条线。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>生成地球</title>
    <script src="../../libs/Cesium/Cesium.js"></script>
    <link href="../../libs/Cesium/Widgets/widgets.css" rel="stylesheet">
    <style>
        html,
        body {
            margin: 0px;
            padding: 0px;
        }
    </style>
</head>
<body>
    <div id="puiedu-cesiumContainer"></div>
    <script>
        Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxNjkyMTU4Yi05NWUxLTRlNDctYjEzNy1kYmY4OTcyYjY3YTYiLCJpZCI6MjExNjUzLCJpYXQiOjE3MTQyMDg2Mjl9.uYY6j9R-rDITluH9RnJEQ3hiKFr7dAc4bMkQQ_riIYA';
        const viewer = new Cesium.Viewer('puiedu-cesiumContainer',{
            animation:false,
            timeline:false
        });
        viewer.scene.globe.show = true;
        console.log(viewer.imgerLaters == viewer.scene.imgerLaters);

        viewer.dataSources.add(
          Cesium.GeoJsonDataSource.load("../../libs/SampleData/ne_10m_us_states.topojson")
        )
    </script>
</body>
</html>

效果如下:

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-28 09:54:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-28 09:54:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-28 09:54:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-28 09:54:04       20 阅读

热门阅读

  1. Pulsar 记录

    2024-04-28 09:54:04       12 阅读
  2. 代码随想录(番外)图论4

    2024-04-28 09:54:04       14 阅读
  3. 二. windows API之消息函数

    2024-04-28 09:54:04       17 阅读
  4. docker 资源整理

    2024-04-28 09:54:04       13 阅读
  5. io多路复用

    2024-04-28 09:54:04       11 阅读
  6. 中国国航购买100架C919飞机

    2024-04-28 09:54:04       11 阅读
  7. Qt 顺序容器类与关联容器类

    2024-04-28 09:54:04       11 阅读
  8. 负载均衡原理及算法

    2024-04-28 09:54:04       10 阅读
  9. DreamFusion详细解读

    2024-04-28 09:54:04       11 阅读
  10. idea个人常用插件

    2024-04-28 09:54:04       11 阅读