名称

ST_AsMARC21 — 将几何图形作为包含地理数据字段 (034) 的 MARC21/XML 记录返回。

概要

text ST_AsMARC21 ( geometry geom , text format='hdddmmss' );

描述

此函数返回一个 MARC21/XML 记录,其中包含表示给定几何图形边界框的 编码的制图数学数据format 参数允许以 MARC21/XML 标准支持的所有格式对子字段 $d$e$f$g 中的坐标进行编码。 有效格式为

  • 基点方向、度、分和秒(默认):hdddmmss

  • 带基点方向的十进制度:hddd.dddddd

  • 不带基点方向的十进制度:ddd.dddddd

  • 带基点方向的十进制分:hdddmm.mmmm

  • 不带基点方向的十进制分:dddmm.mmmm

  • 带基点方向的十进制秒:hdddmmss.sss

小数点符号也可以是逗号,例如 hdddmm,mmmm

十进制格式的精度可以通过小数点后的字符数来限制,例如 hdddmm.mm 表示精度为两位小数的十进制分。

此函数忽略 Z 和 M 维度。

支持的 LOC MARC21/XML 版本

可用性:3.3.0

[Note]

此函数不支持非经纬度几何图形,因为 MARC21/XML 标准(编码的制图数学数据)不支持它们。

[Note]

MARC21/XML 标准没有提供任何方法来注释编码的制图数学数据的空间参考系统,这意味着此信息在转换为 MARC21/XML 后将丢失。

示例

POINT 转换为格式为 hdddmmss(默认)的 MARC21/XML 格式

                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>

            
            

另请参阅

ST_GeomFromMARC21