跳到主要内容
基础概念9 分钟阅读

什么是地理空间数据?类型、格式,以及那些坑

地理空间数据就是带位置的数据。它的特别之处在于,记录之间的距离、包含与相邻关系本身就带有信息。

作者
HuiTu Technology
发布时间
更新时间

地理空间数据就是任何带上了位置的数据。这个定义足够宽,连一张带邮编列的表格都算得上——这正是重点:多数业务数据本来就是地理空间数据,只是一直没被当成地理空间数据来用。

地理空间数据和普通表格数据的区别在于,记录之间的关系承载信息。两行数据可以彼此靠近。一行可以包含另一行。第三行可能从第一行开车八分钟就能到。这些关系在普通表里都不存在,而它们恰恰是这份数据值得上地图的全部理由。

矢量与栅格

你会遇到的东西,几乎都落在两种表示方式之一里。

两种最基本的表示方式
矢量栅格
结构带属性的点、线、面由网格单元构成,每个单元存一个值
适合表达离散事物:门店、道路、边界连续场:高程、密度、温度
精度精确坐标受单元大小限制
常见格式GeoJSON、Shapefile、GeoPackageGeoTIFF、COG、NetCDF
文件体积随要素数量增长随分辨率与范围增长

这个选择不是审美问题。热力图必须是栅格,因为密度是连续的;硬塞进多边形,等于给一个本来没有边界的现象强加边界。一批门店必须是矢量,因为每家店都是带属性的离散对象;栅格化会把除位置以外的一切都丢掉。

坐标参考系,以及所有人都会犯的那个错

坐标参考系定义了那串数字到底是什么意思。EPSG:4326,也就是以度为单位的经纬度,是数据交换的默认选择,同时也是几乎所有计算的错误选择。

  • EPSG:4326 —— 以度为单位的经纬度。用于存储与交换,不用于测量。
  • EPSG:3857 —— Web Mercator。用于渲染切片地图。离赤道越远,面积失真越严重。
  • UTM 分带 —— 以米为单位,在同一分带内精度可靠。城市与区域级分析的稳妥默认值。
  • 各国国家坐标系 —— 在单一国家内作业、且要与官方数据对齐时,这才是正确答案。
  • 等积投影 —— 只要涉及跨大区域的面积比较或密度计算,就必须用。

拓扑:你看不见的那类错误

几何对象可以看起来完美无缺,结构上却是坏的。边界自相交的多边形照样能正常渲染,但算出来的面积毫无意义。两个相邻的行政区如果重叠了半米,那条细缝里的每个点都会被重复计入。一条看起来连通的路网,可能在某个路口有两个相距 2 厘米的端点,而这足以让路径规划引擎认为这个路口过不去。

-- Find invalid geometry and why it is invalid
SELECT id, ST_IsValidReason(geom)
FROM boundaries
WHERE NOT ST_IsValid(geom);

-- Find overlapping neighbours that should only share edges
SELECT a.id, b.id, ST_Area(ST_Intersection(a.geom, b.geom)) AS overlap
FROM boundaries a
JOIN boundaries b ON a.id < b.id AND ST_Overlaps(a.geom, b.geom);

这些检查要在分析之前跑,而不是等结果看起来不对再跑。前期在校验上多花一个小时,后面能省下好几个小时——省下的是为一个谁都复现不出来的数字做解释的时间。

地理空间数据从哪里来

  • 国家测绘与统计机构:行政边界、地址、人口普查属性。权威,通常免费,但用起来往往别扭。
  • 开放协作地图:道路、建筑、POI,全球都有覆盖,但密度不均。只要针对你关心的区域做过校验,质量相当好。
  • 商业数据商:多国覆盖一致,需要授权,价格也随之而来。
  • 遥感:卫星与航空影像,以及由影像派生出来的一切。
  • 自行采集的数据:网页来源、传感器,以及你自己业务系统里做过地理编码的数据。
点数据集聚合到等面积六边形网格中稀疏密集

一个靠得住的起点

如果你正要开始一个空间项目,在做别的事之前先做这四件:明确写出每一份输入数据的坐标系;校验所有几何对象;确定用哪个投影坐标系来做测量;记录每一个图层的数据年份。这听着像官僚流程,但它决定了你的分析能不能过评审。

更多文章

继续阅读

下一步

比起了解方法,更想直接把事做完?

如果文章里描述的问题正好是你遇到的,把具体情况发来,我们会给出工作范围与固定报价。