名称

ST_GeomFromMARC21 — 输入 MARC21/XML 地理数据并返回 PostGIS 几何对象。

大纲

geometry ST_GeomFromMARC21 ( text marcxml );

描述

此函数从 MARC21/XML 记录创建 PostGIS 几何图形,其中可以包含 POINT POLYGON。 如果同一 MARC21/XML 记录中有多个地理数据条目,将返回 MULTIPOINT MULTIPOLYGON。 如果记录包含混合几何类型,则将返回 GEOMETRYCOLLECTION。 如果 MARC21/XML 记录不包含任何地理数据(数据字段:034),则返回 NULL。

支持的 LOC MARC21/XML 版本:

可用性:3.3.0,需要 libxml2 2.6+

[注意]

在 MARC21/XML 编码的地理数据中,目前无法描述编码坐标的空间参考系,因此该函数将始终返回 SRID 0 的几何图形。

[注意]

返回的 POLYGON 几何图形将始终是顺时针方向。

示例

转换包含编码为 hddd.dddddd 的单个 POINT 的 MARC21/XML 地理数据

Code
SELECT ST_GeomFromMARC21(
'<record xmlns="http://www.loc.gov/MARC21/slim">
    <leader
>00000nz a2200000nc 4500</leader>
    <controlfield tag="001"
>040277569</controlfield>
    <datafield tag="034" ind1=" " ind2=" ">
        <subfield code="d"
>W004.500000</subfield>
        <subfield code="e"
>W004.500000</subfield>
        <subfield code="f"
>N054.250000</subfield>
        <subfield code="g"
>N054.250000</subfield>
    </datafield>
</record
>'
);
栅格输出
POINT(-4.5 54.25)
Figure
Geometry figure for visual-st-geomfrommarc21-01

转换包含编码为 hdddmmss 的单个 POLYGON 的 MARC21/XML 地理数据

Code
SELECT ST_GeomFromMARC21(
'<record xmlns="http://www.loc.gov/MARC21/slim">
    <leader
>01062cem a2200241 a 4500</leader>
    <controlfield tag="001"
>   84696781 </controlfield>
    <datafield tag="034" ind1="1" ind2=" ">
        <subfield code="a"
>a</subfield>
        <subfield code="b"
>50000</subfield>
        <subfield code="d"
>E0130600</subfield>
        <subfield code="e"
>E0133100</subfield>
        <subfield code="f"
>N0523900</subfield>
        <subfield code="g"
>N0522300</subfield>
    </datafield>
</record
>'
);
栅格输出
POLYGON((13.1 52.65,13.516666666666667 52.65,13.516666666666667 52.38333333333333,13.1 52.38333333333333,13.1 52.65))
Figure
Geometry figure for visual-st-geomfrommarc21-02

转换包含 POLYGON POINT 的 MARC21/XML 地理数据:

Code
SELECT ST_GeomFromMARC21(
'<record xmlns="http://www.loc.gov/MARC21/slim">
    <datafield tag="034" ind1="1" ind2=" ">
        <subfield code="a"
>a</subfield>
        <subfield code="b"
>50000</subfield>
        <subfield code="d"
>E0130600</subfield>
        <subfield code="e"
>E0133100</subfield>
        <subfield code="f"
>N0523900</subfield>
        <subfield code="g"
>N0522300</subfield>
    </datafield>
    <datafield tag="034" ind1=" " ind2=" ">
        <subfield code="d"
>W004.500000</subfield>
        <subfield code="e"
>W004.500000</subfield>
        <subfield code="f"
>N054.250000</subfield>
        <subfield code="g"
>N054.250000</subfield>
    </datafield>
</record
>'
);
栅格输出
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))
Figure
Geometry figure for visual-st-geomfrommarc21-03

相关信息

ST_AsMARC21