Minulla on kaksi GPS-koordinaattia...

Seuraa 
Viestejä45973
Liittynyt3.9.2015

joista toisessa seison itse sanotaan tätä paikka kohdaksi A. Ja toinen GPS-koordinaatti on 30km päässä sanotaan tätä paikkaa kohdaksi B. Ja tiedän tämän hetkisen asteluvun johon suuntaan olen menossa joka olkoon vaikka 45 astetta eli GPS-paikannnukseen liittyvän suuntatiedon. Tuo suuntatietohan lasketaan käsittääkseni pohjoisnavan mukaan. Jossa pohjoisnapa on kait se 0 astetta.

No nyt haluan tietää miten lasken noiden A ja B koordinaattien perusteella minkälainen astelukema pitää ottaa kohdassa A, jotta pääsen linnuntietä koordinaattiin B.

Olipas vaikeesti selitetty, mutta toivottovasti joku ymmärsi.

Eli ilmeisesti homma onnistuu ihan Pythogoraan lauseella ja sinilla, cosinilla ja tangentilla. Mutta miten ja minkälaisella kaavalla. Osaako joku antaa selkeän kaavan. Kiitoksia jo etukäteen valaisevista tiedoista.

Kommentit (11)

Vierailija

En varsinaisesti tarkastanut vastausta kunnolla mutta ainakin ensi yrittämällä toimi. Eli en ole satavarma toimiiko kaikissa tapauksissa varmasti. Voin postittaa hienon paint kuvan, jolla tuon kaavan väsäsin. Tosin menin aika monimutkaista reittiä. On varmasti muita joiden todistuksista saa selvääkin.
α=arccos( ( 1 / R ) * ( x * sinß + y * cosß ) )

x on siis B:n x-koordinaatti ja y on B:n y-koordinaatti.
ß on sinun sijaintisi suhteessa 0 asteeseen (eli ß=45 tässä tapauksessa)
α on kulma jonka verran sinun tulee kääntyä
R on etäisyys eli tässä tapauksessa 30

testasin seuraavilla arvoilla:
R= 30
x=-7
y=29,17 ( √( 30^2 - 7^2 ) )
ß=45 astetta

Oletin myös pisteen A:n olevan origossa ( x = 0 ja y = 0 )
Onnistunee kai muillakin arvoilla jos laitat x:n ja y:n arvoiksi x = x1 - x2 ja y = y1 - y2 (eli vähennät B:n koordinaateista A:n koordinaatit)

Anteeksi jos selitän epäselvästi.

Jos et välttämättä halua R:lle arvoa niin voit vain sijoittaa R = √ ( x^2 + y^2 ), R >= 0

x on siis B:n x-koordinaatti ja y on B:n y-koordinaatti.
ß on sinun sijaintisi suhteessa 0 asteeseen (eli ß=45 tässä tapauksessa)
α on kulma jonka verran sinun tulee kääntyä
R on etäisyys eli tässä tapauksessa 30

Tuossa on kuva josta lähdin liikkeelle.
Eli "loin" kolmannen pisteen, C, jonka koordinaatit ovat x1 ja y1 ja joka on 30 km päässä (eli saman matkan päässä kuin B on A:sta) A:sta 45 asteen suunnassa (tai missä lie suunnassa olet verrattuna 0 asteen suuntaan)

r^2 = ( x - x1 )^2 - ( y - y1 )^2

kosinilauseen mukaan:
r^2 = R^2 + R^2 - 2 * R^2 * cosα

Sijoitetaan r^2 = r^2
ja saadaan (pikkuisen vääntelyn jälkeen):

cosα = - ( ( x - x1 )^2 + ( y - y1 )^2 - 2 * R^2 ) / ( 2 * R^2 )

Sitten keskitytään ß:hen ja muodostetaan suorakulmainen kolmio jonka yksi kulma on ß
Pythagoran lauseen avulla:
y1 = +-√( 30^2 - x1^2 )
ja
x1 = 30sinß
sijoitetaan y1:seen:
y1 = +-√( 30^2 ( 1 - sin^2ß ) )
sin^2x + cos^2x = 1, joten:
y1 = 30cosß

Sitten sijoitetaan cosα = ........
jne. Ja sitten vain sievennetään ja saadaan

α=arccos( ( 1 / R ) * ( x * sinß + y * cosß ) )

Eli aika pitkää rataa menin

Mutta tosiaan etäisyyttä ei varsinaisesti *tarvita* ja luulisin tämän kaavan olevan käytännöllisempi:

α=arccos( ( x*sinß + y*cosß ) / √ ( x^2 + y^2 ) )

Tai jos A:lla on jotkin koordinaatit niin:

α=arccos( ( (x-Ax)*sinß + (y-Ay)*cosß ) / √ ( (x-Ax)^2 + (y-Ay)^2 ) )

Jossa
Ax = A:n x-koordinaatti
Ay = A:n y-koordinaatti

Edit: Kokeilin vielä muutamalla arvolla ja kaava kyllä toimii kaikissa tapauksissa.

Vierailija

Juu kiitoksia. Täytyy tutkia tuota huomenna lisää. Tuon kun saan vielä toimimaan PHP:lla Web-palvelimella niin taas elämä hymyilee Tietysti jos muitakin ideoita tulee, niin otetaan vastaan.

Vierailija

Niin ja tuo kaava ilman etäisyyttä on hyvä. Sillä enhän minä oikeasti edes tiedä paljon minulla on matkaa.
Kohteesta A kohteeseen B. Minulla on vain oikeasti kaksi GPS-koordinaattia tiedossa, joissa toisessa olen itse.
Ja sen hetkisen menosuunnan astelukema tiedossa. Ja haluisin tietää paljon on korjattava kulkusuuntaa asteissa, että matka kohteeseen B olisi linnuntietä.

Vierailija
Sädetin
Juu kiitoksia. Täytyy tutkia tuota huomenna lisää. Tuon kun saan vielä toimimaan PHP:lla Web-palvelimella niin taas elämä hymyilee Tietysti jos muitakin ideoita tulee, niin otetaan vastaan.

Eipä kestä, oli itsellänikin samantyyppinen ongelma joskus juurikin koodatessa.

Vierailija
Sädetin
No nyt haluan tietää miten lasken noiden A ja B koordinaattien perusteella minkälainen astelukema pitää ottaa kohdassa A, jotta pääsen linnuntietä koordinaattiin B.



Yleisessä tapauksessa, kun liikut pisteestä A pisteeseen B lyhintä linnuntietä, sinun täytyy muuttaa kompassisuuntaasi jatkuvasti.
Esim. jos matkaat Bagdadista Osakaan, lähdet alussa kompassisuunnalla 60 astetta, mutta lähellä Osakaa suuntasi on jo 120 astetta.

Kaavat ja esimerkin löydät linkistä
http://www.movable-type.co.uk/scripts/latlong.html
kohdasta "bearing".

Neutroni
Seuraa 
Viestejä26870
Liittynyt16.3.2005

Muutaman kymmenen kilometrin etäisyyksillä voi käytännön suunnistukseen riittävällä tarkkuudella muuntaa koordinaatit suorakulmaiseksi, esimerkiksi ETRS-TM35FIN on Suomen alueella hyvä valinta. Jos lasket tietokoneella, jossa on atan2 -funktio, saat suunnan atan2(dy,dx), jossa dx on suorakulmaisten x-koordinaattien erotus ja dy on y-koordinaattien erotus. Tarkasta kuitenkin nollakohta ja suunta. Muuten joudut käyttämään atan(dy/dx), jolloin joudut päättelemään oikean koordinaatiston neljänneksen dx:n ja dy:n etumerkeistä. Ja taas, muista nollakohta ja kasvusuunta. Maantieteessä se on yleensä pohjoinen ja kulma kasvaa myötäpäivään, kun taas matematiikassa suunnan nollakohta on "itä" ja se kasvaa vastapäivään.

Maanmittauslaitokselta löytyy sekä valmis ohjelma että lähdekoodi pallokoordinaattien muuntamiseen tasokoordinaateiksi. Se on turhauttavan työläs operaatio laskimella näpytettäväksi, mutta yksinkertainen ohjelmoida.

ovolo
Seuraa 
Viestejä5370
Liittynyt7.7.2007

Eikös gps-kapulasta näe suoraan nuo tiedot, kun tekee reitin linnuntietä pisteestä A pisteeseen B.

Itse ainakin käytän MapSource-ohjelmaa, jossa on garmin topokartta. Kun vedän hiirellä viivan pisteiden välille, niin näen suoraan tuon suunnan ja pisteiden välisen etäisyyden. MapSourcen asetuksista pystyy mm. vaihtamaan koordinaattien esitystavan, ym.

Vierailija

Niin jos joku ihmettelee miksi moista juttua tarvitsen. Niin tämähän tulee sellaiseen tee se itse GPS viritykseen.
Jossa ihan elektroniikan komponenteista ole rakentanut GPS laitteen, joka lähettää GSM-modulin GPRS-yhteyden yli Web-palvelimelle noita GPS-koordinaatteja. Ja ajattelin sitten, että tuon Web-palvelimen voisi laittaa laskemaan suuntia paikasta A paikkaan B ja lähettää ne takaisin tuolle rakentamalle GPS laitteelleni. Ja jos nuo paikat sijaitsee toisistaan esim 50m etäisyyksin. Niin silloin voisi kätevästi suunnistaa pisteestä toiseen.
Ja Web-palvelin laskee suunnat PHP-kielellä.

Näin ollen voisi ensin vaikka kulkea jonkun reitin, josta menee vaikka 30s välein GPS-koordinaatit suuntatietoineen Web-palvelimelle. Ja sitten lopuksi voin kulkea reitin uudelleen noiden GPS-koordinaatien ja Web-palvelimelta lasketun suunnan avulla. Kun vaan tuo rakentamani GPS-laite lähettää ensin tiedon sijainnistaan Web-palvelimelle. Jos sitten Web-palvelin alkaa laskemaan suuntia. Se riittää minulel näin ensi alkuun. Joku kerta voisi tuohon yrittää saada etäisyyslaskennankin mukaan.

Mutta nyt täytyy alkaa kokeileen noita Ozzon kaavoja.

Vierailija

Joo tosiaan on hyvä mainita että laskut ovat hieman mutkikkaampia jos GPS:ää käyttää hyvin pitkällä matkalla esimerkiksi Suomesta Japaniin. Tällöin pitäisi ottaa ymmärtääkseni huomioon maan pallomuoto sekä pohjoisnavan liikkuminen sinun suhteen. Lyhyellä matkalla tästä ei kuitenkaan tule ongelmaa.

Eli mitä pidempi etäisyys sitä "epätarkempi" tulos. Luulisi kuitenkin että tulee ihan asteen tarkkaa tulosta vielä siinä muutaman kymmenen kilometrin etäisyydellä. Joku varmasti korjaa jos väittämä on väärä

Vierailija
Ozzo
Eli mitä pidempi etäisyys sitä "epätarkempi" tulos. Luulisi kuitenkin että tulee ihan asteen tarkkaa tulosta vielä siinä muutaman kymmenen kilometrin etäisyydellä. Joku varmasti korjaa jos väittämä on väärä



Jos lähdetään 1 km päästä pohjoisnavalta Suomen suunnalta ja halutaan päätyä 1 km päähän pohjoisnavalta Alaskan suuntaan, pitää ensin kulkea n. kilometri lähes suoraan pohjoiseen, sitten muutama metri itään tai länteen riippuen siitä kummalta puolelta napa ohitetaan, ja lopuksi n. kilometri lähes suoraan etelään.
Kulkusuunta ei tietenkään vaihdu portaittain, vaan kulkija kulkee matkallaan kaikkiin suuntiin väliltä pohjoinen-itä-etelä tai pohjoinen-länsi-etelä.

Matkaa on vain 2 kilometriä, mutta kompassisuunta vaihtelee aika villisti.
Mutta eipä tuolla magneettikompassi toimi kuitenkaan.

Vierailija

Nojoo eli mitä lähempänä pohjois- tai etelänapaa niin sitä epätarkempi tulos myös. Tarkoitin kyllä tuossa Suomea.

Uusimmat

Suosituimmat