ST_ASMARC21
📄字数 1.3K
👁️阅读量 加载中...
功能描述
此函数返回一个 MARC21/XML 记录,其中包含表示给定几何图形的边界框的编码制图数学数据。
语法格式
sql
CLOB ST_ASMARC21 (GEOMETRY geom , VARCHAR format='hdddmmss' );参数说明
- geom:目标 GEOMETRY 对象。
- format:格式,允许以 MARC21/XML 标准支持的所有格式对子字段
$d、$e、$f和$g中的坐标进行编码。有效标记为:- 纬度和经度标识,度、分、秒(默认):
hdddmmss - 带经度和纬度标识的十进制度:
hddd.dddddd - 没有经度和纬度标识的十进制度:
ddd.dddddd - 带有经度和纬度标识的小数分钟:
hdddmm.mmmm - 不带纬度和经度标识的小数分钟:
dddmm.mmmm - 带有经度和纬度标识的小数秒:
hdddmmss.sss
- 纬度和经度标识,度、分、秒(默认):
函数返回类型
CLOB 类型
使用说明
- 小数点符号也可以是逗号,例如
hddddmm,mmmm。 - 小数格式的精度可能受到小数点后字符数的限制,例如
hdddmm.mm表示小数分钟,精度为两位小数。 - 此函数忽略 Z 和 M维度。
- 支持的 LOC MARC21/XML 版本:MARC21/XML 1.1
注意
- 此函数不支持非经度/纬度几何形状,因为它们不受 MARC21/XML 标准(编码制图数学数据)支持。
- MARC21/XML 标准没有提供任何方法来注释编码制图数学数据的空间参考系统,这意味着这些信息在转换为 MARC21/XML 后将会丢失。
示例
将 POINT 转换为 MARC21/XML,格式为 dd mm ss(默认):
sql
SQL> SELECT ST_ASMARC21('SRID=4326;POINT(-4.504289 54.253312)'::GEOMETRY);
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| EXPR1 |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <record xmlns="http://www.loc.gov/MARC21/slim"><datafield tag="034" ind1="1" ind2=" "><subfield code="a">a</subfield><subfield code="d">W0043015</subfield><subfield code="e">W0043015</subfield><subfield code="f">N0541512</subfield><subfield code="g">N0541512</subfield></datafield></record> |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
(1 row)将 POLYGON转换为十进制度格式的 MARC21/XML:
sql
SQL> SELECT ST_ASMARC21('SRID=4326;POLYGON((-4.5792388916015625 54.18172660239091,-4.56756591796875 54.196993557130355,-4.546623229980469 54.18313300502024,-4.5792388916015625 54.18172660239091))'::GEOMETRY,'hddd.dddd');
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| EXPR1 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <record xmlns="http://www.loc.gov/MARC21/slim"><datafield tag="034" ind1="1" ind2=" "><subfield code="a">a</subfield><subfield code="d">W004.5792</subfield><subfield code="e">W004.5466</subfield><subfield code="f">N054.1970</subfield><subfield code="g">N054.1817</subfield></datafield></record> |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
(1 row)将 GEOMETRYCOLLECTION 转换为以十进制分钟格式表示的 MARC21/XML。 MARC21/XML 输出中的几何顺序与其在集合中的顺序相对应。
sql
SQL> SELECT ST_ASMARC21('SRID=4326;GEOMETRYCOLLECTION(POLYGON((13.1 52.65,13.516666666666667 52.65,13.516666666666667 52.38333333333333,13.1 52.38333333333333,13.1 52.65)),POINT(-4.5 54.25))'::GEOMETRY,'hdddmm.mmmm');
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| EXPR1 |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <record xmlns="http://www.loc.gov/MARC21/slim"><datafield tag="034" ind1="1" ind2=" "><subfield code="a">a</subfield><subfield code="d">E01307.0000</subfield><subfield code="e">E01331.0000</subfield><subfield code="f">N05240.0000</subfield><subfield code="g">N05224.0000</subfield></datafield><datafield tag="034" ind1="1" ind2=" "><subfield code="a">a</subfield><subfield code="d">W00430.0000</subfield><subfield code="e">W00430.0000</subfield><subfield code="f">N05415.0000</subfield><subfield code="g">N05415.0000</subfield></datafield></record> |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
(1 row)