0

Ruby/Rails で PostGIS を使用しており、郡内の土地区画を検索する単純なボックスのようなポリゴンを作成しました。st_overlaps ツールはこれまでも機能しており、今回も機能しています。

そこで、その下にある区画 (結局のところ、複数のポリゴン) を検索するためにポリゴンを作成しました。

factory = RGeo::Cartesian.factory
coords = [[1554780, 1101102], [1561921, 1062647], [1634713, 1097531], [1630867, 1140657]]
points = coords.map { |pair| RGeo::WKRep::WKTParser.new.parse("POINT (#{pair.first} #{pair.last})") }
ring = factory.linear_ring(points)
polygon = factory.polygon(ring)

アクティブ レコード コールを実行した後:

Parcel.where{st_overlaps(:parcel_multipolygon, polygon)}

157件の結果が得られました。予想よりはるかに少ない。私のカスタムスクリプトを使用して、それらをkmlファイルにエクスポートしました。近日中にアップしますのでご覧ください。

Google Earth に読み込まれた kml に表示されるのは、検索用に作成したパラメーター ポリゴンの外側のリングに明確に収まる領域 (ポリゴン) を示す区画を示すピンの平行四辺形です。これらの目に見えない線に沿って非常に多くの区画が明確で明確な形状になっています。形状の中央にピンがないという事実は、検索結果が区画のマルチポリゴンと外側のエッジ (LinearRing ) 検索ポリゴンの。

のドキュメントを読み直した結果、st_overlapsここで何が問題になっているように思われるのか、私は戸惑いました。

kmz エクスポートを表示するためのリンクを次に示します。(座標は、エクスポート前に地理座標に変換されます)。ブラウザで表示できます。検索ポリゴン自体は含まれていませんが、外側のリングがどこにあるかを簡単に確認でき ます https://docs.google.com/file/d/0B5inC0VAuhH1TXdTbWQ2RngxZk0/edit?usp=sharing

4

1 に答える 1

1

期待通りの挙動をしていると思います。St_overlaps は、実際に互いの上にある機能を提供します。ポリゴン内のすべての機能が必要な場合は、 を試してくださいST_Intersects

于 2013-08-16T01:38:42.773 に答える