PostGIS не использует (только) стандарт WKB при наличии SRID, он использует формат EWKB , который поддерживает 3d и SRID, чего нет в спецификации WKB .Думайте о WKB как о неком слабом двоичном 2d массиве, это очень простой формат.Он не включает повышение или SRID в двоичном представлении, в стандартных системах пространственной привязки OGC используются метаданные.Вот некоторые виды взаимодействий, которые могут пролить свет на то, как вы работаете с WKB и EWKB:
moveable=> insert into my_table (some_other_geom) values (GeomFromText('POINT(4 5)'));
moveable=> insert into my_table (some_other_geom) values (GeomFromText('POINT(4 5)', 4326));
Это дает вам:
010100000000000000000010400000000000001440
0101000020E610000000000000000010400000000000001440
, как вы видели.Если вы начинаете с шестнадцатеричного значения и хотите добавить проекцию SRID и сохранить его как EWKB, вы делаете несколько вариантов:
==>insert into my_table (some_other_geom) values (ST_GeomFromWKB(decode('010100000000000000000010400000000000001440', 'hex'), 4326));
INSERT 0 1
или:
moveable=> insert into my_table (some_other_geom) values (ST_GeomFromWKB(decode('010100000000000000000010400000000000001440', 'hex')));
INSERT 0 1
Как и следовало ожидать, эти выходы,соответственно:
0101000020E610000000000000000010400000000000001440
010100000000000000000010400000000000001440
, где нулевой -1
SRID по умолчанию совпадает с форматом 2-й WKB без SRID.В целом, я думаю, что безопаснее работать с WKT, GeoJSON и KML, поскольку они также являются OGC (?) 1 открытыми стандартами, а версия SQL имеет некоторые ожидающие обновления.Как показывают документы PostGIS: «Расширенные форматы PostGIS в настоящее время являются расширенным набором OGC (каждый действительный WKB / WKT является допустимым EWKB / EWKT), но это может измениться в будущем, особенно если OGC выпускает новый формат, конфликтующий с нашими расширениямиТаким образом, вы НЕ ДОЛЖНЫ полагаться на эту функцию! "
(1) На самом деле понятия не имею, в каком состоянии находится половина этих стандартов, но кажется, что json, text и xml существуют на протяжении жизниприменение.