Der Abstand und natürlich zwischen zwei Punkten auf einer Kugel kann anhand von zwei Formeln werden. Das Problem ist gut definiert und dient als eine einfache Aufgabe für eine Programmiersprache wie Visual Basic. Jedoch muss eine Wahl zwischen einer geraden , unveränderliche Kurs ( Rhumb Linien) oder eine effizientere gekrümmten Verlauf , die ausnutzt, der Kurve der Erde gemacht werden . Anleitung
1
Erstellen eines neuen Projekts durch Klick auf " Datei" und " New Project".
2
Drag vier Labels aus der Toolbox und in Ihr Projekt und ordnen sie in einer Linie von oben nach unten. Klicken Sie auf jedes Etikett und in der Infobox , ändern Sie das Textfeld so , dass sie "Starten Latitude ", " Ending Latitude ", " Ab Longitude ", " lesen Ending Länge . "
3 < p > Ziehen Sie die vier Textfelder aus der Toolbox, und legen Sie eine nur auf der rechten Seite jedes Etikett . Klicken Sie auf jedes Textfeld und in der Infobox , ändern Sie das Feld , um die folgenden Namen widerspiegeln : . " StartLatTextBox ", " endLatTextBox ", " startLongTextBox ", " endLongTextBox "
4
Ziehen Sie eine Schaltfläche aus der Toolbox und legen Sie sie an der Unterseite des Projekts. .
Dim Lamelle = Double.Parse ( startLatTextBox.Text )
: Doppelklicken Sie darauf, um den Code-Editor geben
5
die folgende im " Button1 " Methode Einfügen
Dim slong = Double.Parse ( startLongTextBox.Text )
Dim ELAT = Double.Parse ( endLatTextBox.Text )
Dim eLong = Double.Parse ( endLongTextBox.Text )
Dim DLAT = D2R (Elat - Stab)
Dim dLong = D2R ( eLong - slong )
Dim dPhi = Math.Log ( Math.Tan (Elat /2 + Math . PI /4) /Math.Tan ( Vorflügel /2 + Math.PI /4) )
Dim q = new double
( dPhi = 0) Then
< p > q = Math.Cos ( Stab)
Else
q = DLAT /dPhi
End If
( Math.Abs ( dLong ) > ; Math.PI ) Dann
IIf ( dLong > 0 , dLong = (2 * Math.PI - dLong ) * -1 , dLong = 2 * Math.PI + dLong )
End If Dim
earthRadius = 6371 REM Kilometer
Dim distance = Math.Sqrt ( DLAT ^ 2 + q ^ 2 * dLong ^ 2) * earthRadius
Dim Lager = Math.Atan2 ( dLong , dPhi )
Lager = Lager * 180 /Math.PI
MessageBox.Show ( "Distance =" & Entfernung & " . Course =" & Ausrücklager)
der obige Code macht Gebrauch von einer " D2R " ( Grad in Bogenmaß )-Funktion , die es noch nicht gibt , so fügen Sie den folgenden Code direkt unter dem " End Function "-Anweisung für " Button1 . "
< p > Public Function D2R (ByVal Angle As Double ) As Double
D2R = Winkel * Math.PI /180
End Function
6
Klicken Sie auf den grünen Pfeil, um starten Sie Ihr Programm . Jetzt können Sie ein beliebiges Paar von Längen-und Breitengrad -Koordinaten ( im Dezimalformat ) und finden Sie den Abstand zwischen ihnen ( in Kilometer ) und das Lager ( in Grad) , um das Ziel zu erreichen.