0

私は工場を持っていますRGEO_FACTORY = RGeo::Geographic.simple_mercator_factory

そして、srid が 3785 のポイント (POINT (28.97566007 41.01452809)) があります。

次に、 を使用して新しい座標を取得し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 に答える