1 28994509 2004-04-21 devnull #include <u.h>
2 28994509 2004-04-21 devnull #include <libc.h>
3 28994509 2004-04-21 devnull #include "map.h"
5 28994509 2004-04-21 devnull static int
6 28994509 2004-04-21 devnull Xmercator(struct place *place, double *x, double *y)
8 28994509 2004-04-21 devnull if(fabs(place->nlat.l) > 80.*RAD)
9 28994509 2004-04-21 devnull return(-1);
10 28994509 2004-04-21 devnull *x = -place->wlon.l;
11 28994509 2004-04-21 devnull *y = 0.5*log((1+place->nlat.s)/(1-place->nlat.s));
12 28994509 2004-04-21 devnull return(1);
16 28994509 2004-04-21 devnull mercator(void)
18 28994509 2004-04-21 devnull return(Xmercator);
21 28994509 2004-04-21 devnull static double ecc = ECC;
23 28994509 2004-04-21 devnull static int
24 28994509 2004-04-21 devnull Xspmercator(struct place *place, double *x, double *y)
26 28994509 2004-04-21 devnull if(Xmercator(place,x,y) < 0)
27 28994509 2004-04-21 devnull return(-1);
28 28994509 2004-04-21 devnull *y += 0.5*ecc*log((1-ecc*place->nlat.s)/(1+ecc*place->nlat.s));
29 28994509 2004-04-21 devnull return(1);
33 28994509 2004-04-21 devnull sp_mercator(void)
35 28994509 2004-04-21 devnull return(Xspmercator);