Pomogliście, dzięki!

Prosty wzór ale w sumie to miałem/mam z nim problem. Wychodzą mi jakieś cuda wianki. To co mi wychodzi mnożę sobie przez jakieś procenty i tak +/- jest okej. Zresztą napisałem sobie generator gdzie klikamy na punkt i możemy poprawić jego ustawienie na mapie a następnie zapisać.. (i tak to będzie potrzebne więc ogólnie jest okej)
Natomiast już tak w ramach mojej ciekawości, co tu jest źle?
'Warszawa' => array( 'n' => 52.259, 'e' => 21.020 ), 'Wrocław' => array( 'n' => 51.110, 'e' => 17.030 ), 'Jelenia Góra' => array( 'n' => 50.909, 'e' => 15.729 ), 'Łódź' => array( 'n' => 51.770, 'e' => 19.459 ), 'Gdańsk' => array( 'n' => 54.360, 'e' => 18.639 ), 'Częstochowa' => array( 'n' => 50.810, 'e' => 19.129 ), 'Bielsko Biała' => array( 'n' => 49.819, 'e' => 19
.049
), );
foreach( $data as $k => $v ){
$scaleConst = 600; // brane na oko...
// rozumiem ze maja byc radiany a nie stopnie
$e0 = ( 18.5 * pi() ) / 180; // południk 18.5 przechodzi przez srodek mapy
$e = ( $v['e'] * pi() ) / 180;
$n = ( $v['n'] * pi() ) / 180;
$x = $scaleConst * ( $e - $e0 );
$y = $scaleConst * log( tan( (pi()/4)+($n/2) ) );
$res[$k]['left'] = round( $x ); $res[$k]['top'] = round( $y ); }
@edit: Oczywiście być może ja czegoś kompletnie nie zrozumiałem, jeśli tak to proszę nie śmiać się za głośno ; ))