問題タブ [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.
ruby-on-rails - PostGIS、RGeo、Spatial Adapter を使用した最も近い順で並べ替える
Order by Nearest - PostGIS、GeoRuby、spatial_adapter で見つけた回答が解決策を提供できなかったため、この質問をしています。特定のレコードの lonlat に最も近いn 個のレコードを返すことができるコントローラー メソッドを作成しようとしています。クエリ対象のレコードは同じテーブルからのものです。これを完全に SQL で行っていた場合、この概念はそれほど大きなストレッチではありません。リンクされた例でそれは明らかであり、以下は私が結果を得た特定のケースです:
私の問題は、これを ActiveRecord で機能させることです。@dc10 の応答に触発されたメソッドを使用していますが、RGeo メソッドまたはダイレクト SQL のいずれかを使用して、機能するクエリを作成できません。これが私がこれまでに持っているものです:
この試行からの応答は次のとおりです。
ActiveRecord::StatementInvalid: PG::SyntaxError: エラー: "LIMIT" 10:29:50 rails.1 付近で構文エラーが発生しました LINE 1: ...lonlat, ST_PointFromText("#{unit.lonlat.as_text)}")リミット $1
Railsで動作するように、この作業クエリをまとめる方法について、誰かが私を正しい軌道に乗せることができますか?
ruby-on-rails-4 - Rgeo、activerecord-postgis-adapter が point 型の属性の SQL ステートメントを起動しない
したがって、Rails 4 アプリの db.yml ファイルを正しくセットアップして実行rgeo
しています。activerecord-postgis-adapter
しかし、ActiveRecord モデルの属性を次のように設定すると:
そして、それが起動するSQL INSERTステートメントを確認してください。INSERTに含まれませんgeom
<
INSERT INTO "places" ("name", "some_attr".....
-挿入されるgeom属性はありません。
誰かがこれを以前に見たことがあり、問題が何であるかを知っている場合は、助けてください!
r - 境界内の R ポリゴン
リーフレット マップの境界内にあるすべてのポリゴンを取得しようとしています。リーフレットについて気にする必要はありません。問題は、rgeos またはその他の方法 (または主に正しい機能) についてです。さまざまな方法を試しましたが、形状が境界と交差する場合は問題なく機能しますが、境界内にある形状を取得できません (境界に触れていません)。
もちろん、この例を再現することはできませんが、一般的に BB は非常に小さく、どのサブゾーンよりもはるかに小さく、テスト目的のみです。もちろん、より大きなBBを作成すると、いくつかのサブゾーンがキャッチされます.小さなものは確かにそれらの1つに含まれています. 再現可能な例に翻訳すると、ロンドンにズームインすると、何にも交差しないため、「イングランド」を取得できません。rgdal(gIntersection、gIntersects、gCovers、gCrosses、gOverlaps、gWithin、overGeoGeo、gContains、およびおそらく他のいくつかのもの)とラスター(クロップ)を成功させずに試しました。私の目的は、マップ ボックス内に表示されるサブゾーン (空間データフレームまたはデータフレーム) のサブセットを取得することです。私が間違っていることは何ですか?または単にそれを行う方法は?
再現できるようにするため: ここのシェープファイルhttp://thematicmapping.org/downloads/TM_WORLD_BORDERS_SIMPL-0.3.zip
上の BB はロンドンのどこかにある小さな長方形です - bb 内にある可能性のある world.map レコードを見つける方法 - それを横切るか、完全に含まれています (ここでは英国のみですが、 BBはヨーロッパサイズ)
編集:適切なポリゴンではなくマルチラインを含むシェープファイルに問題がありました、ありがとう
ruby-on-rails - ポリゴンの「含む」およびジオメトリに対するその他の操作はサポートされていません
私はpostgisとrgeoにまったく慣れていません。私は間違った方法で物事に取り組んでいる可能性があると思いますが、いくつかの操作、特に包含と範囲内が球ベースのオブジェクトでは不可能であることを知って少し驚いています。
郵便番号などに基づいてグループ化したい地理的に分散したオブジェクトがたくさんあります。これらのグループごとに境界があり、オブジェクトがその境界内にあるかどうかを確認し、ある境界が別の境界内にあるかどうかも確認したいと考えています。Rails を使用しています。これは、コレクション モデルのセットアップに使用される移行です。
現在、境界は Google リバース ジオコード ルックアップから取得されています。北東と南西のバウンディング ボックスの座標は、オブジェクトの作成時にこのメソッドに渡されます。
すべてが期待どおりに動作していることを確認するために、いくつかの仕様を作成しました。単純な距離ベースのテストはすべて期待どおりに合格しますが、境界機能のテストに使用されるテストには問題があります。私は次のことに遭遇します
次のようなクエリを実行しようとすると(少しばかげていることはわかっています)
またはrgeoオブジェクトを直接使用しようとすると
私は得る
掘り下げてみると、このrgeoの問題と、これらの操作が球形のファクトリベースのオブジェクトではサポートされていないという他の証拠が見つかりました
ちょっと思ったんです;
- これは間違いないか
- 移行で説明した方法で境界とオブジェクトの位置をモデル化することは、私には理にかなっているように思えますが、それについては間違っていると思いますか?
- postgis、rgeo、およびアクティブなレコード アダプターを使用して、多数のポイントがポリゴン内にあるかどうかを調べるにはどうすればよいですか?
- あるポリゴンが別のポリゴンの中にあるかどうかを確認することはできますか?
編集:
私は傾斜の提案をフォローアップし、データベースで直接いくつかのクエリを実行しました。まず、セットアップを確認するだけです
また、いくつかのクエリを実行しました。
したがって、含まれていると推測すると、地域では機能しません。私は周りを掘り下げて、st_coversを見つけました
latlng が境界の中心点であるため、これは本当に驚くべきことです。私はかなり混乱していて、かなりばかげたことをしていると確信しています。どんな助けでも大歓迎です
ruby-on-rails - google.maps.Data.MultiPolygonをpostgresデータベースのジオメトリデータ型列にレールに保存する方法は?
私は Rails フレームワークの初心者なので、素朴な質問をお許しください。google.maps.Data.MultiPolygon
データベースに保存したいオブジェクトがフロントエンドにあります。テーブルは、ユーザーが検索するたびに新しいエントリを作成します。そこには、ユーザーが特定の検索でポリゴンを描画すると更新されるsearches
datatype の別の列を追加したさまざまな列が含まれています。そのため、 call:geometry
を使用しているデータベース内の検索エントリを更新する必要があります。オブジェクトをシリアル化できないため、put 呼び出しでオブジェクトput
全体を送信できません(この問題は、ここで直面している問題と同じです)。google.maps.Data.MultiPolygons
$.params()
そのため、位置オブジェクトの配列を送信する必要があります。この位置オブジェクトの配列がgeometry
更新関数でオブジェクトに直接変換される特定の形式はありますか? ruby での検索更新時に呼び出される update 関数は次のとおりです。
そして、search_params は次のとおりです。
何かうまくいき:drawn_polygons => RGeo::Geos::CAPIMultiPolygonImpl
ますか?存在する場合、どの形式の:drawn_polygons
オブジェクトを提供する必要がありますか?
また
を座標のリストとして取得し、更新関数内:drawn_polygons
で変更する必要がありますか? RGeo::Geos::CAPIMultiPolygonImpl
もしそうなら、それを行う方法は?
ruby-on-rails - Postgis に適合した Ruby on Rails アプリを Heroku デプロイ用にセットアップするには?
私は次のものを持っています:
宝石:
イニシャライザ: config/initializers/rgeo.rb
データベース設定: config/database.yml
heroku postgresql の postgis 拡張機能を有効にします。
データ モデルの移行:
ビルドパック:
しかし、私はまだ本番環境でエラーが発生します:
NoMethodError (nil:NilClass のメソッド「プロパティ」が未定義) ——— ログ ———</p>
——— heroku からのエラー ログ ———</p>
——— localhost からの成功ログ ———-
では、Heroku で postgis 対応の Rails アプリをセットアップするための正しい手順は何でしょうか?
ところで、アプリは localhost でスムーズに動作します。Herokuで整理できません。
ruby-on-rails - Heroku に GEOS をインストールする
Rails アプリ ( ruby 2.3.0、rails 4.2.6 ) を RGeo gem を使用する Herokuにデプロイしようとしていますが、RGeo gem が依存する基盤となる GEOS ライブラリをインストールできません ( https: //github.com/rgeo/rgeo#dependencies )。
Heroku 自身の指示によると、これはheroku-geo-buildpackを使用することで可能になるはずですが、機能していません。
BUILDPACK をアプリに追加:
ビルドプロセスの良さ:
テストの依存性:
ruby-on-rails - Rails / PostGIS / RGeo を使用した Google マップの地理データの保存
RGeo / Rails で Google マップの地理データを処理するDaniel Azuma のソリューションの実装に問題があります。
設定
ロケーション テーブル:
ロケーション クラス:
初期化子/rgeo.rb:
問題
それでは、Google マップの座標を含む geojson シェイプから新しい Location オブジェクトを作成します。
この時点で、すべての地理プロパティが適切に機能しています。
しかし、データベースを保存して再読み込みすると、何か問題が発生します。
両方のオブジェクトの投影されたジオメトリが同等であることを考えると、後者のunproject
操作が失敗する理由がわかりません。