Чтобы проверить, является ли геометрия действительной (независимо от формата), вы можете использовать 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