ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

cesium-核心类

2022-02-01 23:02:18  阅读:193  来源: 互联网

标签:false Viewer 核心 Scene Entity Cesium cesium 图层


cesium-核心类

Viewer是Cesium的核心类,对应着Cesium展示三维要素内容的主窗口。它不仅仅是包含三维地球的视窗,还包含一些基础控件,所以在定义Viewer对象的同时需要设定基础部件、图层等的初始化状态。Cesium开发的大部分工作在Scene场景中执行,包括调用图层、3D Tiles数据加载、场景交互等。Viewer和Scene有部分内容相同,如设置相机参数,通过这两个类都可以完成,在下文中会对类似情况做出说明。另外Cesium提供了Entity、DataSource等封装好的数据加载方式,降低了三维开发难度。

cesium核心类的关系图

Viewer

Viewer类对应地图可视化展示的主窗口,Viewer对象创建的语句为:

new Cesium.Viewer(cesium.Container,options);

其中,cesiumContainer是地图主窗口div的ID,options指Cesium.Viewer可选设置参数,包含图层、地形、时间系统等参数,种类多样。接下来通过例子介绍常用的选项设置。

new Cesium.Viewer('cesiumContainer', {
        geocoder: false,   // 位置查找工具
        baseLayerPicker: false,// 图层选择器(地形影像服务)
        timeline: false, // 底部时间线
        homeButton: false,// 视角返回初始位置
        fullscreenButton: false, // 全屏
        animation: false,   // 左下角仪表盘(动画器件)
        sceneModePicker: false,// 选择视角的模式(球体、平铺、斜视平铺)
        navigationHelpButton: false, //导航帮助按钮
    });

Scene

Scene是构建场景的类。是Csium中非常重要的类。Cesium开发大多基于Scene类,其主要包含四部分内容:

第一部分是基础地理环境设置,如地球参数(globe)、光照(light)、雾(fog)、大气(skyAtmosphere)

第二部分是基础图层设置,包含地图图层、地形图层等,需要注意在Viewer类中设置图层等价于在Scene中设置图层,console.log(viewer.imageryLayers==viewer. scene.imageryLayers)显示”true“,意味着Viewer和Scene中imageryLayers属性相同。

第三部分是场景数据,Cesium底层空间数据绘制方式是依赖Primitive。Primitive API功能强大面且非常灵活.为程序员绘制高级图形提供很大自由度、开发者可根据图形学原理自定义高级图形。技术难度较大,对于初学者较为困难,相比较面言Entity封装程度高,构造简单,使用便捷,目前不支持自定义。3D Tiles是Primitive的非常重要部分,可以实现大数据量加载。

第四部分则是场景交互函数,如pick(鼠标事件)、camera(相机事件)。需要注意的是,conole.log(viewer.camera==viewer.scene.camera)显示"true",表示Viewer和Scene中camera属性相同。

Entity

Entity是由,Primitive封装而来,但是Entity并不属于Scene。Entity API是对高层次抽象对象的一致性的设计,这些对象将相关的可视化和信息整合成统一的数据结构,称之为Entity,使得开发者专注于数据的呈现,而不必关心底层的可视化机制。它还提供了用于构建复杂的、时间动态可视化的结构,与静态数据自然地结在一起。 虽然Entity API底层上使用了Primitive API实现,但这是一个实现细节,几乎不必关心。Entity API能够提供灵活的、高性能的可视化,同时提供一致性的、 易于学习的、易于使用的接口。由于Entity易学易用,而且功能丰富。在简单场景开发过程中,Entity的使用频率要高于Primitive。

DataSourceCollection

DataSoureCollection是Cesium中加载矢量数据的主要方式之一,最大特点是支持加载矢量数据集与外部文件的调用,主要分为CzmlDataSource、KmlDataSource、GeoJsonDataSource三种,分别对应加载CZML、KML和 GeoJSON格式数据。GIS开发中加载矢量数据是必不可少的功能,将矢量数据转换为以上任意一种方式,便可在Cesium中实现矢量数据的加载和存取。

标签:false,Viewer,核心,Scene,Entity,Cesium,cesium,图层
来源: https://blog.csdn.net/qq_36213352/article/details/122766308

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有