/Prototipo/MemoriaUtils/src/memoria/utils/coordinate/LatZones.java
http://prototipomemoria.googlecode.com/ · Java · 123 lines · 97 code · 18 blank · 8 comment · 19 complexity · 3c4028c2ac97a97e500a5f4a5bf3f433 MD5 · raw file
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package memoria.utils.coordinate;
- /**
- *
- * @author diego
- */
- public class LatZones {
- private static char[] letters = { 'A', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K',
- 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Z' };
- private static int[] degrees = { -90, -84, -72, -64, -56, -48, -40, -32, -24, -16,
- -8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 84 };
- private static char[] negLetters = { 'A', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K',
- 'L', 'M' };
- private static int[] negDegrees = { -90, -84, -72, -64, -56, -48, -40, -32, -24,
- -16, -8 };
- private static char[] posLetters = { 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Z' };
- private static int[] posDegrees = { 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 84 };
- private static int arrayLength = 22;
- public LatZones()
- {
- }
- public static int getLatZoneDegree(String letter)
- {
- char ltr = letter.charAt(0);
- for (int i = 0; i < arrayLength; i++)
- {
- if (letters[i] == ltr)
- {
- return degrees[i];
- }
- }
- return -100;
- }
- public static String getLatZone(double latitude)
- {
- int latIndex = -2;
- int lat = (int) latitude;
- if (lat >= 0)
- {
- int len = posLetters.length;
- for (int i = 0; i < len; i++)
- {
- if (lat == posDegrees[i])
- {
- latIndex = i;
- break;
- }
- if (lat > posDegrees[i])
- {
- continue;
- }
- else
- {
- latIndex = i - 1;
- break;
- }
- }
- }
- else
- {
- int len = negLetters.length;
- for (int i = 0; i < len; i++)
- {
- if (lat == negDegrees[i])
- {
- latIndex = i;
- break;
- }
- if (lat < negDegrees[i])
- {
- latIndex = i - 1;
- break;
- }
- else
- {
- continue;
- }
- }
- }
- if (latIndex == -1)
- {
- latIndex = 0;
- }
- if (lat >= 0)
- {
- if (latIndex == -2)
- {
- latIndex = posLetters.length - 1;
- }
- return String.valueOf(posLetters[latIndex]);
- }
- else
- {
- if (latIndex == -2)
- {
- latIndex = negLetters.length - 1;
- }
- return String.valueOf(negLetters[latIndex]);
- }
- }
- }