伊丽莎白·加勒特·克里斯滕森:将DMS转换为PostGIS点几何

伊丽莎白·加勒特·克里斯滕森:将DMS转换为PostGIS点几何

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

这篇文章介绍了如何将传统的经纬度坐标(DMS格式)转换为PostGIS友好的二进制几何点数据。作者提供了一个函数,可以将DMS格式的坐标转换为PostGIS可以处理的格式,并使用内置函数将转换后的数据添加到表中。文章还提到了PostGIS的其他功能,可以帮助用户将任何数据转换为地图。

🔎

延伸解读

DMS 数据在空间处理中的常见性

文章指出,在处理人类收集的数据时,如历史地点或传统上未用于计算的数据,常会遇到 DMS 格式的坐标。这种格式在传统记录中很常见,但 PostGIS 和 QGIS 等工具需要十进制度数。因此,将 DMS 转换为十进制是使用这些数据的第一步。

PostGIS 几何值的两种形式

PostGIS 使用 WKT 和 WKB 两种几何值。WKT 是文本形式,如 POINT(-126.4 45.32),便于阅读;WKB 是二进制形式,用于存储。文章提到,通常使用二进制存储数据,但可以用 st_astext 函数查看文本形式。了解这两种形式有助于理解转换函数返回的几何类型。

转换函数的设计与使用

作者与 Paul Ramsey 合作编写了一个 PL/pgSQL 函数 dms_to_postgis_point,它使用正则表达式解析 DMS 字符串,计算十进制度数,并根据方向字母调整正负号,最后返回 SRID 为 4326 的点几何。该函数标记为 IMMUTABLE STRICT,确保输入不变时输出一致,且遇到 NULL 输入时直接返回 NULL。

批量转换与更新表结构

对于大量数据,文章展示了如何使用内置函数添加几何列并更新数据。通过 ALTER TABLE 添加 geom 列,然后使用 UPDATE 语句调用转换函数,将原有的 lat_long 列转换为几何点。这种方法可以高效地将整个表的 DMS 数据转换为 PostGIS 可用的几何数据,便于后续空间分析和制图。

❓

Q&A

如何将DMS格式的坐标转换为PostGIS格式?

可以使用一个自定义函数,将DMS格式的坐标转换为PostGIS友好的二进制几何点数据。

DMS格式的坐标是什么?

DMS格式是指经纬度坐标的表示方式,包括度、分、秒,例如38°58′17″N 95°14′05″W。

PostGIS支持哪些几何值?

PostGIS支持两种几何值:WKT(已知文本)和WKB(已知二进制)。

如何使用PostGIS添加新的几何列?

可以使用ALTER TABLE命令添加新的几何列,并使用UPDATE命令将转换后的数据更新到该列。

转换DMS坐标为十进制度数的公式是什么?

转换公式为:({long_degree}+({long_minutes}/60)+({long_seconds}/3600))。

PostGIS有哪些功能可以帮助用户处理地图数据?

PostGIS提供多种功能,帮助用户将任何数据转换为地图,包括几何数据的处理和转换。

🏷️

标签

➡️

继续阅读