Hvordan beregne Course & Avstand i VB

Hvordan beregne Course & Avstand i VB


Avstanden og kurs mellom to punkter på en globus kan beregnes ved hjelp av to formler. Problemet er vel definert og fungerer som en enkel oppgave for et programmeringsspråk som Visual Basic. Imidlertid må et valg gjøres mellom en rett, uforanderlig kurs (Rhumb linjer) eller en mer effektiv buet kurs som tar fordel av kurven av jorden.

Bruksanvisning

1 Opprett et nytt prosjekt ved å klikke på "File" og "New Project".

2 Dra fire etiketter ut av verktøykassen og inn i prosjektet og arrangere dem i en linje fra topp til bunn. Klikk på hver etikett, og i egenskapsboksen, endre tekstfeltet slik at de leser "Starte Latitude", "Ending Latitude," "Starte Longitude", "Ending Lengde."

3 Dra fire tekstbokser ut av verktøykassen og plassere en rett til høyre for hver etikett. Klikk på hver tekstboks, og i egenskapsboksen, endre navnet feltet for å reflektere følgende navn:. "StartLatTextBox", "endLatTextBox", "startLongTextBox", "endLongTextBox"

4 Dra en knapp fra verktøykassen og legg den i bunnen av prosjektet. Dobbelklikk på ikonet for å taste inn koden editor.

5 Lim inn følgende i "button1_click" metoden:

Dim sLat = Double.Parse(startLatTextBox.Text)

Dim slong = Double.Parse (startLongTextBox.Text)

Dim Elat = Double.Parse (endLatTextBox.Text)

Dim eLong = Double.Parse (endLongTextBox.Text)

Dim DLAT = D2R (Elat - slat)

Dim dLong = D2R (eLong - slong)

Dim dPhi = Math.Log (Math.Tan (Elat / 2 + Math.PI / 4) / Math.Tan (slat / 2 + Math.PI / 4))

Dim q = Ny Double

Hvis (dPhi = 0) Then

q = Math.Cos (lamell)

Ellers

q = DLAT / dPhi

Slutt om

If (Math.Abs ​​(dLong)> Math.PI) så

IIf (dLong> 0, dLong = (2 * Math.PI - dLong) * -1, dLong = 2 * Math.PI + dLong)

Slutt om

Dim earthRadius = 6371 REM kilometer

Dim avstand = Math.sqrt (DLAT ^ 2 + q ^ 2 * dLong ^ 2) * earthRadius

Dim peiling = Math.Atan2 (dLong, dPhi)

peiling = peiling * 180 / Math.PI

MessageBox.Show ( "Distance =" & avstand & ". Kurs =" & peiling)

Koden ovenfor gjør bruk av en "D2R" (grader til radianer) funksjon som ikke finnes ennå, så lim inn følgende kode rett under "end-funksjonen" statement for "button1_click."

Public Function D2R(ByVal Angle As Double) As Double

D2R = Vinkel * Math.PI / 180

End Function

6 Klikk på den grønne pilen for å starte programmet. Du kan nå legge inn noen par lengde- og breddegrader (i desimal format) og finne avstanden mellom dem (i kilometer) og lager (i grader) for å nå målet.

Hint

  • Disse formlene brukes hver dag for praktisk navigasjon rundt jorden, men de har små unøyaktigheter på grunn av det faktum at jorden ikke er en perfekt kule. De er små nok til å gjøre liten forskjell for praktisk navigasjon, men finnes.
  • Disse formlene beregne bærende hjelp Rhumb linjer for å holde stø kurs. Rhumb linjer, selv om de vil få deg til målet, ikke følger en stor sirkel. Gode ​​sirkler krever stadige endringer i kurs for å holde seg på sirkel, men på grunn av kurven av jorden, kuttet bort noen avstand i forhold til Rhumb linje.