[OSM-Devserver] Hilfe bei DB-Abfrage // Nachtrag

Alexander Matheisen AlexanderMatheisen at ish.de
Fr Jun 18 21:54:34 CEST 2010


> Ich möchte unbedingt nochmals darauf hinweisen, dass Du IsValid
> prüfen oder auf einen möglicherweise erzeugten Trigger
> zurückgreifen solltest.

Also so?:
SELECT ST_AsText(ST_Transform(st_centroid(way), 4326)), osm_id FROM
planet_polygon WHERE (tags ? 'website') AND way && ST_IsValid(way) &&
ST_Transform(...;


> GEOS stürzt gerne mal ab und reißt die ganze PSQL mit in den
> Abgrund. Plötzlich hängt sie dann im Maintenance und alles ist
> noch langsamer... Denk auch dran, dass ST_Centroid nicht unbedingt
> da liegt, wo Du es hinhaben willst.

Also besser ST_PointOnSurface nehmen, weil die Punkte dann nicht außerhalb der Fläche liegen?

> Zum PHP-Code:
> Da die Abfragen übrigens immer gleich sind, könnte man das Script
> noch deutlich vereinfachen und z.B. sprintf() nutzen. Wird dann
> jedenfalls übersichtlicher und die Wiederholungen fliegen raus.

Das werde ich dann noch machen, erstmal soll es fehlerfrei funktionieren
und möglichst schnelle DB-Queries machen.


Alex