[OSM-Devserver] PostGIS nächstes Objekt

Tobias Wendorff tobias.wendorff at tu-dortmund.de
Fr Nov 12 17:56:40 CET 2010


Am 12.11.2010 17:36, schrieb Alexander Matheisen:
> SELECT * FROM (SELECT DISTINCT ON (h.tags->'name') h.osm_id,
> h.tags->'name' AS name, ST_X(ST_Transform(h.way, 4326)),
> ST_Y(ST_Transform(h.way, 4326)),
> ST_Distance_Sphere(ST_Transform(s.way,4326), ST_Transform(h.way,4326))
> AS distance FROM planet_point AS s, planet_point AS h WHERE s.osm_id =
> 613578611 AND h.tags->'highway' = 'bus_stop' AND h.way&&
> ST_Buffer(s.way, 2000)) as blubb ORDER BY distance LIMIT 2;

Argh, wieso machst Du so unglaublich teure Abfragen mit
ST_Distance_Sphere & ST_Buffer und so vielen Transformationen?

> klappt es nun, nur dummerweise wird dann nur die weitere Bushaltestelle
> der beiden ausgegeben?!
> Irgendwie muss man scheinbar noch vor dem DISTINCT die Haltestellen nach
> Entfernung sortieren, aber wie?

Sortier' in der Subquery doch einfach nach Entfernung (kleinere zuerst).