来自 ST_GeometryFromText(x) 的 WKT 无效



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

Error running query: Invalid WKT: 0101000020E6100000000000407BF43E40000000203CFA3D40

数据库中的点格式以这种格式存储0101000020E6100000000000407BF43E40000000203CFA3D40varchar,我只想将其转换为几何点,我曾经在 postgis 中使用 ST_X & ST_Y 但是迁移到 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 ...

相关内容

  • 没有找到相关文章

最新更新