Постгис геометрия формат манипуляции - PullRequest
1 голос
/ 11 февраля 2020

Здравствуйте, у меня есть 2 вопроса о формате геометрии postgis:

Как определить, что это за формат геометрии (ewkb, hexewkb ...)?

"0101000020110F0000000000003087094100000080B6415741"

Как конвертировать wkt в EWKB?

1 Ответ

1 голос
/ 11 февраля 2020

Чтобы проверить, является ли геометрия действительной (независимо от формата), вы можете использовать ST_IsValid - или ST_IsValidReason на тот случай, если вы хотите знать, почему она не работает.

SELECT ST_IsValid('0101000020110F0000000000003087094100000080B6415741');
 st_isvalid 
------------
 t
(1 Zeile)

Если по какой-либо причине вы хотите проверить, закодирована ли геометрия в определенном формате, попробуйте функции ST_GeomFrom* и перехватите сообщение об ошибке в случае сбоя, например,

SELECT ST_GeomFromWKB('POINT(1 2)');
FEHLER:  Invalid endian flag value encountered.


SELECT ST_GeomFromText('POINT(1 2)');
              st_geomfromtext               
--------------------------------------------
 0101000000000000000000F03F0000000000000040
(1 Zeile)

Чтобы преобразовать его в EWKB, попробуйте ST_AsEWKB

SELECT ST_AsEWKB('0101000020110F0000000000003087094100000080B6415741');
                      st_asewkb                       
------------------------------------------------------
 \x0101000020110f0000000000003087094100000080b6415741
(1 Zeile)

Подробнее: Convert geometry to various formats

...