Можно ли дать половинный ввод для широты и долготы

1

Я пытаюсь выяснить, можете ли вы ввести sexagesimal вход в качестве местоположения, точно так же, как вы можете дать десятичный ввод в андроиде следующим образом:

 // Decimal input
 double src_lat = 46.550952;
 double src_long = 15.651366;

 GeoPoint srcGeoPoint = new GeoPoint((int) (src_lat * 1E6),
        (int) (src_long * 1E6));

поэтому мой вопрос заключается в следующем - есть способ ввода чисел шестидесятеричных и не десятичные? У меня есть номера в моей базе данных в виде "46.550952, 15.651366 и т.д.". но когда я вводил их в виде десятичных знаков, это явно дает мне неправильное местоположение на Картах Google, что является проблемой.

Я был бы очень благодарен за любые ответы или выводы.

--- EDIT ---

Я просто сдался и сделал функцию, которая превращает sexagesimal в decimal =) Так как все строки (числа), которые я получаю, составляют 10 символов, я могу просто подстроить минуты и секунды.

код ниже:

private double turnSexagesimalToDecimal(String number) {
    double sumDivMinutes = 0;
        String degree = number;

        String degrees = degree.substring(0, 2);

        String minutes = degree.substring(3, 5);

        String second1 = degree.substring(5, 7);
        String second2 = degree.substring(7);
        String seconds = second1 + "." + second2;

        double divideSeconds = Double.parseDouble(seconds) / 60;

        sumDivMinutes = (Double.parseDouble(minutes) + divideSeconds) / 60;

        sumDivMinutes = (double)Math.round(sumDivMinutes * 1000000) / 1000000;
        sumDivMinutes = sumDivMinutes + Double.parseDouble(degrees);

    return sumDivMinutes;
}
Теги:
location
decimal

1 ответ

0
Лучший ответ

почему бы просто написать функцию для преобразования между двумя?

double decimalToSexagecimal(double decimalDegrees) { 
    String dd = new String(decimalDegrees);
    String[] ddArr = dd.split(".");
    // .75/100 = 75, .75 * 60/100
    double sd = Double.valueOf(ddArr).doubleValue() * 60 / 100;
    return Double.valueOf(ddArr[0] + "." + sd);
}

sexagecimalToDecimal(double sexagecimalDegreees) { ... }
  • 0
    спасибо за ответ =) на самом деле я сдался и просто сделал функцию для преобразования между двумя, как вы предложили.
  • 0
    великие умы думают одинаково!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню