空间参考系统
📄字数 2.4K
👁️阅读量 加载中...
概述
空间参考系统(Spatial Reference System,SRS),也称为坐标参考系统(Coordinate Reference System,CRS)定义了如何将几何图形引用到地球表面。SRS分为三种类型:
地理(geodetic)SRS:使用角坐标(经度和纬度),直接映射到地球表面。
投影(projected)SRS:通过数学投影变换,球形地球的表面可以映射到平面上,使得距离、面积和角度等量可以直接测量。在这种转换中,使用笛卡尔坐标系,其定义了一个原点和两个垂直轴(通常面向北和东)。每种投影的空间参考系统(SRS)使用特定的长度单位(例如米或英尺)。投影的SRS通常会限定适用范围,以保证地图变形最小化,并且能够适应定义的坐标范围内。
本地(local)SRS:不参考地球表面的笛卡尔坐标系,指定SRID值为0。
空间库使用SRID标识符 表示空间参考系。
指定SRID
通过
ST_SetSRID函数指定几何图形的SRID值。某些几何构造函数支持在创建空间几何对象时指定一个SRID。
ST_PointsqlGEOMETRY ST_POINT(DOUBLE x, DOUBLE y, INTEGER srid);ST_MakeEnvelopesqlGEOMETRY ST_MAKEENVELOPE(DOUBLE xmin, DOUBLE ymin, DOUBLE xmax, DOUBLE ymax, INTEGER srid=0);
EWKT格式支持带前缀
SRID=n;。sqlPOINT(30 10) SRID=4326;POINT(30 10)
查看SRID
几何图形通过其SRID值与SRS相关联,可通过ST_SRID函数查看SRID值。
sql
ST_SRID(geom);转换SRID
空间函数(例如叠加函数和关系函数)要求输入的几何图形必须具有相同的空间参考系统(即相同的SRID)。
可通过ST_Transform函数和ST_TransformPipeline函数将几何数据转换为所需的目标空间参考系统。
SPATIAL_REF_SYS表
功能描述
SPATIAL_REF_SYS表用于存储可用的空间参考系统。
空间库内置SPATIAL_REF_SYS表包含由PROJ投影库处理的8500个最常见的空间参考系统定义。
字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| SRID | INTEGER | 空间参考系统的唯一标识符(Spatial Reference System Identifier)。每个SRS都有一个唯一的SRID,用于区分不同的空间参考系统。 |
| SUTH_NAME | VARCHAR(256) | 空间参考系统的授权机构或组织的名称。有些SRS是由特定的标准化组织或地理空间数据提供者定义和发布的。 |
| AUTH_SRID | INTEGER | 授权机构给定的空间参考系统标识符(SRID)。通常是标准化组织或数据提供者为其定义的标识符。 |
| SRTEXT | VARCHAR(2048) | 空间参考系统的文本描述或定义。可以是一个具体的投影方法、椭球体参数、地理坐标系或其他相关信息的字符串表示。 |
| PROJ4TEXT | VARCHAR(2048) | 包含PROJ格式的投影参数字符串。 |
示例
查询Web墨卡托投影,EPSG:3857。
sql
-- 空间扩展初始化
SQL> CREATE EXTENSION SPATIAL;
Execute successful.
SQL> SELECT * FROM SPATIAL_REF_SYS WHERE srid = 3857;
+------+-----------+-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
| SRID | AUTH_NAME | AUTH_SRID | SRTEXT | PROJ4TEXT |
+------+-----------+-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+
| 3857 | EPSG | 3857 | PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]] | +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs |
+------+-----------+-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------+用户自定义SRS
SPATIAL_REF_SYS表包含PROJ投影库最常见的空间参考系统定义。若SPATIAL_REF_SYS表中不包含所需要的坐标系,则可以将SRS定义添加到表中。
示例
sql
INSERT INTO spatial_ref_sys (srid, proj4text)
VALUES ( 990000,
'+proj=lcc +lon_0=-95 +lat_0=25 +lat_1=25 +lat_2=25 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs'
);srid:设置SRID为990000。+proj=lcc:指定投影为Lambert等角圆锥投影(Lambert Conformal Conic)。+lon_0=-95:中央经线位于西经95度。+lat_0=25:参考纬线位于北纬25度。+lat_1=25和+lat_2=25:第一标准纬线和第二标准纬线位于北纬25度。+x_0=0和+y_0=0:设置东移偏移量和北移偏移量为 0 米。+datum=WGS84:使用WGS84椭球体作为基准面。+units=m:设置坐标单位为米。+no_defs:不使用PROJ默认的椭球体和基准面参数。
