Лат долго до минут и секунд? - PullRequest
8 голосов
/ 13 января 2010

Карты Google дают мне широту и длину местоположения в десятичной записи, например:

38,203655, -76,113281

Как конвертировать их в координаты (градусы, минуты, секунды)

Ответы [ 4 ]

16 голосов
/ 13 января 2010

38.203655 - десятичное значение градусов. 60 минут - это градус и 60 секунд в минуту (1 градус == 60мин == 3600 с).

Итак, возьмите дробную часть значения, т. Е. 0,203655, и умножьте ее на 60, чтобы получить минуты, т. Е. 12,2193, то есть 12 минут, а затем повторите для дробной части минут, т. Е. 0,2193 = 13,158000 секунд.

Пример на python:

def deg_to_dms(deg):
    d = int(deg)
    md = abs(deg - d) * 60
    m = int(md)
    sd = (md - m) * 60
    return [d, m, sd]

print deg_to_dms(38.203655)
print deg_to_dms(-76.113281)
0 голосов
/ 25 января 2019

Я думаю, что это поможет вам с решением:

def deg_min_sec(self,degrees=0.0):
        if type(degrees) != 'float':
            try:
                degrees = float(degrees)
            except:
                print '\nERROR: Could not convert %s to float.' % (type(degrees))
                return 0
        minutes = degrees % 1.0 * 60
        seconds = minutes % 1.0 * 60

        return (degrees, minutes, seconds)
0 голосов
/ 16 апреля 2015

Библиотека Python, которая делает трюк:

https://pypi.python.org/pypi/LatLon/1.0.2

0 голосов
/ 26 августа 2011

Если вам нужны другие гео-функции в JavaScript, вы можете использовать следующую библиотеку

http://www.movable -type.co.uk / scripts / latlong.html

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

  • DMS из / в десятичное преобразование широты / долготы
  • Расчет расстояний
  • Расчет подшипника
  • Расчет точки пересечения
...