#include void opnpinc(int argc, char *argv[]); int prompt(char *str); void gparmd2(char *str, double *dv1, double *dv2); void gparmd(char *str, double *dv); void xtw84(double tlat, double tlon, double talt, double *wlat, double *wlon, double *walt); void clspin(); int main(int argc, char *argv[]) { double latd, latf, lond, lonf, tlat, tlon, talt, wlat, wlon, walt; int lat, lon; char cns, cew; opnpinc(argc, argv); printf("\nTOKYO to WGS84 Lat/Lon/Alt Conversion\n\n"); while (1) { latd = 99999.; latf = 0.; lond = 0.; lonf = 0.; talt = 0.; prompt (" TOKYO Latitude ? [deg. min.]\n"); gparmd2(" < Hit RETURN to Quit > ==> ", &latd,&latf); if (latd == 99999.) { fputc('\n',stderr); break; } gparmd2(" Longitude ? [deg. min.] ==> ", &lond,&lonf); gparmd (" Altitude ? [in meters] ==> ", &talt); tlat = latd*60.+latf; tlon = lond*60.+lonf; if (tlat < 0.) { cns = 'S'; tlat = -tlat; } else cns = 'N'; if (tlon < 0.) { cew = 'W'; tlon = -tlon; } else cew = 'E'; lat = (int)(tlat/60.); latf = tlat - lat*60.; lon = (int)(tlon/60.); lonf = tlon - lon*60.; printf(" TOKYO %3d: %6.3f\' %c %3d: %6.3f\' %c %7.1f m\n", lat, latf, cns, lon, lonf, cew, talt); xtw84(tlat, tlon, talt, &wlat, &wlon, &walt); if (wlat < 0.) { cns = 'S'; wlat = -wlat; } else cns = 'N'; if (wlon < 0.) { cew = 'W'; wlon = -wlon; } else cew = 'E'; lat = (int)(wlat/60.); latf = wlat - lat*60.; lon = (int)(wlon/60.); lonf = wlon - lon*60.; printf(" WGS84 %3d: %6.3f\' %c %3d: %6.3f\' %c %7.1f m\n\n", lat, latf, cns, lon, lonf, cew, walt); } clspin(); return(0); }