Cesium Vue(七)— GEOJSON数据展示

1. GeoJSON

GeoJSON 是一种用于对各种地理数据结构进行编码的格式。

简而言之,GeoJSON为你提供了一种简单的格式来表示简单的地理特征以及它们的非空间属性。

结构:

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
}

GeoJSON 对象可以定义以下内容:

  • 空间中的几何对象:例如,点、线串或多边形等。
  • 特征:特征是空间有界的实体。
  • 特征集合: 也称为 FeatureCollection

2. 加载GeoJSON

这里用到DataV.GeoAtlas地理小工具系选择中国地图 => JSON API

请添加图片描述

实现脚本

  // https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json

  // 加载geojson数据
  let dataGeo = Cesium.GeoJsonDataSource.load(
    "https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json"
    // , //添加颜色修改   
    // {
    //   stroke: Cesium.Color.RED,
    //   fill: Cesium.Color.SKYBLUE.withAlpha(0.5),
    //   strokeWidth: 4,
    // }


  );
  console.log(dataGeo);
  viewer.dataSources.add(dataGeo);

请添加图片描述

3. GEOJSON样式修改

  • 颜色修改
  let dataGeo = Cesium.GeoJsonDataSource.load(
    "https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json"
    , //添加颜色修改   
    {
      stroke: Cesium.Color.RED,
      fill: Cesium.Color.SKYBLUE.withAlpha(0.5),
      strokeWidth: 4,
    }


  );
  viewer.dataSources.add(dataGeo);
  • 形状修改
  dataGeo.then((dataSources) => {
    console.log(dataSources);
    viewer.dataSources.add(dataSources);
    let entities = dataSources.entities.values;
    entities.forEach((entity, i) => {
      entity.polygon.material = new Cesium.ColorMaterialProperty(
        Cesium.Color.fromRandom({
          alpha: 1,
        })
      );
      entity.polygon.outline = false;
      let randomNum = parseInt(Math.random() * 5);
      entity.polygon.extrudedHeight = 100000 * randomNum;
    });
  });

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Cesium中加载GeoJSON数据,您可以按照以下步骤操作: 1. 将GeoJSON文件加载到Cesium中。您可以使用Cesium的load方法来加载文件,如下所示: ``` Cesium.load('/path/to/your/geojson/file.geojson').then(function(data) { // Do something with the data }); ``` 2. 解析GeoJSON数据。您可以使用CesiumGeoJsonDataSource来解析数据,如下所示: ``` var dataSource = new Cesium.GeoJsonDataSource(); dataSource.load('/path/to/your/geojson/file.geojson').then(function() { // Do something with the data source }); ``` 3. 将数据源添加到场景中。您可以使用Cesium的viewer对象来添加数据源,如下所示: ``` viewer.dataSources.add(dataSource); ``` 4. 设置点的样式。您可以使用Cesium的点图形来设置点的样式,如下所示: ``` dataSource.entities.point = { pixelSize: 10, color: Cesium.Color.RED }; ``` 以上是加载GeoJSON数据的基本步骤,您可以根据自己的需求进行调整和修改。 ### 回答2: Cesium是一款开源的地图可视化引擎,能够快速高效地展示地理数据,支持多种数据格式。GeoJSON是一种常用的地理数据格式,可用于描述地图上的点、线和面等要素。Cesium提供了丰富的API,能够便捷地加载GeoJSON数据,并在地图上展示。 要加载GeoJSON数据,首先需要将数据转换为Cesium可识别的格式。Cesium支持将GeoJSON转换为Cesium的Entities、Primitives和Imagery Layers等形式,其中Entities是最常用的一种形式。通过CesiumGeoJsonDataSource对象可以实现将GeoJSON数据加载为Entities,并在地图上展示。 接下来,我们可以通过Cesium内置的Viewer对象,创建一个基础地图,并将GeoJSON数据添加到地图上。下面是一段示例代码: ```javascript var viewer = new Cesium.Viewer('cesiumContainer'); //创建Viewer对象,将地图加载到'cesiumContainer'元素中 var dataSource = new Cesium.GeoJsonDataSource('myData'); //创建GeoJsonDataSource对象,并指定数据名称为'myData' var promise = dataSource.load('myPoints.geojson'); //通过load方法加载GeoJSON数据文件 viewer.dataSources.add(dataSource); //将数据源添加到Viewer中 promise.then(function() { viewer.zoomTo(dataSource); }); //当数据加载完毕,将Viewer缩放至图层范围 ``` 在上面的代码中,我们首先创建了一个Viewer对象,并将它加载到HTML元素'cesiumContainer'中。然后,创建一个GeoJsonDataSource对象,并通过load方法加载GeoJSON数据文件'myPoints.geojson'。将数据源添加到Viewer中后,使用promise.then()回调函数,在数据加载完成后将Viewer缩放至图层范围。 需要注意的是,GeoJSON数据中的属性信息将自动转换为Cesium的Entity属性,并可用于自定义标签、颜色和大小等信息。此外,通过调用Entity的show和position属性,可以方便地控制Entity的显示状态和位置。 ### 回答3: Cesium是一款开源的WebGIS平台,支持加载geojson数据GeoJson是一种基于JavaScript对象表示法(JSON)的地理数据交换格式,它能够将矢量地理数据以一种简单、轻量级的方式表示出来。 在Cesium中,加载GeoJson数据可以通过以下步骤实现: 1.创建数据源 首先,我们需要创建一个Cesium.GeoJsonDataSource对象,用于加载GeoJson数据。我们可以使用以下代码创建一个空的GeoJson数据源: var dataSource = new Cesium.GeoJsonDataSource(); 2.加载GeoJson数据 接下来,我们需要读取包含GeoJson数据的URL并加载这些数据。可以使用Cesium的load方法读取GeoJson文件并将其加载到数据源中。以下是加载GeoJson数据并将其添加到数据源的示例代码: Cesium.load('path/to/geojson.json').then(function (geojson) { dataSource.load(geojson); }) 3.显示GeoJson数据 一旦我们将GeoJson数据添加到数据源中,就可以将其添加到场景中显示。以下是将GeoJson数据添加到场景中的示例代码: viewer.dataSources.add(dataSource); 完成这些步骤后,应该可以在Cesium应用程序中看到已加载的GeoJson数据。 总而言之,Cesium支持加载GeoJson数据,只需要使用Cesium.GeoJsonDataSource对象方法读取、加载和显示GeoJson数据即可。这种方法使得加载大规模点数据展示和分析变得简单,方便且易于操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值