[OSM-Devserver] PostGIS nächstes Objekt
Tobias Wendorff
tobias.wendorff at tu-dortmund.de
Fr Nov 12 18:57:45 CET 2010
Am 12.11.2010 17:56, schrieb Alexander Matheisen:
> ST_Distance_Sphere brauche ich, weil ich die Entfernung in Metern haben
> will.
Achso, Du zeigst die Entfernung an? Ich hab's damals einfach
mit dem Mercator-Verzerrungsfaktor korrigiert. War irgendwas
mit COS ... müsste ic hmal nachschauen.
> 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) ORDER BY distance) as blubb ORDER BY distance
> LIMIT 2;
>
> kommt folgende Fehlermeldung:
> ERROR:SELECT DISTINCT ON expressions must match initial ORDER BY
> expressions
Hier klappt's so:
SELECT DISTINCT ON (nameH)
h.osm_id,
h.tags->'name' AS nameH,
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)
ORDER BY nameH, distance