内容提要
这篇文章介绍了如何将传统的经纬度坐标(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提供多种功能,帮助用户将任何数据转换为地图,包括几何数据的处理和转换。