PostGIS之空间投影
1. 概述
PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询
PostGIS官网:About PostGIS | PostGIS
PostGIS官方教程:PostGIS 简介 — Introduction to PostGIS
PostGIS相关教程:文章目录汇总 - 知乎 (zhihu.com)
本文基于官方教程描述PostGIS中的空间投影
数据准备可参考:
数据介绍可参考:
2. 空间投影
空间投影是空间数据进行分析的基础,需要一个合适的坐标系才能进行计算
2.1 PostGIS中的空间坐标系统
SRID是PostGIS中空间数据的空间参考系代码,查询SRID使用:
- ST_SRID (g1) Returns the spatial reference identifier for a geometry
- ST_SetSRID (geom, srid) Set the SRID on a geometry
SELECT ST_SRID(geom) FROM nyc_streets ;
-- 结果为:26918
查询PostGIS中空间参考系的具体信息:
SELECT * FROM spatial_ref_sys WHERE srid = 26918;
其中,srtext是是通用的空间坐标系统描述信息,和shapefile中.prj文件描述的信息类似,是其他GIS软件读取空间参考的信息源,proj4text列由PostGIS的内部程序使用
geometry_columns表(视图)记录了数据表的元数据,可以用来查询数据表的SRID:
SELECT * FROM geometry_columns;
2.2 投影转换
PostGIS中提供的投影转换函数主要有:
- ST_Transform(g1, srid) Return a new geometry with coordinates transformed to a different spatial reference system
将"Broad St"地铁站的坐标转换为地理坐标:
-- 查询srid:26918 坐标系统下的坐标和srid:4326 地理坐标系的坐标
SELECT ST_AsEWKT(geom), ST_AsEWKT(ST_Transform(geom, 4326)) FROM nyc_subway_stations WHERE name = 'Broad St';
3. 参考资料
[1]16. Projecting Data — Introduction to PostGIS