2013-10-03 3 views
1

Я точки расположения собранной из GARMIN устройства хранится в листе первенствовать в Температурно формате --- W00208.172, N1046.977 Как я могу преобразовать его либо Десятичных Степени или Градусы Минуты секунд Формат?Преобразование Температурна в десятичной степени

+0

Какой ответ вы ожидаете от своего примера? – pnuts

+2

Повторяющийся вопрос, поскольку исходный вопрос находится на GIS-SE http://gis.stackexchange.com/questions/73282/convert-degree-minutes-to-decimal-degrees – Mapperz

+0

@Mapperz Согласен, что другое Q очень похоже и от тот же OP, но я не вижу, что есть * ответ *? – pnuts

ответ

1

Диапазон долготы (E или W) составляет от -180 до 180, так что 3 цифры Диапазон широты (N или S), составляет от -90 до 90, так что 2 цифры

Примите «W00208.172 », занимают первые 3 цифры и хранить его Degress:

град = 002 Затем возьмите остаток в виде десятичных минут:

мин = 08,172

Теперь преобразовать в десятичных градусах (DEG):

decDegrees = град + мин/60,0

То же самое для широты: за исключением того, что теперь градусов только две цифры N1046.977: Взять 10 градусов, и 46.977 минут.

Для обоих думаю, что если вы хотите сохранить «W» символ:
Часто лучше mutiply с -1 в случае из «W» или «S», сделать это, как последний шаг в вашей конверсии! Отрицательные десятичные градусы означают W (для долготы) или S (для широты).

Для ваших координат, это означает:
lat: North 10046.977 = 10 + 46.977/60 = 10.78295;
lon: (2 + 8.172/60) * -1 = -2.1362;
так, что место должно быть в Буркина-Фасо, 15й возле дороги (= правдоподобный) 5,52 км юго-востока к востоку от Dununuai

+0

Итак, возможно (если W в A1, N в B1):' = IF (LEFT (A1,1) = «W», MID (A1,2,3) + RIGHT (A1,6)/60, -MID (A1,2,3) -RIGHT (A1,5)/60) 'и' = IF (LEFT (B1,1) = "N", MID (B1,2,2) + RIGHT (B1,6)/60, -MID (B1,2,2) -RIGHT (B1,6)/60) '? – pnuts

+0

Это выглядит хорошо, с этим кодом вы должны сделать окончательный тест, зная, где был записан трек Garmin, и используя Google Earth для поиска вашей конвертированной координаты. использовать формат «lat, lon» в Google Earth – AlexWien

+0

Из любопытства, где находится 'N10046.977 ', W002008.172''? – pnuts

0

Этой формула работает на Google Таблицы для преобразования из формата 018 ° 40,1333 до 18.66888833 и - 34 ° 01,0597 до -34,01766167

=IF(MID(B2,1,1) = "-", (INT(MID(B2, 1, SEARCH("°", B2) - 1)) - MID(B2, SEARCH("°", B2) + 1, len(B2))/60), (INT(MID(B2, 1, SEARCH("°", B2) - 1)) + MID(B2, SEARCH("°", B2) + 1, len(B2))/60)) 
1

так что я искал ленивый ответ и не был счастлив так буду ставить здесь то, что я сделал в конце концов:

Хотеть конвертировать между этими двумя форматами:

33°59'05.5"S 22°39'42.7"E и -33.98485,22.66186

Левое существо «Градусы Минуты Секунда» и право будучи «Десятичный»

Конечно, я должен сделать некоторые предположения, чтобы они, что он принимает ваши Подписчик вышеуказанных форматов точно.

Хорошо, таким образом первый от степени, в десятичном (источник находясь в ячейке B2):

=ROUNDDOWN(if(mid(B2,find(" ",B2)-1,1)="S","-","")&mid(B2,1,find("°",B2)-1)+mid(B2,find("°",B2)+1,find("'",B2)-find("°",B2)-1)/60+mid(B2,find("'",B2)+1,find("""",B2)-find("'",B2)-1)/60/60,5)&","&rounddown(if(right(B2,1)="W","-","")&mid(right(B2,find(" ",B2)-1),1,find("°",right(B2,find(" ",B2)-1))-1)+mid(right(B2,find(" ",B2)-1),find("°",right(B2,find(" ",B2)-1))+1,find("'",right(B2,find(" ",B2)-1))-find("°",right(B2,find(" ",B2)-1))-1)/60+mid(right(B2,find(" ",B2)-1),find("'",right(B2,find(" ",B2)-1))+1,find("""",right(B2,find(" ",B2)-1))-find("'",right(B2,find(" ",B2)-1))-1)/60/60,5) 

, а затем из десятичных чисел в степени (источник находясь в ячейке C2):

=abs(ROUNDDOWN(left(C2,find(",",C2)-1))) & "°" & ROUNDDOWN((abs(left(C2,find(",",C2)-1))-abs(ROUNDDOWN(left(C2,find(",",C2)-1))))*60) & "'" & round(((abs(left(C2,find(",",C2)-1))-abs(ROUNDDOWN(left(C2,find(",",C2)-1))))*60- rounddown((abs(left(C2,find(",",C2)-1))-abs(ROUNDDOWN(left(C2,find(",",C2)-1))))*60))*60,1) & """"&if(value(left(C2,find(",",C2)-1))<0,"S","N")& " " & abs(ROUNDDOWN(RIGHT(C2,len(C2)-find(",",C2)))) & "°" & rounddown((abs(RIGHT(C2,len(C2)-find(",",C2)))-abs(ROUNDDOWN(RIGHT(C2,len(C2)-find(",",C2)))))*60) & "'" & round(((abs(RIGHT(C2,len(C2)-find(",",C2)))-abs(ROUNDDOWN(RIGHT(C2,len(C2)-find(",",C2)))))*60- rounddown((abs(RIGHT(C2,len(C2)-find(",",C2)))-abs(ROUNDDOWN(RIGHT(C2,len(C2)-find(",",C2)))))*60))*60,1) & """"&if(value(right(C2,len(C2)-find(",",C2)))<0,"W","E") 

Если бы только вы могли иметь переменные в формулах ... большинство из них - это повторяющиеся формулы с некоторыми достаточно простыми правилами ... В любом случае, надеюсь, что это поможет кому-то.

Смежные вопросы