ST_GeomFromMARC21 — Tar MARC21/XML-geografiska data som indata och returnerar ett PostGIS-geometriobjekt.
geometry ST_GeomFromMARC21 (
text marcxml )
;
Denna funktion skapar en PostGIS-geometri från en MARC21/XML-post, som kan innehålla en POINT
eller en POLYGON
. Om det finns flera geografiska dataposter i samma MARC21/XML-post returneras en MULTIPOINT
eller MULTIPOLYGON
. Om posten innehåller blandade geometrityper returneras en GEOMETRYCOLLECTION
. Den returnerar NULL om MARC21/XML-posten inte innehåller några geografiska data (datafield:034).
Stöd för LOC MARC21/XML-versioner:
Tillgänglighet: 3.3.0, kräver libxml2 2.6+
![]() |
|
MARC21/XML Coded Cartographic Mathematical Data tillhandahåller för närvarande inte något sätt att beskriva det spatiala referenssystemet för de kodade koordinaterna, så denna funktion returnerar alltid en geometri med |
![]() |
|
Återlämnade |
Konvertering av MARC21/XML geografiska data som innehåller en enda POINT
kodad som hddd.dddddddd
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)
Konvertering av MARC21/XML geografiska data som innehåller en enda POLYGON
kodad som 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)
Konvertering av geografiska data i MARC21/XML som innehåller en POLYGON
och en 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)