Koordinaten der Tiles berechnen

Hallo, wie kann ich den Latitude Wert einer Tile aus dem y und zoom Wert berechnen? Für den Longitude Wert weiß ich es, glaube ich: lon=(360*x/2^zoom)-180 Aber wie rechne ich den y Wert zur Latitude um?

Hi, es soll angeblich mit mTempLat = Math.Atan(Math.Sinh(Math.PI - (Math.PI * (y + 0.5) / Math.Pow(2, z - 1))))*180/Math.PI; gehen, allerdings ist es bei mir immer off. Wenn ich 10968 als y nehme erhalte ich 51.01029 anstelle von 50.88763. Verwende ich http://almien.co.uk/OSM/Tools/Coord/?x=16941&y=10986&z=15 dann erhalte ich 50.885639 was auch nicht ganz stimmt.

im SVN ist (perl-)Code, wie tiles@home (osmarender) projiziert: http://svn.openstreetmap.org/applications/rendering/tilesAtHome/tahproject.pm Das Zentrum eines Tiles ist auch nicht der arithmetische Mittelwert aus Oberkante und Unterkante, sondern die Unterkante des oberen Subtiles aus dem nächsten Zoom (Y*2,Z+1) Je größer der Zoom, desto mehr nähern sich die beiden an. Der größte Fehler passiert bei etwa 45°N/S. im Zoombereich von z14-18 ist der Fehler kleiner als 1 Pixel (evtl. schon vorher, nicht getestet).

Ich hatte vergessen zu posten das es mittlerweile ziemlich genau klappt. Für Tile Center Lat : mTempLat = Math.Atan(Math.Sinh(Math.PI - (Math.PI * (y + 0.5) / Math.Pow(2, z - 1)))) * 180 / Math.PI; Für Tile Center Lon: mTempLon = 360 * ((x + 0.5) / Math.Pow(2, z)) - 180; Top Lat: mTopLat = 360 * Math.Atan(Math.Sinh(Math.PI * (1 - 2 * (y * (1 / Math.Pow(2, z)))))) / (2 * Math.PI); Bottom Lat y1 = (y * (1 / Math.Pow(2, z))) + (1 / Math.Pow(2, z)); mBottomLat = 360 * Math.Atan(Math.Sinh(Math.PI * (1 - 2 * y1)))/(2*Math.PI); LeftLon: mLeftLon = -180 + x * (360 / Math.Pow(2, z)); RightLon mRightLon = (-180 + x * (360 / Math.Pow(2, z))) + (360 / Math.Pow(2, z)); Damit lassen sich die 5 Punkte eine Kachel ermitteln

http://almien.co.uk/OSM/Tools/Coord/ Da kann man sich die Koordinaten hin und her rechnen lassen. Gruss der wartburgritter

Leider geht der Link nicht mehr :frowning:

Wo kann ich die Umrechnungen noch finden?

Gruß Andi

Habs gerade selber gefunden: http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames

Gruß Andi