[Mapnik-de] Rendern von Sportplätzen in Äquatornähe

Max Berger max at dianacht.de
So Jun 1 13:25:32 CEST 2014


Tag zusammen,

im Forum gab es Verwunderung, dass die Spielfelder in Brasilien so
selten mit Linien gerendert werden [1].

Neben anderen Theorien, warum das so ist, scheint die richtigste zu
sein, dass die Mercatorprojektion schuld ist.

Zur Beurteilung, ob ein Platz ein richtiger Fussballplatz ist, werden
die Längen der Kanten herangezogen. Dabe wird st_distance() verwendet,
das die Längen in den Einheiten der Projektion zurückgibt. Diese Längen
bilden dann die Regeln fürs Rendern der Linien.

z.B. wird dort verlangt, dass ein Platz 130 Einheiten lang ist. Das sind
am 50. Breitengrad ca. 85 Meter. Bei 20° müsste ein Platz 122 Meter lang
sein, um das Kriterium zu erfüllen.

Eine Lösung wäre, die Sportplätze vor der Berechnung z.B. in EPSG 4326
zu transformieren und dann bei den Renderregeln alles auf "echte Meter"
statt "Mercatoreinheiten" anzupassen. Alternativ könnte man vielleicht
auch einfach einen Faktor "cos(breitengrad)/cos(50°)" vor alle Längen
schreiben, dann müsste man die Faustformeln für Sportplatzlängen nicht
verändern.

Ich hab leider zu wenig Ahnung, was einfacher ist und was weniger
Seiteneffekte erzeugt. Vielleicht könnte sich jemand mit Ahnung das mal
ansehen...

viele Grüße, Max


[1] http://forum.openstreetmap.org/viewtopic.php?id=25696