問題タブ [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.
postgis - PostGIS の st_overlaps メソッドは、検索しているポリゴンの外側を構成する LinearRing と重なる結果のみを返します
Ruby/Rails で PostGIS を使用しており、郡内の土地区画を検索する単純なボックスのようなポリゴンを作成しました。st_overlaps ツールはこれまでも機能しており、今回も機能しています。
そこで、その下にある区画 (結局のところ、複数のポリゴン) を検索するためにポリゴンを作成しました。
アクティブ レコード コールを実行した後:
157件の結果が得られました。予想よりはるかに少ない。私のカスタムスクリプトを使用して、それらをkmlファイルにエクスポートしました。近日中にアップしますのでご覧ください。
Google Earth に読み込まれた kml に表示されるのは、検索用に作成したパラメーター ポリゴンの外側のリングに明確に収まる領域 (ポリゴン) を示す区画を示すピンの平行四辺形です。これらの目に見えない線に沿って非常に多くの区画が明確で明確な形状になっています。形状の中央にピンがないという事実は、検索結果が区画のマルチポリゴンと外側のエッジ (LinearRing ) 検索ポリゴンの。
のドキュメントを読み直した結果、st_overlaps
ここで何が問題になっているように思われるのか、私は戸惑いました。
kmz エクスポートを表示するためのリンクを次に示します。(座標は、エクスポート前に地理座標に変換されます)。ブラウザで表示できます。検索ポリゴン自体は含まれていませんが、外側のリングがどこにあるかを簡単に確認でき ます https://docs.google.com/file/d/0B5inC0VAuhH1TXdTbWQ2RngxZk0/edit?usp=sharing
ruby-on-rails - Rails Mongoid geo_near 距離順ソート
私がやろうとしているのは、mongoid geo_near(または within_circle) max_distance の結果を距離でソートすることです。理由はわかりませんが、デフォルトではそうしません。
Rails gem ファイルに mongoid_geospatial、mongoid_spacial、rgeo があります。mongoid_spacial にこの機能があることは知っていますが、使用できず、gmaps4rails で問題が発生しました。
私はmongoid_geospatial(mongoidライブラリを使用する)を試していますが成功せず、これ以外のリソースを見つけることができませんでしたmongo を mongoid に変換する方法。
mongoid で geo_near または within_circle をソートした経験のある人はいますか? どんな助けでも大歓迎です。
私のコントローラーのコード
私のモデルのコード
-------------------------------------------------- ------------------------------
-------------------------------------------------- ------------------------------
質問を編集
私は成功せずに関連するほとんどすべてを試しました。mongo と mongoid geo_near のドキュメントを読んでください。保存場所[経度、緯度]順でコメントします。プロバイダーを保存するときと中心の場所の両方で、[lon, lat] と [lat, long] の両方を試しました。球状の geo_near と within_circle も試しました。まだ成功していません。Geo_near は、上の地図と下のリストに示されているように、間違った順序で結果を返します。見逃しているのに見つからないものがあるはずです。
赤い部分が「geo_near_distance」の出力結果で、リストはそれに従ってソートされていますが、地図で見ると間違っています。緑色の計算は、私が使用してきた jquery コードで、正しい距離を返します (コントローラーでは使用できません)。
私が見逃しているものがあるはずです。誰でもそれを見つけることができますか?
ここに私の最新のコードがあります:
プロバイダー.rb
Providers_controller
緑色の部分の JQuery
プロバイダのデータ
ruby-on-rails - 本番サーバーの Rgeo geom nil
ここの誰かが助けてくれることを願っている、本当に奇妙なバグがあります。Rails postgis データベースにシェープ ファイルをインポートしました。次の列が含まれます。
- 探す
- ソース
- 検索2
- 重複
- ジオム
geom 列には、RGeo MultiPolygon 座標が含まれています。
奇妙なことに、私のローカル Rails アプリケーションはすべてのレコード geom フィールドを問題なく読み取ることができますが、本番サーバーには geom フィールドに nil を持つレコードがいくつかあります。
どちらのアプリケーションも git にまったく同じコードがあり、まったく同じデータベースを参照しています。
2 つのアプリの唯一の違いは、本番環境が Ubuntu 12.04 で実行されているのに対し、私のローカルは OSX で実行されていることです。
問題の診断に役立つコード スニペットを次に示します。
config/database.yml
app/models/gazetteer.rb
Gemfile
他に役立つものが思いつく場合は、お知らせください。できるだけ早く提供します。
更新 1
そのため、両方のシステムに postgresql と postgis をインストールした方法に違いがあります。OSX (ローカル) では、必要なすべてのコンポーネントを含む opengeo ソフトウェア スイートをインストールしました。Ubuntu (本番) では、apt-get を使用して postgresql-9.3 をインストールしました。
ここのコメントのおかげで、本番サーバーに geos や gdal などをいくつかインストールしていないことに気付きました。両方をインストールしましたが、残念ながらまだ同じエラーが発生します。
更新 2
そこで、実稼働サーバーをローカル マシンと同じ環境に近づけて、問題が解決するかどうかを確認することにしました。postgres/postgis/geos の適切なインストールを削除し、Ubuntu opengeo ソフトウェア スイートをインストールしました。これは、ローカルマシンで使用しているものです。
残念ながら、これで問題は解決しませんでした。
その後、別のバージョンの Ruby を使用していることに気付きました。そこで、同じバージョン (ruby 2.0.0p247) を使用するように実稼働サーバーを更新しました。
それでもエラーは解決しませんでした。
私はまだこのバグに完全に当惑しています。これは、Rails、rgeo、または activerecord-postgis-adapter gem と関係があるようです。
アップデート 3
そのため、両方のシステムでジオメトリを作成するレコードに違いがあることに気付きました。データベースの最初のレコードを調べたところ、どちらも geom フィールドにジオメトリがありましたが、プラットフォーム間で Rgeo タイプが異なっていました。
ローカル サーバー (OSX)
RGeo::Geos::CAPIMultiPolygonImpl:0x3fc7af864fdc "マルチポリゴン ..."
本番サーバー (Ubuntu 12.04)
RGeo::Geographic::SphericalMultiPolygonImpl:0x1b07a4c "マルチポリゴン ..."
RGeo::Geographic オブジェクトを RGeo::Geos 座標に変換するのに失敗しているようです。