タグ付けされた質問 「st-distance」

2
ST_Distanceは空間クエリにインデックスを使用しません
最も単純なクエリでも、PostgreSQL 9.3.5でPostGIS 2.1を実行して空間インデックスを使用できません。データセット全体800万ポイント(ここから人口数グリッド)です。テーブルは次のように作成されます CREATE TABLE points ( population DOUBLE PRECISION NOT NULL, location GEOGRAPHY(4326, POINT) NOT NULL ) CREATE INDEX points_gix ON points USING GIST(location); クエリは取得するのと同じくらい簡単です SELECT SUM(population) FROM points WHERE ST_Distance( location, ST_GeographyFromText('SRID=4326; POINT(0 0)') ) < 1000 PostgreSQLは常にSeqスキャンを使用します。私は10000ポイントのサブセットを試しました-まだSeqスキャンです。何か案は?

1
PostGISを使用して2点を与えられた最も近い線を見つけますか?
line_positions行タイプの列を含むテーブルtがあります。2つのポイントを考えて、十分に近い(10 km未満)と、避けたいポイント(最小20km)に近すぎない最も近いラインを見つけます。現在使用しています SELECT t.* FROM path t WHERE ST_DWithin(ST_GeographyFromText('Point(69.835 22.596)'), t.line_positions, 10000, FALSE) AND ST_DWithin(ST_GeographyFromText('Point(69.856 22.519)'), t.line_positions, 10000, false) AND NOT ST_DWithin(ST_GeographyFromText('Point(-79.804 9.141)'), t.line_positions, 20000, false) ORDER BY ST_Distance(ST_GeographyFromText('Point(69.835 22.576)'), t.line_positions, false) + ST_Distance(ST_GeographyFromText('Point(69.856 22.519)'), t.line_positions, false) ASC LIMIT 1 ix_path_line_positionsline_positions列に要旨インデックスがあります。 それは動作しますが、3秒から30秒の間で、tの100,000行だけで遅くなります。 分析は与える説明: Limit (cost=9.95..9.95 rows=1 width=1432) (actual time=21729.253..21729.254 rows=1 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.