|
499 | 499 |
|
500 | 500 | ***************************************************************************/ |
501 | 501 |
|
502 | | - UTMLetterDesignator: function (lat) { |
| 502 | + UTMLetterDesignator: function (lat){ |
503 | 503 | lat = parseFloat(lat); |
504 | 504 |
|
505 | | - var letterDesignator; |
506 | | - if ((84 >= lat) && (lat >= 72)) |
507 | | - letterDesignator = 'X'; |
508 | | - else if ((72 > lat) && (lat >= 64)) |
509 | | - letterDesignator = 'W'; |
510 | | - else if ((64 > lat) && (lat >= 56)) |
511 | | - letterDesignator = 'V'; |
512 | | - else if ((56 > lat) && (lat >= 48)) |
513 | | - letterDesignator = 'U'; |
514 | | - else if ((48 > lat) && (lat >= 40)) |
515 | | - letterDesignator = 'T'; |
516 | | - else if ((40 > lat) && (lat >= 32)) |
517 | | - letterDesignator = 'S'; |
518 | | - else if ((32 > lat) && (lat >= 24)) |
519 | | - letterDesignator = 'R'; |
520 | | - else if ((24 > lat) && (lat >= 16)) |
521 | | - letterDesignator = 'Q'; |
522 | | - else if ((16 > lat) && (lat >= 8)) |
523 | | - letterDesignator = 'P'; |
524 | | - else if (( 8 > lat) && (lat >= 0)) |
525 | | - letterDesignator = 'N'; |
526 | | - else if (( 0 > lat) && (lat >= -8)) |
527 | | - letterDesignator = 'M'; |
528 | | - else if ((-8> lat) && (lat >= -16)) |
529 | | - letterDesignator = 'L'; |
530 | | - else if ((-16 > lat) && (lat >= -24)) |
531 | | - letterDesignator = 'K'; |
532 | | - else if ((-24 > lat) && (lat >= -32)) |
533 | | - letterDesignator = 'J'; |
534 | | - else if ((-32 > lat) && (lat >= -40)) |
535 | | - letterDesignator = 'H'; |
536 | | - else if ((-40 > lat) && (lat >= -48)) |
537 | | - letterDesignator = 'G'; |
538 | | - else if ((-48 > lat) && (lat >= -56)) |
539 | | - letterDesignator = 'F'; |
540 | | - else if ((-56 > lat) && (lat >= -64)) |
541 | | - letterDesignator = 'E'; |
542 | | - else if ((-64 > lat) && (lat >= -72)) |
543 | | - letterDesignator = 'D'; |
544 | | - else if ((-72 > lat) && (lat >= -80)) |
545 | | - letterDesignator = 'C'; |
546 | | - else |
547 | | - letterDesignator = 'Z'; // This is here as an error flag to show |
548 | | - // that the latitude is outside the UTM limits |
549 | | - return letterDesignator; |
| 505 | + if (lat > 84 || lat < -80){ |
| 506 | + return 'Z'; |
| 507 | + |
| 508 | + } else { |
| 509 | + var index = (lat + 80) / 8; |
| 510 | + |
| 511 | + if (index >= 6) index++; // skip 'I' |
| 512 | + if (index >= 12) index++; // skip 'O' |
| 513 | + if (index >= 22) index--; // adjust for 80 to 84, which should be 'X' |
| 514 | + |
| 515 | + return String.fromCharCode(67 /* C */ + index); |
| 516 | + } |
550 | 517 | }, |
551 | 518 |
|
552 | 519 |
|
|
0 commit comments