名前

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 のバージョンは次の通りです。

Availability: 3.3.0 libxml2 2.6以上が必要です。

[注記]

MARC21/XML コード化地理数値データでは、今のところコード化した座標の空間参照系を記述する手段がないため、この関数は常にSRID 0のジオメトリーを返すことになります。

[注記]

返されるPOLYGONジオメトリーは常に時計回り方向です。

POINTを一つ含み hddd.ddddddでエンコードした MARC21/XML 地理データの変換

コード
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)
Geometry figure for visual-st-geomfrommarc21-01

POLYGONを一つ含み hdddmmssでエンコードした MARC21/XML 地理データの変換

コード
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))
Geometry figure for visual-st-geomfrommarc21-02

POLYGONPOINTを含む MARC21/XML 地理データの変換:

コード
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))
Geometry figure for visual-st-geomfrommarc21-03

関連情報

ST_AsMARC21