Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_POINT

📄字数 852
👁️阅读量 加载中...

功能描述

使用给定的 X 和 Y 坐标值构造 POINT 对象。 这是 ST_MAKEPOINT 的 SQL-MM 等效项,仅采用 X 和 Y。

语法格式

sql
GEOMETRY ST_POINT(DOUBLE x, DOUBLE y);
GEOMETRY ST_POINT(DOUBLE x, DOUBLE y, INTEGER srid);

参数说明

  • x: X 值。对于大地坐标,x 是经度。
  • y: Y 值。对于大地坐标,y 是纬度。
  • srid: 空间参考系统ID,可使用 ST_SETSRID 在几何体上标记 SRID。

函数返回类型

GEOMETRY类型

示例

示例:几何

sql

SQL> SELECT ST_AsText(ST_POINT( -71.104, 42.315));

+-----------------------+
|         EXPR1         |
+-----------------------+
| POINT(-71.104 42.315) |
+-----------------------+

创建一个指定了SRID的点:

sql

SQL> SELECT ST_ASEWKT(ST_POINT( -71.104, 42.315, 4326));

+---------------------------------+
|              EXPR1              |
+---------------------------------+
| SRID=4326;POINT(-71.104 42.315) |
+---------------------------------+

指定 SRID 的另一种方式:

sql

SQL> SELECT ST_ASEWKT(ST_SETSRID(ST_POINT( -71.104, 42.315), 4326));

+---------------------------------+
|              EXPR1              |
+---------------------------------+
| SRID=4326;POINT(-71.104 42.315) |
+---------------------------------+

示例:地理

创建地理点(使用 :: 转换语法):

sql

SQL> SELECT ST_ASEWKT(ST_POINT( -71.104, 42.315, 4326)::GEOGRAPHY);

+---------------------------------+
|              EXPR1              |
+---------------------------------+
| SRID=4326;POINT(-71.104 42.315) |
+---------------------------------+

使用 CAST

sql

SQL> SELECT ST_ASEWKT(CAST( ST_SETSRID(ST_POINT( -71.104, 42.315), 4326) AS GEOGRAPHY));

+---------------------------------+
|              EXPR1              |
+---------------------------------+
| SRID=4326;POINT(-71.104 42.315) |
+---------------------------------+

如果点的坐标不在地理坐标系(如 WGS84)中,则必须先执行坐标变换,然后再将其投射到地理。在此示例中,宾夕法尼亚州平面英尺 (SRID 2273) 上的点将转换为 WGS84 (SRID 4326)。

sql

SQL> SELECT ST_ASEWKT(ST_TRANSFORM( ST_POINT( 3637510, 3014852, 2273), 4326)::GEOGRAPHY);

+-------------------------------------------------------+
|                         EXPR1                         |
+-------------------------------------------------------+
| SRID=4326;POINT(-75.18900105410722 39.97699985857664) |
+-------------------------------------------------------+