Name

ST_AsMARC21 — Renvoie la géométrie sous forme d'enregistrement MARC21/XML avec un champ de données géographiques (034).

Synopsis

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

Description

Cette fonction renvoie un enregistrement MARC21/XML avec Coded Cartographic Mathematical Data représentant la boîte de délimitation d'une géométrie donnée. Le paramètre format permet de coder les coordonnées dans les sous-champs $d,$e,$f et $g dans tous les formats pris en charge par la norme MARC21/XML. Les formats valides sont les suivants :

  • la direction cardinale, en degrés, minutes et secondes (par défaut) : hdddmmss

  • degrés décimaux avec la direction cardinale : hddd.dddddd

  • degrés décimaux sans direction cardinale : ddd.dddddd

  • minutes décimales avec la direction cardinale : hdddmm.mmmm

  • minutes décimales sans direction cardinale : dddmm.mmmm

  • secondes décimales avec la direction cardinale : hdddmmss.sss

Le signe décimal peut également être une virgule, par exemple hdddmm,mmmm.

La précision des formats décimaux peut être limitée par le nombre de caractères après le signe décimal, par exemple hdddmm.mm pour des minutes décimales avec une précision de deux décimales.

Cette fonction ignore les dimensions Z et M.

Prise en charge des versions LOC MARC21/XML :

Disponibilité : 3.3.0

[Note]

Cette fonction ne prend pas en charge les géométries non lon/lat, car elles ne sont pas prises en charge par la norme MARC21/XML (Coded Cartographic Mathematical Data).

[Note]

La norme MARC21/XML ne prévoit aucun moyen d'annoter le système de référence spatiale pour les données mathématiques cartographiques codées, ce qui signifie que cette information sera perdue après la conversion au format MARC21/XML.

Exemples

Conversion d'un POINT en MARC21/XML au format hdddmmss (par défaut)


                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>

            
            

Conversion d'un POLYGON en MARC21/XML formaté en degrés décimaux


                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>

            
            

Conversion d'une GEOMETRYCOLLECTION en MARC21/XML en minutes décimales. L'ordre des géométries dans la sortie MARC21/XML correspond à leur ordre dans la collection.


                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>

            
            

Voir aussi

ST_GeomFromMARC21