Namn

ST_AsBinary — Returnera OGC/ISO Well-Known Binary (WKB)-representationen av geometrin/geografin utan SRID-metadata.

Synopsis

bytea ST_AsBinary(geometry g1);

bytea ST_AsBinary(geometry g1, text NDR_or_XDR);

bytea ST_AsBinary(geography g1);

bytea ST_AsBinary(geography g1, text NDR_or_XDR);

Beskrivning

Returnerar OGC/ISO-representationen Well-Known Binary (WKB) av geometrin. Den första funktionsvarianten använder som standard servermaskinens endian-kodning. Den andra varianten tar ett textargument som anger endian-kodningen: antingen NDR för little-endian eller XDR för big-endian. Okända argument ger little-endian som utdata.

WKB-formatet är användbart för att läsa geometridata från databasen och bibehålla full numerisk precision. På så sätt undviks den precisionsavrundning som kan förekomma med textformat som WKT.

För att utföra den omvända konverteringen av WKB till PostGIS-geometri använder du ST_GeomFromWKB.

[Notera]

OGC/ISO WKB-formatet innehåller inte SRID. För att få EWKB-formatet som innehåller SRID använder du ST_AsEWKB

[Notera]

PostgreSQL matar som standard ut bytea-värden med hexkodning. Om dina GUI-verktyg kräver det gamla beteendet, kör SET bytea_output='escape' i databasen.

Förbättrad: 2.0.0 stöd för polyhedrala ytor, trianglar och TIN infördes.

Förbättrad: 2.0.0 stöd för högre koordinatdimensioner infördes.

Förbättrad: 2.0.0 stöd för att ange endian med geografi infördes.

Tillgänglighet: 1.5.0 stöd för geografi infördes.

Ändrat: 2.0.0 Indata till den här funktionen får inte vara unknown, utan måste vara geometry. Konstruktioner som ST_AsBinary('POINT(1 2)') är inte längre giltiga och ger felet n ST_AsBinary(unknown) is not unique. Sådan kod måste ändras till ST_AsBinary('POINT(1 2)'::geometry);. Om det inte är möjligt, installera legacy.sql.

Denna metod implementerar OGC:s implementeringsspecifikation för enkla funktioner för SQL 1.1. s2.1.1.1

Denna metod implementerar SQL/MM-specifikationen. SQL-MM 3: 5.1.37

Denna metod stöder cirkulära strängar och kurvor.

Denna funktion stöder polyedriska ytor.

Denna funktion stöder trianglar och triangulerade oregelbundna nätverksytor (TIN).

Denna funktion stöder 3d och kommer inte att tappa z-index.

Exempel

Kod
SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))', 4326));
Utdata
\x01030000000100000005000000000000000000000000000000000000000000000000000000000000
000000f03f000000000000f03f000000000000f03f000000000000f03f0000000000000000000000
00000000000000000000000000
Kod
SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))', 4326), 'XDR');
Utdata
\x000000000300000001000000050000000000000000000000000000000000000000000000003ff000
00000000003ff00000000000003ff00000000000003ff00000000000000000000000000000000000
00000000000000000000000000

Använd PostgreSQL-funktionen encode för att skapa en hexadecimal WKB-sträng utan prefixet \x som används vid visning av bytea. Om NDR anges blir byteordningen deterministisk.

Kod
SELECT encode(
    ST_AsBinary('POINT(15.123 21.456)'::geometry, 'NDR'),
    'hex'
) AS wkb_hex;
Utdata
0101000000e5d022dbf93e2e40dbf97e6abc743540