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
or:
moveable=> insert into my_table (some_other_geom) values (ST_GeomFromWKB(decode('010100000000000000000010400000000000001440', 'hex')));
INSERT 0 1
Как и следовало ожидать, эти результаты соответственно:
0101000020E610000000000000000010400000000000001440
010100000000000000000010400000000000001440
где нулевой -1
SRID по умолчанию совпадает с форматом 2d WKB без SRID. В целом, я думаю, что безопаснее работать с WKT, GeoJSON и KML, так как они также являются открытыми стандартами OGC(?)1, а версия SQL имеет некоторые необходимые обновления. в ожидании. Как предполагает документация PostGIS: «Расширенные форматы PostGIS в настоящее время являются расширенным набором форматов OGC (каждый действительный WKB/WKT является действительным EWKB/EWKT), но это может измениться в будущем, особенно если OGC выйдет с новым форматом, конфликтующим с нашими расширениями. . Таким образом, вам НЕ СЛЕДУЕТ полагаться на эту функцию!"
(1) На самом деле понятия не имею, каков статус половины этих стандартов, но json, text и xml, похоже, будут существовать на протяжении всей жизни любого данного приложения.
person
unmounted
schedule
25.05.2011