一連の座標内にある点を見つける


9

PostGISデータベースがあり、ある領域(境界ボックス)内にあるポイントを見つけたいのですが。私は2セットの座標を持っています。そこから、ボックスを形成する4つのすべての長方形の点を取得できます(必要な場合)。問題の私のデータ列は「ポイント」という名前で、タイプもポイントです。

  • とにかく4つの座標セット(緯度/経度)を指定して、ボックス内にあるすべてのポイントを取得することはできますか?
  • または、2つのポイントを指定し、DBに長方形のコーナーを計算させ、そのポイントを返す

念のため、自分が何を達成したいのかはっきりしていません。ポイントの代わりに緯度と経度のフィールドがあった場合の 'vanilla' sqlと同等のものは次のようになります。

SELECT * FROM myTable where lat> xMin AND lat < xMax AND long > yMin and long < yMax

更新された編集:

アンダーダークの解決策を試しています。最初は、ST_MakePointコンストラクターがありません(今はあります)ので、非常によく似たエラーが発生します(別の文字についてのみ)。

SELECT * FROM myTable WHERE ST_Within(ST_MakePoint(point),GeometryFromText('POLYGON((75 20,80 30,90 22,85 10,75 20))',4326))

そして私はこのエラーを得ています:

ERROR:  function st_makepoint(point) does not exist
LINE 1: SELECT * FROM triples WHERE ST_Within(ST_MakePoint(point),Ge...
                                          ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.


********** Error **********

ERROR: function st_makepoint(point) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 39

編集:

短期的には、次の方法で解決できます。

SELECT * FROM triples WHERE box '((point1),(point2))' @> point

しかし、なぜ私はPostGIS関数のどれもが私のために機能していない理由を解明しなければなりません。


推奨される方法は、1か所のみに投稿することです。その場所が不適切またはうまくいかない場合は、簡単に移行できます。質問があるべき場所にGISがあるので、私は何もしません。しかし、SOのクロスポストを削除することをお勧めします。
whuber

1
@whuber ..完了。
アンクル

-GeometryFromText( 'POLYGON((75 20,80 30,90 22,85 10,75 20))'、4326)-selectは機能しますか?
ショーン

どういう意味かわかりません。私はあなたが言ったことのさまざまな異なるバリエーションを試してみましたが、それらはうまくいきませんでした
Ankur

「ポイント」欄には、何ST_MakePoint(ポイント)で、あなたの参照
アンダーダーク

回答:


9
SELECT * FROM myTable WHERE 
ST_Within(the_geom, GeometryFromText ('POLYGON((75 20,80 30,90 22,85 10,75 20))', 4326))

<-必要に応じて座標を置き換えます


申し訳ありません愚かな質問が、何である「the_geom」...午前私はMYTABLEクエリSELECT * FROMエイリアスになって、その値が「the_geom」になるんために
はAnkur

もちろん、検索対象の列です。私はそれをdb_columnまたはそのようなものと呼びますが、postgis docsはそうではないと考えています...それが何であるかを知っているとき、それは理にかなっています。
アンクル

1
これを実行すると、GeometryFromTextが存在しないというエラーが表示されます。私はpostgis 2.0を使用しています。st_geomfromtextも試しました。
ピカルド2014

@underdark多分私は間違っていますが、括弧が抜けているようです。
Davide Pastore、2015

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.