当前位置:   article > 正文

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

cesium

1 Cesium的四大类说明

1.1 Viewer查看器类

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

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

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>生成地球</title>
  8. <script src="../../libs/Cesium/Cesium.js"></script>
  9. <link href="../../libs/Cesium/Widgets/widgets.css" rel="stylesheet">
  10. <style>
  11. html,
  12. body {
  13. margin: 0px;
  14. padding: 0px;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div id="puiedu-cesiumContainer"></div>
  20. <script>
  21. Cesium.Ion.defaultAccessToken = '你的token';
  22. const viewer = new Cesium.Viewer('puiedu-cesiumContainer',{
  23. //隐藏仪表盘、时间轴
  24. animation:false,
  25. timeline:false
  26. });
  27. </script>
  28. </body>
  29. </html>

效果如下:

1.2 Scene场景类 

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

viewer.scene.globe.show = false;

设置scene进行视口切换

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>生成地球</title>
  8. <script src="../../libs/Cesium/Cesium.js"></script>
  9. <link href="../../libs/Cesium/Widgets/widgets.css" rel="stylesheet">
  10. <style>
  11. html,
  12. body {
  13. margin: 0px;
  14. padding: 0px;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div id="puiedu-cesiumContainer"></div>
  20. <script>
  21. Cesium.Ion.defaultAccessToken = '你的token';
  22. const viewer = new Cesium.Viewer('puiedu-cesiumContainer',{
  23. animation:false,
  24. timeline:false
  25. });
  26. viewer.scene.globe.show = true;
  27. console.log(viewer.imgerLaters == viewer.scene.imgerLaters);
  28. viewer.scene.camera.setView({
  29. destination:Cesium.Cartesian3.fromDegrees(116.39,39.91,400)
  30. });
  31. </script>
  32. </body>
  33. </html>

效果如下:

1.3 Entity实体类

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

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>生成地球</title>
  8. <script src="../../libs/Cesium/Cesium.js"></script>
  9. <link href="../../libs/Cesium/Widgets/widgets.css" rel="stylesheet">
  10. <style>
  11. html,
  12. body {
  13. margin: 0px;
  14. padding: 0px;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div id="puiedu-cesiumContainer"></div>
  20. <script>
  21. Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxNjkyMTU4Yi05NWUxLTRlNDctYjEzNy1kYmY4OTcyYjY3YTYiLCJpZCI6MjExNjUzLCJpYXQiOjE3MTQyMDg2Mjl9.uYY6j9R-rDITluH9RnJEQ3hiKFr7dAc4bMkQQ_riIYA';
  22. const viewer = new Cesium.Viewer('puiedu-cesiumContainer',{
  23. animation:false,
  24. timeline:false
  25. });
  26. viewer.scene.globe.show = true;
  27. console.log(viewer.imgerLaters == viewer.scene.imgerLaters);
  28. // viewer.scene.camera.setView({
  29. // destination:Cesium.Cartesian3.fromDegrees(116.39,39.91,400)
  30. // });
  31. const entity = viewer.entities.add({
  32. position:Cesium.Cartesian3.fromDegrees(116.39,39.91,400),
  33. point:{
  34. pixelSize:100,
  35. color:new Cesium.Color(0,1,0,1)
  36. }
  37. })
  38. viewer.trackedEntity = entity;
  39. </script>
  40. </body>
  41. </html>

效果如下:

1.4 DataSourceCollection数据源集合类

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

代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>生成地球</title>
  8. <script src="../../libs/Cesium/Cesium.js"></script>
  9. <link href="../../libs/Cesium/Widgets/widgets.css" rel="stylesheet">
  10. <style>
  11. html,
  12. body {
  13. margin: 0px;
  14. padding: 0px;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div id="puiedu-cesiumContainer"></div>
  20. <script>
  21. Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxNjkyMTU4Yi05NWUxLTRlNDctYjEzNy1kYmY4OTcyYjY3YTYiLCJpZCI6MjExNjUzLCJpYXQiOjE3MTQyMDg2Mjl9.uYY6j9R-rDITluH9RnJEQ3hiKFr7dAc4bMkQQ_riIYA';
  22. const viewer = new Cesium.Viewer('puiedu-cesiumContainer',{
  23. animation:false,
  24. timeline:false
  25. });
  26. viewer.scene.globe.show = true;
  27. console.log(viewer.imgerLaters == viewer.scene.imgerLaters);
  28. viewer.dataSources.add(
  29. Cesium.GeoJsonDataSource.load("../../libs/SampleData/ne_10m_us_states.topojson")
  30. )
  31. </script>
  32. </body>
  33. </html>

效果如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/877528
推荐阅读
相关标签
  

闽ICP备14008679号