2016-06-19 19 views
0

Ich versuche herauszufinden, alle Kreise in der Datenbank gespeichert (die Kreise sind auf der ganzen Welt vorhanden), die einen bestimmten Kreis schneiden oder überlappen. Ich habe die Kreise wie folgt gespeichert:Wie erhalten Sie alle Kreise, die einen bestimmten Kreis in PostGIS schneiden?

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))); 

Jetzt, wenn ich versuche, die Kreise alle, die einen bestimmten Kreis schneiden, um herauszufinden, erhalte ich diese Fehlermeldung:

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

I‘ m diese Abfrage verwenden, um die Daten zu erhalten:

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

Kann mir jemand sagen, was ich falsch mache?

Antwort

0

Ich habe diese Arbeit durch den Einsatz:

select * from circles where st_intersects (circles.the_geog,geometry(ST_Buffer(geography(ST_GeomFromText('POINT(13.28527 52.521711)')), 1000)));