来自ST_GeometryFromText(x)的无效WKT

时间:2019-04-18 10:31:10

标签: sql gis presto

我正在尝试使用presto函数ST_GeometryFromText将varchar WKT格式转换为几何,但出现此错误

Error running query: Invalid WKT: 0101000020E6100000000000407BF43E40000000203CFA3D40

数据库中的点格式以0101000020E6100000000000407BF43E40000000203CFA3D40的格式存储在varchar中,我只想将其转换为几何点,我曾经使用ST_X和{{1 }}中的ST_Y,但在迁移到presto之后,这两个功能不再受支持。

3 个答案:

答案 0 :(得分:1)

如果您运行

SELECT ST_AsText('0101000020E6100000000000407BF43E40000000203CFA3D40') 

...在postgis中,您将获得要点POINT(30.955005645752 29.9774799346924)

如果要分隔经度和纬度,请运行:

SELECT ST_X(ST_AsText('0101000020E6100000000000407BF43E40000000203CFA3D40')), ST_Y(ST_AsText('0101000020E6100000000000407BF43E40000000203CFA3D40')) 

答案 1 :(得分:0)

我发现答案很简单,只需删除字符串'20E61000'的这一部分,一旦删除,该函数就可以正常工作,我已经使用了该函数

ST_GEOMFROMBINARY(FROM_HEX(REPLACE('0101000020E6100000000000407BF43E40000000203CFA3D40', '20E61000')))

它运行良好,我也使用python Shapley wkb函数验证了答案。

答案 2 :(得分:0)

我遇到了同样的问题...不得不彻底解决这个问题。

select ST_GeomFromBinary(from_hex(to_utf8(replace(geom,'20E61000')))) as geom from ...