Come calcolare il Course & Distanza in VB

June 19

Come calcolare il Course & Distanza in VB


La distanza e rotta tra due punti su un globo possono essere calcolate utilizzando due formule. Il problema è ben definito e serve come un compito facile per un linguaggio di programmazione come Visual Basic. Tuttavia, una scelta deve essere fatta tra un percorso rettilineo immutabile (lossodromie) o un corso curva più efficiente che sfrutta la curva della Terra.

istruzione

1 Creare un nuovo progetto facendo clic su "File" e "Nuovo progetto".

2 Trascinare quattro etichette fuori della casella degli strumenti e nel progetto e disporli in una linea da cima a fondo. Fare clic su ogni etichetta e, nella finestra delle proprietà, modificare il campo di testo in modo che leggono "Avvio di Latitude", "Ending Latitude", "Avvio Longitudine", "Ending Longitudine".

3 Trascinare quattro caselle di testo di casella degli strumenti e posizionare uno appena a destra di ogni etichetta. Fare clic su ogni casella di testo e, nella finestra delle proprietà, modificare il campo nome per riflettere i seguenti nomi:. "StartLatTextBox," "endLatTextBox," "startLongTextBox", "endLongTextBox"

4 Trascinare un pulsante dalla casella degli strumenti e metterla sul fondo del progetto. Fare doppio clic su di esso per inserire il editor di codice.

5 Incollare il seguente all'interno del metodo "Button1_Click":

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 = Nuovo doppio

Se (dPhi = 0) Poi

q = Math.cos (SLAT)

Altro

q = DLAT / dPhi

Finisci se

If (Math.Abs ​​(Dlong)> Math.PI) THEN

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

Finisci se

Dim earthRadius = 6371 REM chilometri

distanza Dim = Math.Sqrt (DLAT ^ 2 + q ^ 2 * Dlong ^ 2) * earthRadius

cuscinetto Dim = Math.atan2 (Dlong, dPhi)

cuscinetto = cuscinetto * 180 / Math.PI

MessageBox.Show ( "Distance =" & distanza & ". Corso =" & cuscinetto)

Il codice di cui sopra fa uso di un "D2R" (gradi in radianti) funzione che non esiste ancora, quindi incollare il seguente codice direttamente sotto la "funzione fine" economico "Button1_Click".

Public Function D2R(ByVal Angle As Double) As Double

D2R = Angolo * Math.PI / 180

End Function

6 Fare clic sulla freccia verde per avviare il programma. Ora è possibile inserire una qualsiasi coppia di coordinate di latitudine e longitudine (in formato decimale) e trovare la distanza tra loro (in chilometri) e il cuscinetto (in gradi) per raggiungere la destinazione.

Consigli e avvertenze

  • Queste formule sono utilizzati ogni giorno per la navigazione pratica attorno alla Terra, ma hanno piccole imprecisioni dovute al fatto che la Terra non è una sfera perfetta. Sono abbastanza piccolo per fare poca differenza per la navigazione pratico, ma esistono.
  • Queste formule Calcolare il cuscinetto utilizzando lossodromie al fine di mantenere una rotta stabile. lossodromie, anche se si arriva a destinazione, non seguono un grande cerchio. Grandi cerchi richiedono continui cambiamenti in corso di rimanere sul cerchio, ma, a causa della curvatura della Terra, tagliare via una certa distanza rispetto alla linea Rhumb.