ST_GeomFromMARC21 — Prende in input i dati geografici MARC21/XML e restituisce un oggetto geometrico PostGIS.
geometry ST_GeomFromMARC21 ( text marcxml );
Questa funzione crea una geometria PostGIS da un record MARC21/XML, che può contenere un POINT o un POLYGON. In caso di più voci di dati geografici nello stesso record MARC21/XML, verrà restituito un MULTIPOINT o MULTIPOLYGON. Se il record contiene tipi di geometria misti, viene restituito un GEOMETRYCOLLECTION. Se il record MARC21/XML non contiene dati geografici, restituisce NULL (campo dati:034).
Versioni LOC MARC21/XML supportate:
Disponibilità: 3.3.0, richiede libxml2 2.6+
|
|
|
I dati cartografici matematici codificati MARC21/XML non forniscono attualmente alcun mezzo per descrivere il sistema di riferimento spaziale delle coordinate codificate, pertanto questa funzione restituirà sempre una geometria con |
|
|
|
Le geometrie |
Conversione di dati geografici MARC21/XML contenenti un singolo POINT codificato come hddd.dddddd
SELECT
ST_AsText(
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
>'));
st_astext
-------------------
POINT(-4.5 54.25)
(1 row)
Conversione di dati geografici MARC21/XML contenenti un singolo POLYGON codificato come hdddmmss
SELECT
ST_AsText(
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
>'));
st_astext
-----------------------------------------------------------------------------------------------------------------------
POLYGON((13.1 52.65,13.516666666666667 52.65,13.516666666666667 52.38333333333333,13.1 52.38333333333333,13.1 52.65))
(1 row)
Conversione di dati geografici MARC21/XML contenenti un POLIGON e un POINT:
SELECT
ST_AsText(
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
>'));
st_astext
-------------------------------------------------------------------------------------------------------------------------------------------------------------
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))
(1 row)