GeoInfo mit Java: Mercator Projektion

Guadrion

Mitglied
Hi und zwar habe ich folgendes Problem!
Ich habe eine Karte mit fester Pixelanzahl. Dann habe ich desweiteren Konstanten Latitudes (doubles). Ich möchte nun mithilfe der Mercator Projektion Punkte auf der Karte einzeichnen.
Dazu habe ich eine Funktion geschrieben, die sich an die Definition von wikipedia hält:
Code:
private double mercator(double val) {
		//return Math.log(Math.tan((Math.PI / 4) + (val / 2)));
		//return 1 / Math.sinh(Math.tan(val));
		//return 1 / Math.tanh(Math.sin(val));
	}

allerdings bekomm ich je nachdem welches return statement ich benutz völlig andere werte:
North = 55.77657301866769
South = 31.95216223802496


return Math.log(Math.tan((Math.PI / 4) + (val / 2))) erzeugt (South-->North)
0.5639518931280593-->-0.8626832132213476

return 1 / Math.sinh(Math.tan(val)); erzeugt
1.5874643769142531-->-0.8809936951846704

return 1 / Math.tanh(Math.sin(val)); erzeugt
2.124725609101043-->-1.658743138981269



Mich verwundert allerdings auch dass er mir für südliche Punkte +-Werte gibt und für Nördliche Punkte - - Werte. Hab das so verstanden, dass die Funktion y-Werte liefert für die Projektion auf eine beliebige Karte.

Hat jemand von Euch eine Ahnung, weshalb er sooo verschiedene Werte zurückliefert und weshalb für nördlichere Punkte negative y Koordinaten angegeben werden?
 
Hallo,

musst du hier in Rad oder Grad rechnen? Die Winkelfunktionen von Math betrachten die Eingabe als Rad. Fehlt dir vielleicht ein Math.toRadians?

Gruß Tom
 

Neue Beiträge

Zurück