Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


空间参考系统

📄字数 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_Point
      sql
      GEOMETRY ST_POINT(DOUBLE x, DOUBLE y, INTEGER srid);
    • ST_MakeEnvelope
      sql
      GEOMETRY ST_MAKEENVELOPE(DOUBLE xmin, DOUBLE ymin, DOUBLE xmax, DOUBLE ymax, INTEGER srid=0);
  • EWKT格式支持带前缀SRID=n;

    sql
    POINT(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个最常见的空间参考系统定义。

字段说明

字段名类型说明
SRIDINTEGER空间参考系统的唯一标识符(Spatial Reference System Identifier)。每个SRS都有一个唯一的SRID,用于区分不同的空间参考系统。
SUTH_NAMEVARCHAR(256)空间参考系统的授权机构或组织的名称。有些SRS是由特定的标准化组织或地理空间数据提供者定义和发布的。
AUTH_SRIDINTEGER授权机构给定的空间参考系统标识符(SRID)。通常是标准化组织或数据提供者为其定义的标识符。
SRTEXTVARCHAR(2048)空间参考系统的文本描述或定义。可以是一个具体的投影方法、椭球体参数、地理坐标系或其他相关信息的字符串表示。
PROJ4TEXTVARCHAR(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默认的椭球体和基准面参数。