Kan avstånd och kurs mellan två punkter på ett klot beräknas med två formler . Problemet är väl definierad och fungerar som en lätt uppgift för ett programmeringsspråk som Visual Basic . Dock måste ett val göras mellan en rak , oföränderlig kurs ( loxodromlinjerna ) eller en mer effektiv böjd kurs som drar nytta av kurvan av jorden . Instruktioner
1
Skapa ett nytt projekt genom att klicka på " File " och " Nytt projekt ".
2
Drag fyra etiketter ur verktygslådan och in i ditt projekt och ordna dem i en linje från toppen till botten . Klicka på varje etikett och , i inforutan , ändrar textfältet så att de läser " Starta Latitude , " " Ending Latitude , " " Starta Longitude , " " Ending Longitud . " Addera 3
Dra fyra textrutor ur verktygslådan och placera en precis till höger om varje etikett . Klicka på varje textruta och , i inforutan , ändra namnet fält för att motsvara följande namn : . " StartLatTextBox , " " endLatTextBox , " " startLongTextBox , " " endLongTextBox "
4
Dra en knapp från verktygslådan och lägg den i botten av projektet . . Dubbelklicka på den för att skriva in koden redaktör
5
Klistra in följande i " Button1_Click " metoden :
Dim SLAT = Double.Parse ( startLatTextBox.Text ) katalog
Dim sLong = Double.Parse ( startLongTextBox.Text ) katalog
Dim ELAT = Double.Parse ( endLatTextBox.Text ) katalog
Dim eLong = Double.Parse ( endLongTextBox.Text )
Dim DLAT = D2R ( Elat - slat ) katalog
Dim dLong = D2R ( eLong - sLong ) katalog
Dim dPhi = Math.log ( Math.tan ( Elat /2 + Math . PI /4 ) /Math.tan ( sLAT /2 + Math.PI /4 ) ) katalog
Dim q = Ny Dubbel
p Om ( dPhi = 0 ) Then
q = Math.cos ( slat ) katalog
Else
q = DLAT /dPhi
End If
p Om ( Math.abs ( dLong ) > , Math.PI ) Sen
Oom ( dLong > 0 , dLong = ( 2 * Math.PI - dLong ) * -1 , dLong = 2 * Math.PI + dLong ) katalog
End If
Dim earthRadius = 6371 REM kilometer
Dim avstånd = Math.sqrt ( DLAT ^ 2 + q ^ 2 * dLong ^ 2 ) * earthRadius
Dim bäring = Math.Atan2 ( dLong , dPhi ) katalog
lager = bearing * 180 /Math.PI
MessageBox.Show ( " Avstånd = " & distans & " . Kurs = " & lager )
ovanstående kod använder sig av en " D2R " ( grader till radianer ) funktion som inte finns ännu , så klistra in följande kod direkt under " end Function " uttalande för " Button1_Click . "
Public Function D2R ( ByVal vinkel som Double ) som Double
D2R = Vinkel * Math.PI /180
End Function
6
Klicka på den gröna pilen till starta ditt program . Du kan nu skriva något par av latitud och longitud ( i decimalform ) och hitta avståndet mellan dem ( i kilometer ) och bäring ( i grader ) för att nå destinationen .