Skip to content

加载矢量数据

矢量数据是基于几何形状的地理数据,例如点、线和多边形。Cesium支持各种矢量数据格式,包括GeoJSON、KML、Shapefile等。你可以将这些数据加载到Cesium中,然后使用其功能强大的渲染引擎将其呈现为可交互的3D地图。 可以对矢量数据进行多种操作,如缩放、旋转和平移地图视图,选择和高亮特定的矢量要素,添加标签和信息窗口等。你还可以在地图上绘制路径、区域和其他几何图形,以及执行空间分析和查询操作。

支持的数据格式

Cesium支持多种矢量数据格式,包括但不限于以下几种:

  1. GeoJSON(地理JSON):GeoJSON是一种常见的地理数据格式,用于表示地理要素和属性。Cesium可以加载和显示GeoJSON文件,并将其呈现为可交互的3D地图。

  2. KML(Keyhole Markup Language):KML是一种用于描述地理信息的XML格式。Cesium可以加载和解析KML文件,以显示其中的矢量数据,包括点、线和多边形等要素。

  3. Shapefile(SHP文件):Shapefile是一种常见的地理矢量数据格式,由多个文件组成,包含点、线和多边形等地理要素的几何信息。Cesium提供了加载和显示Shapefile的功能。

  4. CZML(Cesium Language):CZML是Cesium自己定义的一种地理数据格式,用于描述场景和实体的属性和行为。它可以用于创建动态的、时间相关的矢量数据。

此外,Cesium还支持其他格式的矢量数据,如TopoJSON、GML(Geography Markup Language)、GPX(GPS Exchange Format)等。你可以根据具体需求选择合适的矢量数据格式来加载和展示在Cesium中。

在线工具

如何加载矢量数据

geojson

js
const viewer = new Cesium.Viewer(this.$refs.cesiumContainer);
const dataSource = new Cesium.GeoJsonDataSource();

// 加载GeoJSON数据
const promise = dataSource.load('/path/to/your/geojson/file.geojson');

// 添加加载的数据到viewer
promise.then(() => {
  viewer.dataSources.add(dataSource);
  
  // 设置相机位置和视角
  viewer.zoomTo(dataSource);
});

viewer.dataSources.add(
    Cesium.GeoJsonDataSource.load(
        "https://geojson.cn/api/data/340000.json"
    )
);
const viewer = new Cesium.Viewer(this.$refs.cesiumContainer);
const dataSource = new Cesium.GeoJsonDataSource();

// 加载GeoJSON数据
const promise = dataSource.load('/path/to/your/geojson/file.geojson');

// 添加加载的数据到viewer
promise.then(() => {
  viewer.dataSources.add(dataSource);
  
  // 设置相机位置和视角
  viewer.zoomTo(dataSource);
});

viewer.dataSources.add(
    Cesium.GeoJsonDataSource.load(
        "https://geojson.cn/api/data/340000.json"
    )
);

KML

KML (keyhole markup language)是一种基于XML语法格式的文件,用来描述和存储地理信息数据(点、线、面、多边形、多面体以及模型等),通常应用于 Google 地球相关软件中(Google Earth,Google Map 等),它跟XML文件最大的不同就是KML描述的是地理信息数据,同时KML已正式被OGC采用,成为OGC众多规范中的一个。KML文件有两个文件扩展名:.KML 和.KMZ(一个或几个 KML 文件的压缩集,采用 zip 格式压缩)

js
const navwarn = Cesium.KmlDataSource.load(
      "//data.mars3d.cn/file/kml/NAVWARN.kmz",
      {
          camera: viewer.scene.camera,
          canvas: viewer.scene.canvas,
      }
  )
  viewer.dataSources.add(navwarn);
  // 设置相机位置和视角
  viewer.zoomTo(navwarn);
const navwarn = Cesium.KmlDataSource.load(
      "//data.mars3d.cn/file/kml/NAVWARN.kmz",
      {
          camera: viewer.scene.camera,
          canvas: viewer.scene.canvas,
      }
  )
  viewer.dataSources.add(navwarn);
  // 设置相机位置和视角
  viewer.zoomTo(navwarn);

shp

也可以将shp格式转换为可加载的格式Geojson,或者kml

js
同上
同上

CZML

CZML是一种JSON格式的字符串,用于描述与时间有关的动画场景,CZML包含点、线、地标、模型和其他的一些图形元素,并指明了这些元素如何随时间而变化。

js
const car = Cesium.CzmlDataSource.load("//data.mars3d.cn/file/czml/car.czml")
viewer.dataSources.add(car);
// 设置相机位置和视角
viewer.zoomTo(car);
const car = Cesium.CzmlDataSource.load("//data.mars3d.cn/file/czml/car.czml")
viewer.dataSources.add(car);
// 设置相机位置和视角
viewer.zoomTo(car);