Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_ASLATLONTEXT

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

功能描述

返回点的度、分和秒表示形式。

语法格式

sql
CLOB ST_ASLATLONTEXT(GEOMETRY pt, VARCHAR format='');

参数说明

  • pt:目标 GEOMETRY 点对象。
  • format:指定结果文本的格式化参数,默认为空串。有效标记为:
    • D:表示度
    • M:表示分钟
    • S:表示秒
    • C:表示基本方向 (NSEW)

函数返回类型

CLOB 类型

使用说明

  1. 该函数假设该点位于纬度/经度投影中。 X(经度)和 Y(纬度)坐标在输出中,标准化为正常范围:经度为 -180 到 180,纬度为 -90 到 90。
  2. DMS 令牌可以重复以指示所需的宽度和精度(“SSS.SSSS”表示“1.0023”)。
  3. M、S 和 C 是可选的。
    • 如果省略 C,则南或西的度数将显示为 - 符号。
    • 如果省略 S,分钟将显示为十进制,其精度位数与您指定的位数相同。
    • 如果省略 M,则度数将显示为十进制,其精度与您指定的位数相同。
  4. 如果格式字符串被省略(或零长度),则将使用默认格式。

示例

默认格式:

sql
SQL> SELECT (ST_ASLATLONTEXT('POINT (-3.2342342 -2.32498)'));

+----------------------------+
|           EXPR1            |
+----------------------------+
| 2°19'29.928"S 3°14'3.243"W |
+----------------------------+

(1 row)

指定格式(与默认值相同):

sql
SQL> SELECT (ST_ASLATLONTEXT('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS"C'));

+----------------------------+
|           EXPR1            |
+----------------------------+
| 2°19'29.928"S 3°14'3.243"W |
+----------------------------+

(1 row)

包含除 D、M、S 和 C 以外的字符,仅通过。

sql
SQL> SELECT (ST_ASLATLONTEXT('POINT (-3.2342342 -2.32498)', 'D degrees, M minutes, S seconds to the C'));

+--------------------------------------------------------------------------------------+
|                                        EXPR1                                         |
+--------------------------------------------------------------------------------------+
| 2 degrees, 19 minutes, 30 seconds to the S 3 degrees, 14 minutes, 3 seconds to the W |
+--------------------------------------------------------------------------------------+

(1 row)

有符号的度数而不是基本方向。

sql
SQL> SELECT (ST_ASLATLONTEXT('POINT (-3.2342342 -2.32498)', 'D°M''S.SSS"'));

+----------------------------+
|           EXPR1            |
+----------------------------+
| -2°19'29.928" -3°14'3.243" |
+----------------------------+

(1 row)

十进制度数,指定宽度和精度。

sql
SQL> SELECT (ST_ASLATLONTEXT('POINT (-3.2342342 -2.32498)', 'D.DDDD degrees C'));

+-----------------------------------+
|               EXPR1               |
+-----------------------------------+
| 2.3250 degrees S 3.2342 degrees W |
+-----------------------------------+

(1 row)

过大的值,被归一化。

sql
SQL> SELECT (ST_ASLATLONTEXT('POINT (-302.2342342 -792.32498)'));

+-------------------------------+
|             EXPR1             |
+-------------------------------+
| 72°19'29.928"S 57°45'56.757"E |
+-------------------------------+

(1 row)