vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: HTML/Internet/Netzwerk · Internet / Browser / IE   |   VB-Versionen: VB2005, VB200813.11.08
Entfernung zweier Orte online ermitteln

Mit Hilfe von GoogleMaps und regulären Ausdrücken die entfernung zweier Orte ermitteln.

Autor:   Maximilian OsenbergBewertung:     [ Jetzt bewerten ]Views:  17.111 
www.speedsoft-developing.deSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Dieser Tipp lehnt sich an den gleichnamigen Tipp an, der aber für VB5/6 ist:
 Online-Entfernungsermittlung zwischen zwei Orten

In VB.NET geht das ganze viel einfacher.

Erstellen Sie ein neues Klassenmodul MapService mit folgendem Code:

Public Class MapService
 
  ''' <summary>
  ''' Ermittelt über Google-Maps die KM-Entfernung zweier Orte
  ''' </summary>
  ''' <param name="source">Ausgangsort</param>
  ''' <param name="destination">Zielort</param>
  ''' <returns>KM-Entfernung</returns>
  Public Shared Function GetKMDistance(ByVal source As String, _
    ByVal destination As String) As Integer
 
    Dim response As String = (New WebClient).DownloadString( _
      String.Format("http://maps.google.de/maps?f=d&hl=de&saddr={0}&daddr={1}&output=html", _
      source, destination))
 
    ' innerhalb des Response-Wertes nach folgendem String suchen
    ' Fahrt:</td><td align="right" nowrap class="timedist ul">
    ' <div class="noprint"><div>136 km
    Dim pattern As String = "Fahrt:\D+(\d+).+?km"
    Dim match = Regex.Match(response, pattern)
    If Not match.Success OrElse match.Groups.Count < 2 Then
      Throw New Exception("Anfrage bei GoogleMaps fehlgeschlagen!")
    Else
      Return Integer.Parse(match.Groups(1).Value)
    End If
  End Function
 
End Class

Beispiel für den Aufruf:

Dim KM As Integer
KM = MapService.GetKMDistance("86517", "Leipzig")
MsgBox("Die Entfernung beträgt " & KM.ToString() & " KM")

Anmerkung:
GoogleMaps ist selbst intelligent genug, zu erkennen, ob es sich bei einer Eingabe um eine PLZ oder einen Stadtnamen handelt.