Breitengrad bzw. Latitude auf OSM Karte umrechnen

Hallo Forum,

ich habe eine OSM Welt-Karte aus PNG-Tiles erstellt und möchte gerne zur geographischen Ortsbestimmung eine Position mittels Breitengrad und Längengrad auf der Karte anzeigen.

Die OSM Karten liegen ja in der Mercator-Projektion vor. Laut meinem Verständniss und meinen Berechnungen müssten somit die Längengrade “normalisiert” sein bzw. Am Equator UND Nord-/Südpol jeweils einen Abstand von ~112,09 km haben.

Mein Problem ist nun die Berechnung der Breitengrade. Die OSM-Karten (bzw. meine Tiles) sind quadratisch. Eine Weltkarte aus 4x4 Tiles ergibt beispielsweise eine Weltkarte von 1024*1024 Pixeln wobei “links-oben” der Geo-Position +85,0 -180,0 und “rechts-unten” der Position -85,0 +180.0 entspricht.
Um nun eine Geo-Position auf solch einer Karte anzuzeigen, möchte ich die Position in Prozent von 0% bis 100% (links->rechts, oben->unten) umrechnen.

Die Normalisierung der Längengrade macht es einfach:
% Horizontal = (longitude+180.0) / 360.0

Bei dem Breitengrad beiße ich mir aber die Zähne aus…Spitzbergen sollte demnach auf ca. ~12,5% der Karte liegen…Schweden ~25%…Italien ~37,5%…Equator ~50%…und so weiter.

Falsch (ist nur linear):
% Vertikal = (latitude - 85.0)/-170.0

Falsch:
% Vertikal = cos(latitude * PI / 180) / 2.0

Falsch:
% Vertikal = cos(latitude * PI / 180) - cos(85 * PI / 180)) / (cos(0 * PI / 180) - cos(85 * PI / 180))

3 posts - 2 participants

Read full topic


Ce sujet de discussion accompagne la publication sur https://community.openstreetmap.org/t/breitengrad-bzw-latitude-auf-osm-karte-umrechnen/100053