問題タブ [rgeo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
375 参照

ruby-on-rails - GISデータベースを使用してRailsアプリケーションをテストする方法

私は、activerecord-postgis-adapterとactiverecord-spatialite-adapaterのgemとさまざまなrgeoプラグインを使用するRailsアプリ(3.2.8)を開発しています。

Railsユニットと機能テストを従来の方法で使用したいのですが、この種のテストは通常​​、ランダムデータまたはガベージデータを使用して行われます。工場や備品は、非常に単純なポリゴンと配置以外には明らかに役に立ちません。

この質問は、自由に利用できるシェープファイルへのリンクを提供しますが、よく理解された高品質のデータをテストDBにシードすることは最善のアイデアとは思えません。たとえば、米国の州と郡をテストデータとして使用すると、リージョンにポリゴンが部分的にしか含まれていないエッジケースが見落とされます。

このアプリをテストするための最良の方法は何ですか?Rails用のGISDBのファクトリはありますか?ランダムデータを使用するためのFakerのようなものはありますか?

0 投票する
1 に答える
1484 参照

ruby-on-rails - RGeo 投影バッファ ポリゴンが小さすぎます

rgeo-activerecord 0.4.5 gemを使用してPostGIS 1.5データベースに接続するproj4サポート付きのrgeo 0.3.19を使用しているレールアプリがあります。

私のアプリには、地理的なポイント、半径、および多角形を含む Region というモデルがあります。新しいリージョンを保存しようとすると、リージョンのジオファクトリのバッファ関数を使用して、半径と地理的ポイントを使用してポリゴンを作成します。

これは、地域モデルに使用されているジオファクトリーです

私が使用している Projection_srid は、Apple および Google マップのメルカトル図法 3857 のものです。問題は、作成されているバッファーが、Apple マップまたは Google マップで描画しているものと同じサイズではないことです。たとえば、組み込みの MapKit 関数 MKCircle を使用すると、

このように円を描いて重ねていきます。 iOS 描画半径

しかし、データベース内のポリゴン形状を構成するバッファ関数から作成された座標を取得し、それらを Google マップにプロットすると、これが得られます。

GoogleMaps 半径

ご覧のとおり、同じ投影システムを使用して作成されたポリゴンは、実際よりも小さくなっています。この問題は、定義された半径のサイズに基づいて指数関数的に制御不能になります。また、同じ結果が得られた RGeo で定義されている simple_mercator ファクトリを使用しようとしました。

経度、緯度の投影されたポイントがバッファリングされると、間違ったサイズのポリゴンが作成される理由について、誰かが洞察を持っていることを願っています。

0 投票する
1 に答える
506 参照

postgis - RGeo::Geographic.simple_mercator_factory を使用した点の投影法の結果は何ですか

私は工場を持っています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を試しましたが、無駄でした。

これを解決するにはどうすればよいですか?

前もって感謝します。

0 投票する
1 に答える
407 参照

postgis - 純粋なSQLを使用して投影を表現する方法は?

利用した

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

どうすればいいですか?

0 投票する
3 に答える
1802 参照

ruby-on-rails - ActiveRecord列をPostGISポイントに変換する

私のセットアップ:

  • Ruby 2.0.0
  • Rails 3.2.12
  • 最新のpg宝石
  • 最新のactiverecord-postgis-adapter宝石
  • 最新のrgeo-geojson宝石
  • Postgres 9.1.6
  • PostGIS 2

数日前に似たようなことを聞​​いたことがあります。(ブール値をPostgres(==文字列)からRubyブール値に変換する必要があります)。そこで、値をカスタム選択からブール値に変換する必要がありました。これを私のモデルに追加するだけで、これは非常に簡単でした。

しかし今、私はタイプの値を受け取りますPoint(これはPostGISからのタイプです)。データベースでの文字列表現はのよう"0101000000EE7C3F355EF24F4019390B7BDA011940"に見えますが、(私が思うに)RGeo::Feature::Pointまたは多分RGeo::Geos::CAPIPointImpl?!になる必要があります。

今私はActiveRecord::ConnectionAdapters::Columnhttp://rubydoc.info/docs/rails/ActiveRecord/ConnectionAdapters/Column)を見ましたが、見つけることができるのはvalue_to_booleanとだけvalue_to_decimalです。

ActiveRecord::ConnectionAdapters::PostgreSQLColumn次に、 (http://rubydoc.info/docs/rails/ActiveRecord/ConnectionAdapters/PostgreSQLColumn )もあることを認識しましたが、有用なメソッドがないようです。

ありがとうございました!

0 投票する
2 に答える
3477 参照

mysql - ポリゴンにエラーがある場合に WKT から Ruby で RGeo ポリゴンを作成する方法

WKT 形式で保存されたポリゴンを使用して MySQL データベースを使用しています。データベース内の多くのポリゴンには重複したポイントがあります (たとえば、次の例では、ポイント -122.323502 47.600959 が 3 回繰り返されています)。

これらのポリゴンで RGeo::Cartesian::Factory.parse_wkt() を呼び出そうとすると、結果は nil になります。

ポリゴン データを変更せずに、これらのポリゴンから RGeo オブジェクトを作成するにはどうすればよいですか。

0 投票する
1 に答える
1655 参照

ruby-on-rails - ファイル名を結合するときに「Errno::ENOENT: No such file or directory」と表示されるのはなぜですか?

Rails アプリケーションで開こうとしているファイルがあります。なぜかRubyがファイル名を分割しています。

例えば:

出力されるのは/lib/tasks/filename/shpです。

次に、次のコマンドを実行します。

エラーメッセージが表示されます:

filenameファイルがと.shp?に分割されているようです。

0 投票する
1 に答える
363 参照

ruby-on-rails - activerecord (rails) migration -- 列のオプション値を設定する

rgeo一部の列の宝石と組み合わせて宝石を使用してactiverecord-postgis-adapterおり、既存の列のオプションを変更したい

このように表示させてください。schema.rb ファイルで、現在、これは列を記録している行です。

したがって、この列には、postgis によって認識されるいくつかの特別なメタタグ オプションがあります。

:shapeこれらの列のデフォルトの srid を から0に設定したいと思います4326。これらのポイントの値を個別に設定できるようにするために、これを移行で行うか、さらに良い方法で行いたいと思います。現在、RGeo ドキュメントには :srid タグのセッター メソッドは見つかりませんでした。リーダーのみです。したがって、私の最善の策は移行だと考えています。

私はこれを試しました:

しかし、このエラーが発生しました:

SQL の文字列を実行することでこの問題を解決できることはわかっていますが、アクティブ レコードが同様の方法を提供することを望んでいます。