^ 关注我,带你一起学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 数据有什么用?
TopoJSON 由 Mike 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格式,数据结构上有一定的相似性。
工具支持:
许多工具(如 mapshaper
、topojson
)支持 GeoJSON 和 TopoJSON 的相互转换。
6. TopoJSON 数据应用场景
TopoJSON 数据以其文件体积小、支持拓扑关系、共享边界和广泛支持的特点在GIS(地理信息系统)开发中得到广泛应用,特别是在地图可视化方面更是得到大量支持。以下是一些关于 TopoJSON 数据的应用场景介绍。
Web地图应用:
使用TopoJSON加载和渲染地图数据,提升性能。
数据可视化:
结合D3.js等工具,实现高效的地理数据可视化。
数据共享:
发布和共享地理数据,减小文件大小。
空间分析:
利用拓扑关系进行邻接分析、区域划分等。
❝
OpenLayers示例数据下载,请在公众号后台回复:ol数据
全国信息化工程师-GIS 应用水平考试资料,请在公众号后台回复:GIS考试
❝
GIS之路公众号已经接入了智能助手,欢迎大家前来提问。
欢迎访问我的博客网站-长谈GIS:
http://shanhaitalk.com
都看到这了,不要忘记点赞、收藏+关注 哦!
本号不定时更新有关 GIS开发 相关内容,欢迎关注