+ } else if (format == 5) {
+ // d mm'ss.s" (signed DMS format).
+ min = (deg - int(deg)) * 60.0;
+ sec = (min - int(min)) * 60.0;
+ if (sec >= 59.95) {
+ sec -= 60.0;
+ min += 1.0;
+ if (min >= 60.0) {
+ min -= 60.0;
+ deg += 1.0;
+ }
+ }
+ if (sign == 1) {
+ snprintf(buf, 32, "%d*%02d'%04.1f\"", int(deg), int(min), fabs(sec));
+ } else {
+ snprintf(buf, 32, "-%d*%02d'%04.1f\"", int(deg), int(min), fabs(sec));
+ }
+
+ } else if (format == 6) {
+ // dd.dddddd X, ddd.dddddd X (zero padded DDD format).
+ if (c == 'N' || c == 'S') {
+ snprintf(buf, 32, "%09.6f%c", deg, c);
+ } else {
+ snprintf(buf, 32, "%010.6f%c", deg, c);
+ }
+
+ } else if (format == 7) {
+ // dd mm.mmm' X, ddd mm.mmm' X (zero padded DMM format).
+ min = (deg - int(deg)) * 60.0;