Der Farbe nach zu urteilen wird bei dem im Eingangspost verlinkten Stadion dem Tag surface=grass der Vorrang gegeben. Darum erscheint das Spielfeld als grüne Grasfläche und nicht als Fußballplatz.
Ich kann es mir nicht verkneifen: wahrscheinlich hat es in Brasilien weniger Nebel und die finden sich auf dem Fussballfeld auch ohne auf dem Navi eingezeichnete Linien zurecht.
Oder: In Brasilien ist sowieso jeder Platz ausreichender Grösse ein Fussballfeld, braucht also gar nicht als solches gekennzeichnet zu werden.
Etwas ernsthafter: Zu was dienen Karten: 1. Zum sich orientieren, 2. Um etwas (z.B. Eigentumsverhältnisse) zu registrieren. Bei beidem helfen die Linien des Fussballfeldes nicht, sie sind deshalb höchstens ein etwas zu gross geratenes Symbol für ein Fussballfeld und man kann durchaus der Meinung sein, dass die Linien verzichtbar sind.
Also im deutschen Stil spielen noch die Innenwinkel, die Längen der Seiten und die Gesamtfläche eine Rolle, alles in bestimmten Toleranzintervallen.
Wer es genauer wissen will kann ja im dt. Stil nach sports-soccer suchen. Die Vorlage dafür stammt aus dem französischen Stil, der schon in cartocss vorliegt.
“Profi”-Tipp: am besten einen Platz bei dem es funktioniert per Copy und Paste an den Zielort verfrachten (sofern passend natürlich!)
Ohne sport=* oder auf was spielst du an? Das würde mich sehr wundern, da pitch ja für sehr viele verschiedene Felder/Plätze steht. Tennis hat ja z.B. auch einen eigenen style.
Meine geometrische Vorstellungsfähigkeit ist gerade blockiert…
Könnte bitte jemand ohne Blockade mal im Stil ganz unten die Berechnung der Winkel dahingehend überprüfen, ob die auch mit negativen Breitengraden funktioniert?
Alternativ: Kennt jemand ein bemaltes Fußballfeld in Südafrika oder Australien? Vielleicht ist der Gegenbeweis leichter
Habs durchprobiert, 2 Felder, einmal links- und einmal rechtsdrehend in jedem Quadranten: Da werden 2 Winkel berechnet, angle_diff und angle. “angle_diff” ist richtig, damit wird ermittelt, ob das Ding ungefähr ein Rechteck ist. “angle” nimmt auf der Südhalbkugel merkwürdige Werte an, 270 z.B. Damit werden aber nur die Linien in die Ausrichtung des Spielfeldes gedreht, und ich kann mir nicht vorstellen, dass Mapnik mit “290° nach links drehen” Schwierigkeiten hätte.
Ich hab ein hübsch und ein weniger hübsch gerendertes gefunden. Allerdings geschätzt 20-30 unmarkierte. Hab allerdings nicht nachgesehen, ob da überall auch sport=* eingetragen ist.
Der Stil erkennt Fussballfelder unter anderem daran, dass der Winkel zwischen der ersten und der zweiten Linie ca. 90° beträgt. Dazu rechnet er mit st_azimuth die Winkel (a12 und a23) der beiden Linien gegen die Senkrechte aus, bildet die Differenz und nimmt dann den Betrag.
Bei einem Polygon aus (-2 -3) (-3 -2) (-2 -1) (-1 -2) geht das schief…
Die Winkel:
osm=> select degrees(st_azimuth(st_pointn(way2,1),st_pointn(way2,2))) as a12 , degrees(st_azimuth(st_pointn(way2,2),st_pointn(way2,3))) as a23
from (select ST_ExteriorRing('POLYGON((-2 -3,-3 -2,-2 -1,-1 -2,-2 -3))') as way2) as foo1;
a12 | a23
-----+-----
315 | 45
Der Betrag (die Codestücke hier sind so ziemlich das gleiche wie im deutschen Stil)
osm=> select abs(a12-a23) as angle_diff,(a12+a23+90)/2 as angle
from (select degrees(st_azimuth(st_pointn(way2,1),st_pointn(way2,2))) as a12 , degrees(st_azimuth(st_pointn(way2,2),st_pointn(way2,3))) as a23
from (select ST_ExteriorRing('POLYGON((-2 -3,-3 -2,-2 -1,-1 -2,-2 -3))') as way2) as foo1) as foo2;
angle_diff | angle
------------+-------
270 | 225
Als Bild:
Allerdings ist dieser Fehler überall drin, wenn man irgendwo anfängt, wo die beiden Linien links und rechts der Senkrechten liegen, auch auf der Nordhalbkugel. Gibt es irgendeinen Grund, warum die Linien in Südamerika häufiger so liegen als in Europa? Z.B. weil ST_ExteriorRing() immer näher bei der Nulllinie anfängt, oder weil osm2pgsql Flächen so importiert? Falls das nicht so ist, ist zwar ein potentieller Fehler, aber keine Erklärung gefunden
Mit einem angle_diff von 270 wird da erstmal nichts angezeigt, der Winkel muss lt. Bedingung im Stil im Wertebereich 86 bis 94 (einschl.) liegen. Vielleicht müsste man für Werte x > 180° entsprechend mit 360° - x rechnen?
Auf jeden Fall hört sich das nach einem neuen Trac-Ticket (http://trac.openstreetmap.fr) für Komponente “style osmfr” und später auch für den deutschen Stil an.