使用 RGeo::Geographic.simple_mercator_factory 的点投影方法的结果是什么



我有一个工厂RGEO_FACTORY = RGeo::Geographic.simple_mercator_factory

我有一个点(point(28.97566007 41.01452809)),它的栅格是3785。

然后我用RGEO_FACTORY.point(lon, lat).projection得到一个新的坐标。是POINT (3225555.7243913896 5014484.790030423)

现在,我需要使用sql来查询以提高速度。像这样:"SELECT ST_AsText(ST_Transform(lat_lon, 4326)) from points WHERE points.id = 1"。我希望得到与POINT (3225555.7243913896 5014484.790030423)相同的结果。但是我不能得到它。

并且我尝试了其他网格来变换点的坐标,但是无效。

我该怎么做才能解决这个问题?

当您使用RGeo::Geographic.simple_mercator_factory创建点时,就像您使用RGEO_FACTORY.point(lon, lat)一样,它们的srid是由工厂预定义的,它不是3785,而是4326,请参阅文档。这些点的projection方法返回3785中的点。使用strongRID(lat_lon)了解lat_lon字段的实际srid,如果它是一个几何类型,然后找出您想要将其转换为哪个srid。

在回答另一个类似的问题时更详细地介绍了这个问题。

相关内容

最新更新