您的位置:

Cesium GeoJSON详解

一、概述

Cesium是一个基于WebGL的JavaScript库,用于构建与时间和空间相关的地理信息应用程序。Cesium支持GeoJSON数据的加载和展示,使您能够轻松地将地理信息呈现在地球上。GeoJSON是一种开放的地理信息数据格式,它由简单的地理信息对象(JSON)组成,呈现了我们的世界各种形式和大小的地理特征。Cesium可以直接从URL加载GeoJSON数据或使用JavaScript加载GeoJSON数据。

二、加载GeoJSON数据

要加载GeoJSON数据,您必须创建一个EntityCollection对象。在Cesium中,entity可以是地形、地标、照相机、传感器、特效等等。然后,通过返回的promise实例将此对象中的GeoJSON数据加载到地图上。

var viewer = new Cesium.Viewer('cesiumContainer');
var dataSourcePromise = Cesium.GeoJsonDataSource.load('/sample.geojson');
dataSourcePromise.then(function(dataSource) {
    viewer.dataSources.add(dataSource);
    viewer.zoomTo(dataSource);
}).otherwise(function(error) {
    console.log(error);
});

三、可视化GeoJSON数据

在加载GeoJSON数据之后,您可以以多种方式可视化该数据。Cesium支持以下可视化技术:

1. 点

要在地球上显示点,您可以使用Cesium.PointGraphics对象,指定颜色、大小和形状。以下是一个例子:

var pointEntity = dataSource.entities.add({
    position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
    point : {
        pixelSize : 10,
        color : Cesium.Color.RED,
        outlineColor : Cesium.Color.WHITE,
        outlineWidth : 2,
        heightReference : Cesium.HeightReference.CLAMP_TO_GROUND
    }
});

2. 线

要在地球上显示线,您可以使用Cesium.PolylineGraphics对象,指定线颜色,宽度和样式等。以下是一个例子:

var lineEntity = dataSource.entities.add({
    name : 'Line',
    polyline : {
        positions : Cesium.Cartesian3.fromDegreesArray([-75, 35,
                                                       -125, 35]),
        width : 10,
        material : Cesium.Color.ORANGE
    }
});

3. 面

要在地球上显示面,您可以使用Cesium.PolygonGraphics对象,指定面颜色,边框颜色,边框宽度等参数。以下是一个例子:

var polygonEntity = dataSource.entities.add({
    name : 'Polygon',
    polygon : {
        hierarchy : Cesium.Cartesian3.fromDegreesArray([
                        -72.0, 40.0,
                        -71.0, 40.0,
                        -71.0, 41.0,
                        -72.0, 41.0
                    ]),
        extrudedHeight: 500000.0,
        material : Cesium.Color.WHITE.withAlpha(0.5),
        outline : true,
        outlineColor : Cesium.Color.BLACK
    }
});

四、GeoJSON符号化

符号化是将地理数据转换为可见图纸的过程。在GeoJSON中,符号化使用属性来定义模拟规则。以下是一个例子,它定义了弄脏和洁净属性(作为GeoJSON属性),并对它们进行簇集:

var options = {
  clustering: true,
  clusterRadius: 50,
  clusterLabels: true,
  style: new Cesium.Cesium3DTileStyle({
      color: {
          conditions: [
              ['${CLEAN} === 1', 'color("green")'],
              ['${DIRTY} === 1', 'color("red")'],
              [true, 'color("white")']
          ]
      }
  })
};
Cesium.GeoJsonDataSource.load('/inline.json', options).then(function(dataSource) {
    viewer.dataSources.add(dataSource);
});

五、总结

在本文中,我们对Cesium GeoJSON进行了详细介绍。首先,我们简述了Cesium和GeoJSON,然后介绍了如何加载和可视化GeoJSON数据。最后,我们讨论了符号化并提供了一些示例。在实际应用中,根据实际需求,您可以使用这些技术来更好地呈现地理数据。

Cesium GeoJSON详解

2023-05-23
cesium导出geojson(cesium导出大图)

本文目录一览: 1、cesium 何如加载大数据量的geojson格式的数据,geojson有切片吗 2、如何获取乡镇地图的geojson或者shp图 3、Cesium GeoJson数据格式 ces

2023-12-08
如何在Cesium上加载GeoJSON数据?

2023-05-20
cesiumjs搭建,cesium geojson

本文目录一览: 1、Cesium的扩展工具包-EarthSDK使用指南1 2、构建一个 Vite + Vue3 项目 开发Cesium 3、Cesium实战项目 4、cesium如何搭建dat.gui

2023-12-08
cesium加载3dtiles详解

2023-05-17
js上传geojson文件(geojson格式)

本文目录一览: 1、js怎么解析geojson 格式的 2、APP发布到APP store时限制区域geojson格式文件怎么生成 3、Mapshaper 笔记一:地图综合神器 4、js post怎样

2023-12-08
geojson合并python的简单介绍

本文目录一览: 1、Geojson笔记二:geojson-python-util 2、python 合并两个json文件 3、怎么样用Python实现地理编码 4、如何生成geojson格式的tile

2023-12-08
cesiumjs详细教程(cesium开发教程)

本文目录一览: 1、Cesium在js中调用entity的infobox单机事件 2、Cesium初始化选项 3、Cesium随笔:视锥绘制(上) 4、cesium如何搭建dat.gui 5、Cesi

2023-12-08
cesiumjs模型,cesium 模型格式

本文目录一览: 1、Cesiumjs可以加载倾斜摄影的OSGB数据吗 2、Cesium 3Dtiles模型多边形裁剪简单整理 3、Cesium的扩展工具包-EarthSDK使用指南1 4、影像加载篇:

2023-12-08
Cesium——开发全球3D可视化应用的利器

2023-05-18
CesiumGeoJSON:实现地理空间数据可视化的利器

2023-05-17
cesiumjs中文网地址,cesium中文文档

本文目录一览: 1、cesium 怎样设置web服务器 2、Cesium初始化选项 3、Cesium实战项目 4、Cesium的扩展工具包-EarthSDK使用指南1 5、Cesium(四)加载影像图

2023-12-08
cesiumjs编译(cesium nodejs)

本文目录一览: 1、Cesium初始化选项 2、cesium 和 Three.js有什么区别,以及二者与WebGL 的关系 3、Cesium(四)加载影像图层 4、Cesium在js中调用entity

2023-12-08
Cesium中文API详解

2023-05-20
关于earthsdk+cesium可以放大缩小的流光线的信息

2023-01-04
cesium滑块控制模型透明度-cesium滑块控制模型透明

2023-01-07
Cesium API详解

2023-05-19
Cesium坐标系详解

2023-05-19
java方法整理笔记(java总结)

2022-11-08
mysql数据库完整笔记(mysql数据库数据)

2022-11-13