Hi,
ich programmiere gerade mal eine kleine Lösung für die Umkreissuche von Kundendaten und deren Darstellung mit der openstreetmap.
Nun muss ich für die Darstellung von POIs die Koordinaten in die Mercatorprojektion umrechnen. Das ist auch mit mehreren Beispielen so im WIKI beschrieben. Nur wenn ich das nachvollziehen will, habe ich bei der Breite einen "Offset" von ca. 10km nach Süden, dh. mein POI wird 10km weiter südlich angezeigt. Mein Code lautet (1:1 aus der WIKI übernommen und an REALBasic (d.h. VB) angepasst):
Hat irgend jemand eine Idee, warum das so ist und mache ich mit meiner "quick & dirty" Lösung was grundsätzliches falsch? PI ist ausreichend genau definiert und wir befinden uns auf ca. dem 52. Breitengrad.
Gruß Braeu
ich programmiere gerade mal eine kleine Lösung für die Umkreissuche von Kundendaten und deren Darstellung mit der openstreetmap.
Nun muss ich für die Darstellung von POIs die Koordinaten in die Mercatorprojektion umrechnen. Das ist auch mit mehreren Beispielen so im WIKI beschrieben. Nur wenn ich das nachvollziehen will, habe ich bei der Breite einen "Offset" von ca. 10km nach Süden, dh. mein POI wird 10km weiter südlich angezeigt. Mein Code lautet (1:1 aus der WIKI übernommen und an REALBasic (d.h. VB) angepasst):
Code:
if (me.lat > 89.5) then
t_lat = 89.5
end if
if (me.lat < -89.5) then
t_lat = -89.5
end if
temp = 6356752.3142/6378137.000
eccent = sqrt(1.0 - (temp * temp))
phi=me.lat*me.pi/180
sinphi = sin(phi)
con = eccent * sinphi
com = 0.5 * eccent
con = pow(((1.0-con)/(1.0+con)), com)
ts = tan(0.5 * ((me.pi*0.5) - phi))/con
//return 0 - 6388137.000 * log(ts) //liegt ca. 10km zu weit südlich daneben
return (0-6388137* log(ts))+22000 //eigentlich falsch!
Hat irgend jemand eine Idee, warum das so ist und mache ich mit meiner "quick & dirty" Lösung was grundsätzliches falsch? PI ist ausreichend genau definiert und wir befinden uns auf ca. dem 52. Breitengrad.
Gruß Braeu