我有一个工厂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。
在回答另一个类似的问题时更详细地介绍了这个问题。