2

PostGIS と Postgresql を使い始めたばかりで、ほとんどすべてがスムーズに実行されています。どの MULTIPOLYGON sa POINT があるかを見つけようとすると、行き詰まります。データベース内の MULTIPOLYGON データ型の 1 つだけの形状内にあると確信している 2 つの別個のポイントがあります。それらは同じポイントではなく、異なる形式です。

例 1、それがどのような形式かはわかりませんが、クエリは期待どおりに真の値を返します (データセットを QGIS にロードし、内部のポイントにカーソルを合わせると、この値が見つかりました)。

2 番目の例では、見ている図形の内側にある住所をジオコーディングしました。ただし、クエリの結果として false 値が返されます。

shp2pgsql を使用して、シェープ ファイルから直接データベースにデータをロードしました。シェープ ファイルの SRID は 4269 です (GeomFromText 呼び出し中に SRID を指定しながら以下のクエリを実行しようとしましたが、結果は同じです)。

2 つの座標セットの違いは何ですか? 緯度/経度の値を使用する POINTS を使用して交差テストを実行するには、どうすればよいですか?

1.) SELECT ST_Intersects((gid=37 の wardstable から the_geom を選択), ST_GeomFromText('POINT(1172539 1924462)'));

2.) SELECT ST_Intersects((gid=37 の wardstable から the_geom を選択), ST_GeomFromText('POINT(-87.6547884 41.96367)'));

ありがとう!

4

1 に答える 1

1

ST_Intersects などの空間操作を実行する場合、Multipolygons と Points データセットの両方が同じ投影法 (SRID) にある必要があります。2 番目の例では、ポイントの座標は緯度/経度 (4326) です。ST_Transformを使用して、それらを 4269 に変換する必要があります。

SELECT ST_Intersects((select the_geom from wardstable where gid=37), ST_Transform(ST_GeomFromText('POINT(-87.6547884 41.96367)',4326),4269));

編集: ST_GeomFromText に SRID パラメータがありませんでした。

于 2010-07-04T10:54:19.133 に答える