2016-06-19 2 views
0

Я пытаюсь найти все круги, хранящиеся в базе данных (круги присутствуют во всем мире), которые пересекают или перекрывают данный круг. Я хранила круги, как это:Как получить все круги, которые пересекают данный круг в PostGIS?

CREATE TABLE circles(gid serial PRIMARY KEY, name varchar, code integer, the_geog geography(POLYGON,4326)); 

INSERT INTO circles (gid, name, code, the_geog) VALUES (1,"hello", 11,geometry(ST_Buffer(geography(ST_GeomFromText('POINT(48.732084 -3.459144)')), 1000))); 

Теперь, когда я пытаюсь выяснить все круги, которые пересекают данный круг, я получаю эту ошибку:

ERROR: Only lon/lat coordinate systems are supported in geography. 

Я м с использованием этого запроса для получения данных:

select * from circles where st_intersects (circles.the_geog,ST_Buffer(ST_Transform(ST_GeomFromText('POINT(-105.04428 39.74779)', 4326), 2877), 1500)); 

Может ли кто-нибудь сказать мне, что я делаю неправильно?

ответ

0

Я получил эту работу с помощью:

select * from circles where st_intersects (circles.the_geog,geometry(ST_Buffer(geography(ST_GeomFromText('POINT(13.28527 52.521711)')), 1000))); 
Смежные вопросы