我有一个工厂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)
相同的结果。但我无法得到它。
我尝试过其他srid来改变点的坐标,但是徒劳无功。
我该怎么做才能解决这个问题?
提前致谢。
答案 0 :(得分:-2)
使用RGeo::Geographic.simple_mercator_factory
创建点时,就像使用RGEO_FACTORY.point(lon, lat)
一样,他们的srid是工厂预定义的,它不是3785,而是4326,请亲自查看the docs。这些点'projection
方法返回3785中的点。使用ST_SRID(lat_lon)了解lat_lon字段的实际srid,如果它是几何类型,则确定要将其转换为哪个srid。
更详细地回答了another similar question。