cesium知识点:DataSource

DataSourceDisplay和DataSourceCollection关系

Cesium Viewer的初始化过程中会创建DataSourceCollection实例和DataSourceDisplay实例。向DataSourceCollection实例中添加DataSource实例(CustomDataSource或其他类型的数据源),Cesium会自动使用DataSourceDisplay实例将这些数据源中的实体渲染到Viewer中。

在这里插入图片描述

DataSource和CustomDataSource

DataSource是用于存储和管理一组实体的基类。Cesium 提供了几种内置的 DataSource 实现,如 GeoJsonDataSource,CzmlDataSource和 KmlDataSource。

// GeoJsonDataSource(用于处理GeoJSON数据)
const viewer = new Cesium.Viewer("cesiumContainer");
const dataSource = Cesium.GeoJsonDataSource.load("./source/czml/test1.czml");
viewer.dataSources.add(dataSource);

// CzmlDataSource(用于处理CZML数据)
const viewer = new Cesium.Viewer("cesiumContainer");
const dataSource = Cesium.CzmlDataSource.load("./source/czml/test1.czml");
viewer.dataSources.add(dataSource);

// KmlDataSource(用于处理KML数据)
const viewer = new Cesium.Viewer("cesiumContainer");
const dataSource = Cesium.KmlDataSource.load("./source/czml/test1.czml");
viewer.dataSources.add(dataSource);

CustomDataSource 是 DataSource 的一个子类,可以直接创建和修改实体,而不是从外部文件(如 GeoJSON, CZML 或 KML)加载它们。

// CustomDataSource使用方法:
const viewer = new Cesium.Viewer("cesiumContainer");
const dataSource = new Cesium.CustomDataSource("myData");
const entity = dataSource.entities.add({
    position: Cesium.Cartesian3.fromDegrees(119.55179, 32.14358, 200),
    billboard: {
	    image: "./images/img.png",
	    width: 30,
	    height: 30
    }
});
viewer.dataSources.add(dataSource);

ps1: 上面viewer.dataSources.add(dataSource),就是向DataSourceCollection实例中添加DataSource实例

在这里插入图片描述

ps2: 平常开发添加实体可能是直接调用viewer.entities.add({Entity}),其实是直接调用dataSourceDisplay.defaultDataSource.entities,相当于Cesium为我们内置的一个CustomDataSource,实际上还是由dataSourceDisplay来渲染的。

在这里插入图片描述
在这里插入图片描述

相关推荐

  1. DataSource

    2024-03-29 16:46:05       19 阅读
  2. JVM的知识

    2024-03-29 16:46:05       39 阅读
  3. ES6知识

    2024-03-29 16:46:05       35 阅读
  4. Uni-App知识

    2024-03-29 16:46:05       36 阅读
  5. vue的知识

    2024-03-29 16:46:05       43 阅读

最近更新

  1. STM32学习和实践笔记(39):I2C EEPROM实验

    2024-03-29 16:46:05       0 阅读
  2. Python面试题:请解释什么是反射(reflection)?

    2024-03-29 16:46:05       0 阅读
  3. Rudolf and k Bridges——Codeforces Round 933 (Div. 3) E

    2024-03-29 16:46:05       0 阅读
  4. 墨烯的C语言技术栈-C语言基础-010

    2024-03-29 16:46:05       1 阅读
  5. html5路由如何在nginx上部署(vite+vue3)

    2024-03-29 16:46:05       1 阅读
  6. nodejs学习之glob

    2024-03-29 16:46:05       1 阅读

热门阅读

  1. Sql中如何添加数据

    2024-03-29 16:46:05       20 阅读
  2. Python获取当前服务器的公网IP

    2024-03-29 16:46:05       21 阅读
  3. 【[蓝桥杯 2013 省 B] 带分数】

    2024-03-29 16:46:05       19 阅读
  4. Spring 的DI 依赖注入

    2024-03-29 16:46:05       21 阅读
  5. Linux Crontab定时表教学大全(一看就会!)

    2024-03-29 16:46:05       21 阅读
  6. 如何避免过度设计

    2024-03-29 16:46:05       27 阅读