[OSM-Devserver] PostGIS nächstes Objekt

Jochen Topf jochen at remote.org
Fr Nov 12 18:21:29 CET 2010


On Fri, Nov 12, 2010 at 05:46:36PM +0100, Alexander Matheisen wrote:
> > Mit
> > 
> > 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;
> > 
> > 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?
> 
> Nachtrag: Komischerweise wird nun doch die nähere Haltestelle
> ausgegeben. Entweder hab ich versehentlich was geändert oder falsch
> gemacht, oder ohne Sortierung liefert die DB das willkürlich aus. Mal
> sehen, ob sich das Verhalten irgendwie reproduzieren lässt...

Das ist normal. Wenn Du kein ORDER BY hast, dann kannst Du Dich auf die
Reihenfolge nicht verlassen.

Jochen
-- 
Jochen Topf  jochen at remote.org  http://www.remote.org/jochen/  +49-721-388298