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

Tobias Wendorff tobias.wendorff at uni-dortmund.de
Fr Jun 18 22:13:13 CEST 2010


Alexander Matheisen schrieb:
> SELECT ST_AsText(ST_Transform(st_centroid(way), 4326)), osm_id FROM
> planet_polygon WHERE (tags ? 'website') AND way && ST_IsValid(way) &&
> ST_Transform(...;

Ja, aber dadurch wird's noch mal langsamer.

Hast Du mal nachgedacht, die Mercator-Berechnung im PHP-Script
oder direkt beim Client im Javascript zu machen? Ich glaube,
das Durchlaufen von proj ist etwas langsamer.

Das sind jetzt aber alles nur kleine Optimierungsideen...

>> 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?

Das kommt auf Deinen Geschmack und das Verlangen der User an ;-)

>> 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.

Mach' in jedem Fall Debugging rein. Ein eigenes Logfile oder so.