0

利用した

RGEO_FACTORY = RGeo::Geographic.simple_mercator_factory
RGEO_FACTORY.point(lon, lat).projection

しかし今、私はそれを実装するためにSQLを使用したいと思います。そして、私はpostgisデータベースにポイント(ジオメトリ)を持っています。

どうすればいいですか?

4

1 に答える 1

0

RGeo simple mercator factory docsは、SRID 4326 を使用してポイントを保存し、SRID 3785 を投影に使用すると述べています。PostGIS にはそのためのST_Transformがあります。これは、トピックをカバーする素晴らしいチュートリアルです。geom フィールドを 'nodes' テーブルに保存し、それが SRID 4326 にあると仮定すると、ST_Transform を使用して RGeo 単純メルカトル図法と同じ投影法を取得できます。ST_SRID を使用して、geom フィールドの srid を確認します。

select geom, ST_SRID(geom) from nodes limit 1;
                        geom                        | st_srid 
----------------------------------------------------+---------
 0101000020E61000004A97FE25A9523E40B6B9D683EEE74D40 |    4326

select ST_Transform(geom, 3785) from nodes limit 1;
                    st_transform                    
----------------------------------------------------
 0101000020C90E0000FE8D2A88D4C04941A418472F1AE25F41

geom を同じ srid に変換しようとしても、変更されません。

select ST_Transform(geom, 4326) from nodes limit 1;
                    st_transform                    
----------------------------------------------------
 0101000020E61000004A97FE25A9523E40B6B9D683EEE74D40
于 2013-03-12T16:13:21.107 に答える