空间数据可视化
1、Entity
Entity 是DataEarth API里最基本的模型添加方式,基于参数化构建直接添加在场景中。下面以添加一个BOX为例:
var redBox = viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(-107.0, 40.0, 300000.0),
box : {
dimensions : new Cesium.Cartesian3(4000.0, 300000.0, 500000.0),
material : Cesium.Color.RED.withAlpha(0.5), }});
2、glTF
glTF通过提供一种高效、易扩展、可协作的格式,与其它传统三维建模格式相比,glTF格式更利于Web端开发展示。
var model = scene.primitives.add(Cesium.Model.fromGltf({
url : 'modeldata/daedata.gltf',
modelMatrix : modelMatrix,
scale : 3.0
}));
glTF格式明码,可直接查看其数据组织内容。
3、KML
KML可以添加点、线、面、多边形和模型等,在空间环境中展示标注运用广泛,DataEarth提供了专门的类读取加载KML数据到场景中
viewer.dataSources.add(
Cesium.KmlDataSource.load('../ampleData/kml/eiffel-tower.kml'))
4、GeoJson、TopoJSON
相比于传统的json格式,GeoJSON、TopoJSON更偏向于地理数据结构编码,用于描述地理信息数据,并可根据属性实时调整可视化效果。DataEarth可以承载海量json数据。
viewer.dataSources.add(Cesium.GeoJsonDataSource.load('../../SampleData/ne_10m_us_states.topojson', {
stroke: Cesium.Color.HOTPINK,
fill: Cesium.Color.PINK.withAlpha(0.5),
strokeWidth: 3
}));
5、3DTiles
3Dtiles用于前端大数据量渲染的支持方案,主要用于解决Web端数据加载瓶颈问题。3Dtiles在glTF基础上提供了LOD能力。
var tileset = new Cesium.Cesium3DTileset({
url: '../../SampleData/Cesium3DTiles/Tilesets/Tileset/tileset.json'
});
3Dtile除了提供数据上的加载,还支持数据的样式调整表达,根据属性字段进行符号化过程。
tileset.style = new Cesium.Cesium3DTileStyle({
color: {
conditions: [
['\${height} \>= 300', 'rgba(45, 0, 75, 0.5)'],
['\${height} \>= 200', 'rgb(102, 71, 151)'],
['true', 'rgb(127, 59, 8)']
]}
});
6、a3m
a3m格式数据是AIRLOOK推出的一种三维瓦片高效渲染格式,具备了诸多优势:
(1)、体积更小,a3m由于在LOD分级基础之上,对数据可以进行不同程度的压缩,在保留数据渲染效果的前提下,大大提高了同一份数据的空间占有率,Web端加载更流畅;
(2)、保密性好,a3m相比于一般开源格式,采用了加密策略,对数据的加密效果更好,随着格式的公开,用户可以自定义加密规则以达到数据保护的目的
(3)、功能完备,a3m数据针对运用场景,开发了更多功能,包括不限于分层设色、开挖功能、裁剪功能等,降低了开发门槛与成本
var tileset = new Cesium.DE3DTileset({
url: '../../SampleData/huaian/model.json'
});
viewer.tilesetLayers.add(tileset);
a3m加载倾斜数据效果: