ceisum 加载geojson,使用 Cesium 动态加载 GeoJSON 数据

前言

需求是这样的,我需要在地图中显示 08 年到现在的地震情况,地震都是发生在具体的时间点的,那么问题就来了,如何实现地震情况按照时间动态渲染而不是一次全部加载出来。

一、 方案分析

这里面牵扯到两个问题:第一个是如何加载 GeoJSON 格式的数据,其实也就是矢量数据,因为矢量数据之间是可以任意转换的;第二个是如何让加载的数据根据自身的时间显示。

所以就有两种解决问题的思路了:第一种,一次加载 GeoJSON 中所有数据,然后逐个设置显示时间;第二种,逐个加载 GeoJSON 中数据,并设置每个对象的显示时间。

下面我们就一步步来实现解决方案。

二、 解决方案

先来看一下整体效果:

ceisum 加载geojson,使用 Cesium 动态加载 GeoJSON 数据_第1张图片

2.1 加载 GeoJSON 数据

在Cesium基础使用介绍一文中已经介绍了如何加载多种格式矢量数据,加载 GeoJSON 数据已经写出了两种方式,第一种是整体读取的,明显无法满足我们的需求,那么就只能寻求第二种方式了:

Cesium.GeoJsonDataSource.load('data/earthquake.geojson').then(function(dataSource) {

viewer.dataSources.add(dataSource);

var entities = dataSource.entities.values;

for (var i = 0; i < entities.length; i++) {

var entity = entities[i];

entity.billboard = undefined;

entity.point = new Cesium.PointGraphics({

color: Cesium.Color.RED,

pixelSize: 10

});

}

});

这里需要注意一个细节

你可能感兴趣的:(ceisum,加载geojson)