1 #include "map.h" 2 3 int 4 Xpolyconic(struct place *place, double *x, double *y) 5 { 6 double r, alpha; 7 double lat2, lon2; 8 if(fabs(place->nlat.l) > .01) { 9 r = place->nlat.c / place->nlat.s; 10 alpha = place->wlon.l * place->nlat.s; 11 *y = place->nlat.l + r*(1 - cos(alpha)); 12 *x = - r*sin(alpha); 13 } else { 14 lon2 = place->wlon.l * place->wlon.l; 15 lat2 = place->nlat.l * place->nlat.l; 16 *y = place->nlat.l * (1+(lon2/2)*(1-(8+lon2)*lat2/12)); 17 *x = - place->wlon.l * (1-lat2*(3+lon2)/6); 18 } 19 return(1); 20 } 21 22 proj 23 polyconic(void) 24 { 25 return(Xpolyconic); 26 } 27