vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Ländereinstellungen... mal wieder 
Autor: Level220
Datum: 14.12.04 20:57

Hallo,

ich habe die Suchfunktion benutzt, konnte aber keine Lösung finden.

Wenn ich in den Ländereinstellungen nur das Dezimaltrennzeichen ändere stimmen die Ergebnisse der Recheoperationen nicht mehr.

Dieser Code funktioniert wenn das Trennzeichen ein "," ist.
Option Explicit
 
Const Pi As Double = 3.14159265358979
 
Function Asn(X)
' Equivalent of spreadsheet Asin(x)
Asn = 2 * Atn(X / (1 + Sqr(1 - X * X)))
End Function
 
Function Distance(ByVal Koord1 As String, ByVal Koord2 As String) As Double
'#### Berechnen der Distanz zwischen 2 Koordinaten ###
  Dim Lat1 As Double
  Dim Lon1 As Double
  Dim Lat2 As Double
  Dim Lon2 As Double
 
   Lat1 = Mid(Koord1, 1, 11) * Pi / 180 / 1000000
   Lon1 = Mid(Koord1, 12, 11) * Pi / 180 / 1000000
   Lat2 = Mid(Koord2, 1, 11) * Pi / 180 / 1000000
   Lon2 = Mid(Koord2, 12, 11) * Pi / 180 / 1000000
 
  Distance = 2 * Asn(Sqr((Sin((Lat1 - Lat2) / 2)) ^ 2 + Cos(Lat1) * Cos(Lat2) * _
    (Sin((Lon1 - Lon2) / 2)) ^ 2))
End Function
 
Private Sub Form_Load()
 
Dim Koord1 As String
Dim Koord2 As String
 
Koord1 = "+033.942536-118.408075" 'Los Angeles
Koord2 = "+040.639750-073.778925" 'New York
 
Label1.Caption = "Distance = " & Round(Distance(Koord1, Koord2) * 180 * 60 / _
  Pi) & " NM"
End Sub
Das Ergebnis ist 2144 NM.

Danke im voraus...
Dirk
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ländereinstellungen... mal wieder852Level22014.12.04 20:57
Re: Ländereinstellungen... mal wieder525Zero-G.15.12.04 14:15
Re: Ländereinstellungen... Lösung....583Level22015.12.04 18:05

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel