szögkonverzió [megoldva]

Fórumok

sziasztok.

Általában elmondható, hogy egy szerveroldali script a Lat-Lon koordinátákat fokban kezeli, a nép ezt hívja googlekoordinátának. Ezen tudásuk nem terjed tovább.

Hajós és csillagász már ezeket nem kezeli, a csillagász fok-perc-másodpercet használ, hajós pedig decimálisan megadva fokot és percet.

Namost...

Adott mondjuk egy szög:

21.868739900 fok. Ennél a 868739900*60 után kijön ez:

21 fok 52124394000 (értelemszterűen itt sosem kezdődik a szám 5-nél nagyobb értékkel, pl. 621243.. sosem lesz)

amiből 52.124394 ' lesz egy kis awk használatával.

Ezt, mivel pont egy második koordináta, így kell írnom szaGszerűen: 052.1243

De mi van, ha kisebb a szám?

22.133064900 esetén egy számjeggyel rövidebb az érték:

7983894000, ami 7.983894 ', amit így kell írnom: 007.9838

 

Kérdés:

hogy bele ne őrüljek, van ennél praktikusabb módszer? Scripttel szeretném végeztetni ezt, nem webes vagy GUI-s programmal. bc, vagy valami más konvertál szöget szerintetek? (nem kell radián, meg hasonlók, csak fok-perc konverzió oda-vissza)

Hozzászólások

Szerkesztve: 2020. 02. 21., p – 13:09

... E21° 007.9838' ... mi ezzel a gond?  vagy akár ...E021 007.9838

Navtex-en pl. ilyen formát is láttam:

N012 123.456 E012 123.456

a google maps is megérti

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.

Pont ilyeneket akarok leírva látni. Sajnos a GPX állományok szabványa szerint minden fokban rögzít, akkor is, ha egyes szoftverek fokban és percben írnak adatokat a júzer felé.

Navtexnél gyakorta még space sincs:)

10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.

gyártottam egyszer egy sh_math nevű cuccot: http://fellegis.hu/letoltes/x_progs/sajat.php

Tud számolni, és van egy sm_tostring nevű cucc benne, amiben c formában lehet formátumot megadni.

fellegis@INF-DESKTOP:~$ sm_tostring 12.7 %07.3
012.700fellegis@INF-DESKTOP:~$ sm_tostring 2.7 %07.3
002.700

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.

R-ben a celestial csomag deg2dms függvénye tudja ezt:

library(celestial)
print(deg2dms(21.8687399,type='cat'))
[1] "+21:52:07.46"
print(deg2dms(21.8687399,type='cat',sep='dms'))
[1] "+21d52m07.46s"
 print(deg2dms(21.8687399))
     DEG   MIN  SEC    
[1,] "+21" "52" "07.46"

Csaba

Szerkesztve: 2020. 02. 21., p – 13:18

$ echo 868739900 | awk '{printf("%010.6f\n", $1*60/1000/1000/1000)}'
$ echo 133064900 | awk '{printf("%010.6f\n", $1*60/1000/1000/1000)}'