x

Koordinate aus Pixelpostion errechnen


Geschrieben von AnTh (Gast) am 27. Oktober 2010 14:19:54: [flux]

Hallo zusammen,

ich programmiere gerade an einem kleinen Tool das Tiles laden und anzeigen kann. Das Funktioniert auch ganz gut, ich kann eine Koordinate angeben, die entsprechenden Tils dazu laden und Anzeigen. Zoomen in dieser Karte ist auch kein Problem. Mein Problem ist, das ich die Karte auch gerne verschieben würde, ich weiß aber leider nie um wie viel.

Erst einmal müsste ich dazu auf einer Pixelposition eine Koordinate ermitteln und daran scheitere ich gerade. Ich habe also einen Pixelwert aber wie ermittle ich daraus eine Koordinate?
Wenn ich dazu in der lage wäre, könnte ich die verschiebung in lon(x) und lat(y) ermitteln und damit die entsprechenden Tiles laden.
Für ein paar Anregungen oder links wäre ich Dankbar!

Hier mal ein paar Codestücke(java) mit denen ich bisher Arbeite:
So ermittle ich die Tiles:
int xtile = (int) Math.floor((lon + 180) / 360 * (1 << zoom));
int ytile = (int) Math.floor((1 - Math.log(Math.tan(Math.toRadians(lat)) + 1 / Math.cos(Math.toRadians(lat)))/ Math.PI) / 2 * (1 << zoom));

Hiermit lade ich die entsprechende Tiles:
new URL("http://tile.openstreetmap.org/" + z + "/" + x + "/" + y + ".png");


Antworten: