Blame


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"
4 28994509 2004-04-21 devnull
5 28994509 2004-04-21 devnull static int
6 28994509 2004-04-21 devnull Xmercator(struct place *place, double *x, double *y)
7 28994509 2004-04-21 devnull {
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);
13 28994509 2004-04-21 devnull }
14 28994509 2004-04-21 devnull
15 28994509 2004-04-21 devnull proj
16 28994509 2004-04-21 devnull mercator(void)
17 28994509 2004-04-21 devnull {
18 28994509 2004-04-21 devnull return(Xmercator);
19 28994509 2004-04-21 devnull }
20 28994509 2004-04-21 devnull
21 28994509 2004-04-21 devnull static double ecc = ECC;
22 28994509 2004-04-21 devnull
23 28994509 2004-04-21 devnull static int
24 28994509 2004-04-21 devnull Xspmercator(struct place *place, double *x, double *y)
25 28994509 2004-04-21 devnull {
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);
30 28994509 2004-04-21 devnull }
31 28994509 2004-04-21 devnull
32 28994509 2004-04-21 devnull proj
33 28994509 2004-04-21 devnull sp_mercator(void)
34 28994509 2004-04-21 devnull {
35 28994509 2004-04-21 devnull return(Xspmercator);
36 28994509 2004-04-21 devnull }