ST_AsMARC21 — 将几何图形返回为带有地理数据字段 (034) 的 MARC21/XML 记录。
text ST_AsMARC21 ( geometry geom , text format='hdddmmss' );
此函数返回一个 MARC21/XML 记录,其中包含表示给定几何图形的边界框的编码制图数学数据。 格式参数允许以 MARC21/XML 标准支持的所有格式对子字段 $d、$e、$f 和 $g 中的坐标进行编码。 有效格式为:
纬度和经度标识,度、分、秒(默认): hdddmmss
带经度和纬度标识的十进制度: hddd.dddddd
没有经度和纬度标识的十进制度: ddd.dddddd
带有经度和纬度标识的小数分钟: hdddmm.mmmm
不带纬度和经度标识的小数分钟: dddmm.mmmm
带有经度和纬度标识的小数秒: hdddmmss.sss
小数点符号也可以是逗号,例如 hddddmm,mmmm。
小数格式的精度可能受到小数点后字符数的限制,例如 hdddmm.mm 表示小数分钟,精度为两位小数。
此函数忽略 Z 和 M维度。
支持的 LOC MARC21/XML 版本:
可用性: 3.3.0
|
|
|
此函数不支持非经度/纬度几何形状,因为它们不受 MARC21/XML 标准(编码制图数学数据)支持。 |
|
|
|
MARC21/XML 标准没有提供任何方法来注释编码制图数学数据的空间参考系统,这意味着这些信息在转换为 MARC21/XML 后将会丢失。 |
将 POINT 转换为 MARC21/XML,格式为 dd mm ss(默认)
SELECT ST_AsMARC21('SRID=4326;POINT(-4.504289 54.253312)'::geometry);
st_asmarc21
-------------------------------------------------
<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>
将 POLYGON转换为十进制度格式的 MARC21/XML
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');
<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>
将 GEOMETRYCOLLECTION 转换为以十进制分钟格式表示的 MARC21/XML。 MARC21/XML 输出中的几何顺序与其在集合中的顺序相对应。
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');
st_asmarc21
-------------------------------------------------
<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>