来自 ST_GeometryFromText(x) 的无效 WKT
Invalid WKT from ST_GeometryFromText(x)
我正在尝试使用 presto 函数将 varchar WKT 格式转换为几何图形 ST_GeometryFromText
但我收到此错误
Error running query: Invalid WKT: 0101000020E6100000000000407BF43E40000000203CFA3D40
数据库中的点格式是以0101000020E6100000000000407BF43E40000000203CFA3D40
这种格式存储为varchar
,我只是想将其转换为几何点,我以前使用ST_X
& ST_Y
在 postgis
但在迁移到 presto 之后这两个函数不受支持。
如果你运行
SELECT ST_AsText('0101000020E6100000000000407BF43E40000000203CFA3D40')
...在postgis
中,你会得到POINT(30.955005645752 29.9774799346924)
。
如果要分离经纬度,运行:
SELECT ST_X(ST_AsText('0101000020E6100000000000407BF43E40000000203CFA3D40')), ST_Y(ST_AsText('0101000020E6100000000000407BF43E40000000203CFA3D40'))
我发现答案很简单,就是删除字符串的这一部分 '20E61000'
,一旦删除,函数就可以正常工作,我已经使用了这个函数
ST_GEOMFROMBINARY(FROM_HEX(REPLACE('0101000020E6100000000000407BF43E40000000203CFA3D40', '20E61000')))
它工作正常,我也使用 python Shapley wkb 函数验证了答案。
我遇到了同样的问题...不得不按摩这个东西。
select ST_GeomFromBinary(from_hex(to_utf8(replace(geom,'20E61000')))) as geom from ...
我正在尝试使用 presto 函数将 varchar WKT 格式转换为几何图形 ST_GeometryFromText
但我收到此错误
Error running query: Invalid WKT: 0101000020E6100000000000407BF43E40000000203CFA3D40
数据库中的点格式是以0101000020E6100000000000407BF43E40000000203CFA3D40
这种格式存储为varchar
,我只是想将其转换为几何点,我以前使用ST_X
& ST_Y
在 postgis
但在迁移到 presto 之后这两个函数不受支持。
如果你运行
SELECT ST_AsText('0101000020E6100000000000407BF43E40000000203CFA3D40')
...在postgis
中,你会得到POINT(30.955005645752 29.9774799346924)
。
如果要分离经纬度,运行:
SELECT ST_X(ST_AsText('0101000020E6100000000000407BF43E40000000203CFA3D40')), ST_Y(ST_AsText('0101000020E6100000000000407BF43E40000000203CFA3D40'))
我发现答案很简单,就是删除字符串的这一部分 '20E61000'
,一旦删除,函数就可以正常工作,我已经使用了这个函数
ST_GEOMFROMBINARY(FROM_HEX(REPLACE('0101000020E6100000000000407BF43E40000000203CFA3D40', '20E61000')))
它工作正常,我也使用 python Shapley wkb 函数验证了答案。
我遇到了同样的问题...不得不按摩这个东西。
select ST_GeomFromBinary(from_hex(to_utf8(replace(geom,'20E61000')))) as geom from ...