0

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

我有一个点(POINT(28.97566007 41.01452809)),它的 srid 是 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)。但我无法得到它。

而且我尝试过其他 srid 来转换点的坐标,但徒劳无功。

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

提前致谢。

4

1 回答 1

-2

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

涵盖了更详细的回答另一个类似的问题

于 2013-03-12T16:30:53.373 回答