3

这是一个老歌,但我似乎找不到解决方案。

当我想对 900913 坐标到 4326 系统进行 st_transform 时,y 坐标会发生变化。

例子:

SELECT AsText(变换(变换(GeomFromText('POINT(449760.25168159 6790560.4594059)',900913),4326),900913))

这里原来的 900913 声明点是 st_stransformed 到 4326 并返回到 900913。结果不是原来的点,y 不同。(我稍后会插入结果,我这里没有)。

我尝试将 proj4text 更改为 4326,添加 +nadgrids=@null 就像我在某处读到的一样

srid 4326 的 proj4text 目前是:

"从 srid=4326 的 spatial_ref_sys 中选择 proj4text" +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs

srid 900913 的 proj4text 当前为:

"从 srid=900913 的 spatial_ref_sys 中选择 proj4text" +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@空 +no_defs

我还尝试从 900913 投影到另一个投影到 4326,但我得到的点与从 900913 到 4326 的直接转换完全相同。

有人有什么想法吗?

EJ

4

2 回答 2

1

EPSG:900913 是不明确的投影。您应该改用 EPSG:3857,它应该是完全相同的 Spherical Mercator,但它是标准化的。

任何重投影都是有损操作。来回转换坐标会在最后的二进制数字中产生噪音,这通常是亚毫米误差。

于 2017-11-24T12:29:35.020 回答
0

您使用的是什么版本的 PostGIS?我已经尝试使用此配置进行查询:POSTGIS="1.5.2" GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.7.1, 23 September 2009"它工作正常。

尽管如此,我还是解决了一些涉及 900913 坐标的问题。

于 2011-04-28T23:54:52.137 回答