Преобразование целочисленной широты и долготы в десятичное (с использованием API карт Google)

В настоящее время я пытаюсь преобразовать целые числа latitude и longitude в десятичные числа (градусы). В спецификации, откуда я беру данные, сказано:

| Широта | Широта позиции | Целое число, число 1/10 секунды |

| Долгота | Долгота позиции | Целое число, число 1/10 секунды |

Вот пример номера:

  • Широта: 1914383
  • Долгота: 371352

Мне нужно что-то в этом формате:

  • Широта: 51.39796
  • Долгота: 14.62539

Как я могу преобразовать эти форматы?

Я видел несколько реализаций на C #, но ничего из того, что мне действительно пригодилось, или я не понимаю, как это может работать. Что я пробовал:

Преобразование координат GPS (широты и долготы) в десятичные и Преобразование широты и долготы в десятичные значения

Большое спасибо


person BendEg    schedule 13.11.2016    source источник
comment
Так как он дается в 1/10 секунды, просто разделите его на 36000. Посмотрите, как формируется знак, в документации API.   -  person Sergey L    schedule 13.11.2016


Ответы (1)


Вот пример преобразования между форматами.

    private void ConvertSampleFunction()
    {
        //let N 40264600 be a GPS coordinate. Then
        //Format in degrees minutes seconds: 40° 26′ 46″ N 
        double Degs=40.0;
        double Mins=26.0;
        double Secs=46.00;
        //Then in degrees - decimal minutes Format will be
        double Ddegs=Degs;
        double Dmins=Mins;
        double Dsecs=Secs/60.0;
        //This will give Ddegs and Dmins.Dsecs e.g. 40 degrees and 26.767'
        //and In Decimal format DDD.DDD... it will be
        double DecDegs=Degs+Mins/60.0+Secs/3600.0;
        //which will give the value 40.446..
    }

Надеюсь на эту помощь.

person SteveTheGrk    schedule 13.11.2016