Как рассчитать из этих чисел:Как преобразовать широту и долготу?
51.501690392607,-0.1263427734375
широты и долготы?
Это должно быть
London, England 51° 32' N 0° 5' W
Как рассчитать из этих чисел:Как преобразовать широту и долготу?
51.501690392607,-0.1263427734375
широты и долготы?
Это должно быть
London, England 51° 32' N 0° 5' W
http://geography.about.com/library/howto/htdegrees.htm
Это, кажется, получилось.
Чтобы преобразовать 51.501690392607, сначала возьмите целочисленную часть для 51 градуса. Положительные значения - север; негативы - юг.
Затем возьмите дробную часть: 0.501690392607
Multiply на 60: 60 * 0.501690392607 = 30.10142355642
Возьмите целую часть в течение 30 минут.
Затем возьмите дробную часть: 0.10142355642
Multiply на 60: 6.0854133852
округление до ближайшего 1 за секунды.
Вы получаете: 51 градус северного 30 минут 6 секунд.
Для направления Восток/Запад, повторите с восточным положительным и западным отрицательным.
Чтобы найти город, вам придется использовать некоторые базы данных или что-то ...
Я не знаю, почему ваша конверсия, кажется, не совпадают.
Основное преобразование между двумя представления можно сделать так:
// to decimal
decimal = degree + minutes/60 + seconds/3600;
// from decimal
degree = int(decimal)
remaining = decimal - degree
minutes = int(remaining*60)
remaining = remaining - minutes/60
seconds = remaining*3600
Чтобы преобразовать дробное число степеней в градусах и минутах, в псевдокоде:
degrees = int(frac)
minutes = int((frac - degrees) * 60)
преобразовать «негативный «числа в« S »и« W »(соответственно« N »и« E »), используйте« if ».
Просто сделать псевдокод исполняемый файл, мы могли бы использовать Python ...:
def translate(frac, islatitude):
if islatitude: decorate = "NS"
else: decorate = "EW"
if frac < 0:
dec = decorate[1]
frac = abs(frac)
else:
dec = decorate[0]
degrees = int(frac)
minutes = int((frac - degrees) * 60)
return "%d %d %s" % (degrees, minutes, dec)
Так, например:
print translate(51.501690392607, True),
print translate(-0.126342773437, False)
будет испускать
51 30 N 0 7 W
Наряжание (градусов и минуты) зависит от поддержки набора символов вашего устройства вывода - и 7 против 5 минут дуги для W coor по-видимому, правильный результат для вводимых вами номеров.
В какой платформе/среде вы работаете? –
@mmsmatt: это имеет значение?Это скорее похоже на вопрос о алгоритме/математической формуле. Как вы можете перейти от десятичных координат к часам-минутах-секундам N/S и E/W-нотации. –
@GregS: Правильно, десятичное преобразование -> hms является вопросом формулы. Но добавление названия города выглядит так, будто есть что-то еще. –