Gemäß der PostgreSQL-Dokumentation http://www.postgresql.org/docs/9.0/static/sql-syntax-lexical.html (Hervorhebung von mir)
PostgreSQL akzeptiert auch "Flucht" String-Konstanten, die eine Erweiterung der SQL-Standards sind. Eine Escape-String-Konstante wird spezifiziert, indem der Buchstabe E (Groß- oder Kleinschreibung) unmittelbar vor dem Eröffnungszitat, z.B. E'foo ', geschrieben wird. (Wenn Sie eine Escapezeichenfolge über Zeilen hinweg fortsetzen, schreiben Sie E nur vor dem ersten Anführungszeichen.) Innerhalb einer Escapezeichenfolge beginnt ein umgekehrter Schrägstrich() eine C-ähnliche Backslash-Escape-Sequenz, in der die Kombination aus Backslash und Folgezeichen (s repräsentieren) Wert eines speziellen Byte
Die Verwendung von \\
in der Zeichenfolge bedeutet, dass es eine Escape-Sequenz ist zu entkommen, wahrscheinlich sicher beim Transport und die Lagerung in einer .sql
Datei zu sein. Die wörtlich String übergeben tatsächlich in die ST_GeomFromWKB
Funktion wird sein:
\001\001\000\000\000\321\256B\312O\304Q\300\347\030\220\275\336%[email protected]
Diese Sequenzen von 3 oder 4 Zeichen zwischen Schrägstriche würde dann durch ST_GeoFromWKB
direkt interpretiert werden.
Die Dokumentation für ST_GeoFromWKB
(http://postgis.org/docs/ST_GeomFromWKB.html) heißt es:
Die ST_GeomFromWKB
Funktion nimmt eine bekannte binäre Darstellung einer Geometrie und eine räumliche Bezugssystem-ID (SRID) und erstellt eine Instanz der geeigneten Geometrie Art. Diese Funktion spielt die Rolle der Geometry Factory in SQL. Dies ist ein alternativer Name für ST_WKBToSQL
.
Leider wird nicht angegeben, welches Format genau die "bekannte binäre Darstellung" tatsächlich ist.
Es stellt sich heraus, dass der Inhalt der Zeichenfolge vom verwendeten Koordinatensystem abhängt, das durch den Parameter SRID
angegeben wird. In diesem Fall 4326
entspricht WGS84
: https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84
Sie müssen weitere lesen und forschen, um das zu entwirren.
Vielen Dank. Ich verstehe den '4326' SRID Teil. Aber nicht '304Q' und' 336% E @ '. Sie scheinen nicht wie Hexadezimalzahlen zu sein, wie die Wikipedia sagt: https://en.wikipedia.org/wiki/Well-known_text#Well-known_binary. Ich habe gerade eine andere Frage bei GIS.SE gefragt: http://gis.stackexchange.com/questions/177075/how-to-interpret-a-wkb-well-known-binary darüber. – tinlyx