>我最近将我的 Amazon PostgreSQL RDS 升级到版本 10.3,但在获取投影时出现错误:
ERROR: transform_geom: couldn't parse proj4 output string: '3857': projection not named
CONTEXT: SQL function "st_transform" statement 1
我能够在版本 9.5.xx 之前获取的相同记录
我的 PostGIS 版本是 2.4.2,它与 RDS 意图兼容。
从 postgis 2.2 升级到 2.3 后,我可能遇到了同样的问题,我的一些查询不再起作用了。
旧查询:
SELECT ST_X(ST_TRANSFORM(ST_SETSRID(ST_MAKEPOINT($1,$2),$3),$4));
查询参数 $1...$4:
602628,6663367,3857,3857
错误消息:">
transform_geom:无法分析 Proj4 输出字符串:"3857":投影未命名">
原因:
ST_TRANSFORM有多种口味,其中两种:
- public.st_transform(几何,整数(
- public.st_transform(几何、文本(
后一个,我假设 postgis 2.3 中的新,导致了我的问题,因为 $4 (3857( 被视为 (proj4-( 字符串而不是 (SRID-( 整数。
在我的情况下的解决方法:参数 $4 的类型提示
SELECT ST_X(ST_TRANSFORM(ST_SETSRID(ST_MAKEPOINT($1,$2),$3),$4::int));