12345678910111213141516171819202122232425262728 |
- #include <u.h>
- #include <libc.h>
- #include "map.h"
- int
- Xpolyconic(struct place *place, double *x, double *y)
- {
- double r, alpha;
- double lat2, lon2;
- if(fabs(place->nlat.l) > .01) {
- r = place->nlat.c / place->nlat.s;
- alpha = place->wlon.l * place->nlat.s;
- *y = place->nlat.l + r*(1 - cos(alpha));
- *x = - r*sin(alpha);
- } else {
- lon2 = place->wlon.l * place->wlon.l;
- lat2 = place->nlat.l * place->nlat.l;
- *y = place->nlat.l * (1+(lon2/2)*(1-(8+lon2)*lat2/12));
- *x = - place->wlon.l * (1-lat2*(3+lon2)/6);
- }
- return(1);
- }
- proj
- polyconic(void)
- {
- return(Xpolyconic);
- }
|