/* utm.c cl /AL utmtest.c utm */ #include #include int P; int zone_number(double); char zone_letter(double); void ull_xy_e(double *,double *,double,double,int); void uxy_ll_e(int,double,double,double *,double *,int); int set_p(void); main() { int i,j,k,zone; char ans; double x,y,lat,lon; P=set_p(); do { printf(" 1 -- x/y to lat/lon\n"); printf(" 2 -- lat/lon to x/y\n"); printf(" x -- exit program\n"); ans=getch(); if(ans=='1') { printf("Give x and y. "); scanf("%lf%lf",&x,&y); printf("Give zone number. "); scanf("%d",&zone); uxy_ll_e(zone,x,y,&lat,&lon,P); printf("lat = %lf lon = %lf\n",lat,lon); ull_xy_e(&x,&y,lat,lon,P); printf("x = %lf y = %lf\n",x,y); } if(ans=='2') { printf("Give latitude and longitude. "); scanf("%lf%lf",&lat,&lon); zone=zone_number(lon); printf("Grid zone number = %2d%c ", zone,zone_letter(lat)); ull_xy_e(&x,&y,lat,lon,P); printf("x = %lf y = %lf\n",x,y); uxy_ll_e(zone,x,y,&lat,&lon,P); printf("lat = %lf lon = %lf\n",lat,lon); } }while(ans!='x'); }