3

こんにちは、質問があります: Postgis データベース内に Ne_latitude、NE_longitude、SW_latitude、SW_longitude を含むボックス (四角形) を挿入し、異なるボックス間の交差を取得するために INDEX を上に構築するにはどうすればよいですか?

前もって感謝します

4

1 に答える 1

5

ST_MakeEnvelopeを使用して、長方形のジオメトリを構築します。オーバーラップ演算子some_tableを使用して、 (ジオメトリ列geomを使用して)からバウンディング ボックスの交差を取得するために使用できます。&&

SELECT *
FROM some_table
WHERE geom && ST_MakeEnvelope(SW_longitude, SW_latitude, NE_longitude, NE_latitude, 4326);

長方形を に挿入するにはsome_table:

INSERT INTO some_table (geom)
VALUES (ST_MakeEnvelope(SW_longitude, SW_latitude, NE_longitude, NE_latitude, 4326));

列にsome_table空間インデックスがまだない場合は、作成しますgeom

CREATE INDEX ON some_table USING gist (geog);
于 2013-03-03T09:04:06.130 に答える