2012-12-27 83 views
0

我有一個工廠RGEO_FACTORY = RGeo::Geographic.simple_mercator_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來轉換點的座標,但徒勞無功。

我應該怎麼做才能解決這個問題?

在此先感謝。

回答

-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