TopoJSON 数据介绍

关注我,带你一起学GIS ^

注:当前使用的是 ol [9.2.4] 版本,天地图使用的key请到天地图官网申请,并替换为自己的key

前言

GIS 数据格式种类繁多,其中矢量数据格式就占据着GIS数据的半壁江山。矢量数据作为一个大的数据门类,又包括esri系列的 Shp、GDB、MDB、SDE,超图系列的UDB、UDBX,公共系列有 GeoJSON、GML、KML、TXT 等类型。除此之外,还有一种重要的矢量数据格式,它就是今天要讲的主角。—————TopoJSON

1. TopoJSON 数据是什么?

在 GIS 开发和地图可视化中,什么是最重要的呢?当然是数据的准确性、渲染的高效性以及用户的体验性。要达到这个程度,必然需要高效的数据格式作为支撑。TopoJSON 是一种基于 GeoJSON 的优化格式,其通过共享边界和拓扑关系,显著减少了地理数据的文件大小,同时保留了丰富的空间信息。它不仅适用于 Web 地图的高效加载与渲染,还支持复杂的空间分析和数据共享,对GIS 开发具有重要作用。

2. TopoJSON 数据示例

TopoJSON 数据与 GeoJSON 数据相似,都以 JSON 对象为基础,采用键值对方式进行表达,以下是一个简单的TopoJSON 数据结构示例:

{
    "type""Topology",
    "bbox": [
        -179.14733999999999,
        -14.552548999999999,
        179.77847,
        71.352561
    ],
    "transform": {
        "scale": [
            0.003589293992939929,
            0.0008590596905969058
        ],
        "translate": [
            -179.14733999999999,
            -14.552548999999999
        ]
    },
    "objects": {
      "counties": {},
      "states": {},
      "nation": {},
    },
    "arcs":[]
}

主要由type、bbox、transform、objects以及arcs五部分组成:

  • type:固定为”Topology”类型,标识这是一个TopoJSON文件。
  • bbox(可选):数据最小边界范围。
  • transform(可选):定义坐标的缩放和偏移,用于进一步压缩数据。
  • objects:存储地理要素,包括集合对象类型以及属性信息。

objects是一个对象,存储多个地理要素集合。每个要素集合又包含以下字段:

  • type:要素集合的类型,通常为"GeometryCollection"
  • geometries:存储具体的几何对象,如点、线、面。
  • properties(可选):存储要素的属性数据。
  • arcs:存储共享的地理边界信息。

3. TopoJSON 数据有什么用?

TopoJSONMike Bostock(D3.js 的作者)开发,主要用于高效存储和传输地理数据。具体功能如下:

  • 高效存储和传输:

  • 通过共享边界简化几何数据,TopoJSON 文件比 GeoJSON 文件更小,适合网络传输。

  • 地图可视化:
  • 在Web地图应用中,TopoJSON可以快速加载和渲染,提升用户体验。
  • 数据分析:
  • 支持拓扑关系(如邻接、包含),适合进行空间分析和计算。
  • 数据共享:
  • 由于文件较小,TopoJSON 数据适合用于数据共享和发布。

4. TopoJSON 数据的特点

  • 共享边界:

  • 相邻的多边形共享边界,避免了重复存储边界数据,也就是去除了数据冗余

  • 拓扑关系:
  • 保留了地理要素之间的拓扑关系,如拓扑邻接和拓扑包含。
  • 文件体积小:
  • 相比于 GeoJSON,TopoJSON 文件通常小80%以上。
  • 支持几何简化:
  • 可以通过进一步简化几何数据减小文件大小。
  • 兼容 GeoJSON:
  • TopoJSON 可以转换为 GeoJSON,方便与其他地理工具集成。

5. TopoJSON 与 GeoJSON 数据的区别与联系

TopoJSON数据和GeoJSON数据单从名字上就可以看出它们之间必然有一定的渊源,两者都属于JSON数据,都是地理格式数据。一个侧重于表达拓扑关系,一个侧重于描述地理数据。以下是关于两者之间区别和联系的详细介绍。区别:

特性

TopoJSON

GeoJSON

数据格式

基于GeoJSON,拓展了拓扑关系

标准的地理数据格式

文件大小

较小(共享边界和简化几何)

较大(独立存储每个几何对象)

拓扑关系

支持(如邻接、包含等)

不支持

数据结构

包含arcs和objects等字段

包含features和geometry等字段

适用场景

高效存储、Web地图、数据分析

通用地理数据存储和交换

**联系:**
  • 基于GeoJSON:

  • TopoJSON 基于 GeoJSON,两者可以互相转换。

  • 数据结构相似:
  • TopoJSON 和 GeoJSON都使用JSON格式,数据结构上有一定的相似性。
  • 工具支持:
  • 许多工具(如 mapshapertopojson)支持 GeoJSON 和 TopoJSON 的相互转换。

6. TopoJSON 数据应用场景

TopoJSON 数据以其文件体积小、支持拓扑关系、共享边界和广泛支持的特点在GIS(地理信息系统)开发中得到广泛应用,特别是在地图可视化方面更是得到大量支持。以下是一些关于 TopoJSON 数据的应用场景介绍。

  • Web地图应用:

  • 使用TopoJSON加载和渲染地图数据,提升性能。

  • 数据可视化:
  • 结合D3.js等工具,实现高效的地理数据可视化。
  • 数据共享:
  • 发布和共享地理数据,减小文件大小。
  • 空间分析:
  • 利用拓扑关系进行邻接分析、区域划分等。

OpenLayers示例数据下载,请在公众号后台回复:ol数据

全国信息化工程师-GIS 应用水平考试资料,请在公众号后台回复:GIS考试

GIS之路公众号已经接入了智能助手,欢迎大家前来提问。

欢迎访问我的博客网站-长谈GIShttp://shanhaitalk.com

都看到这了,不要忘记点赞、收藏+关注 

本号不定时更新有关 GIS开发  相关内容,欢迎关注 

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部