Danke fürs Lob, schön dass es gefällt.
Ja… Vorberechnen oder nicht ist eine schwere Entscheidung. Ich habe entschieden indem ich mich auf den Standpunkt stelle, dass ich mit meiner Ausstattung ordentliche Leistung eh nicht schaffe und deshalb Performance für mich einfach kein Kriterium darstellt. Wenn der Rechner sich des nachts ein paar Stunden mit sich selbst beschäftigt, ist das ok, solange er die Updates einer Woche innerhalb einer Woche einspielen kann, Kacheln nicht älter als ein paar Wochen werden lässt und er nebenbei noch mich und 100 andere Nutzer pro Tag halbwegs bedienen kann.
Der Job fürs Präprozessieren läuft einmal täglich gleich nach dem mitternächtlichen Update der Datenbank. Während er läuft werden keine Diffs eingespielt, ansonsten wird alle paar Stunden geupdatet. Es kann also sein, dass man um 23 Uhr schon die Fläche eines neu gemalten Hauses sieht, aber erst einen Tag später das Icon für die Kneipe darin zu sehen wäre. Ein paar Kleinigkeiten ändere ich auch gleich im Anschluss an den Update zwischendurch. Z.B. brauche ich Zahlen zum Rechnen und Vergleichen in “ele” und muss alles andere (“c.a. 500 Meter”) schnell korrigieren oder löschen, bevor sich der Renderer daran verschluckt.
Alle POIs werden in eine eigene Tabelle neu geschrieben oder zumindest die alten POIs geupdatet. Ich hab auch mal mit “nur ansehen was sich geändert hat” anhand von diffs experimentiert, aber das ging schief: Ein POI kann bei auch aus einer Fläche entstehen. Wenn die Ecken eines Hauses verschoben werden, stehen im diff die Ecken, aber nicht der Way des Hauses.
Danach werden auf die POIs ein paar Skripte losgelassen (z.B. das fürs Pässedrehen. Nicht wundern, da steht dann “nature=mountain_pass”, wo in OSM “mountain_pass=yes” steht und den Winkel stecke ich ins Feld population, weil das war da und wird nicht gebraucht).
Wenn ich mir allerdings ansehe, wie andere Karten ganz ohne Vorverarbeitung Fussballplätze mit korrekt gedrehten und skalierten Linien bemalen, denke ich mir, ich könnte mich auch mal mit PL/pgSQL anfreunden, auch wenns schwer fällt. Da könnte man sowas wie Pässerotieren vielleicht auch erledigen.
Franken: Mal sehn in welche Richtung ich expandiere, vielleicht beim nächsten Serverumzug…
Grüße, Max