Rubrik: HTML/Internet/Netzwerk · Internet / Browser / IE | VB-Versionen: VB2005, VB2008 | 13.11.08 |
Entfernung zweier Orte online ermitteln Mit Hilfe von GoogleMaps und regulären Ausdrücken die entfernung zweier Orte ermitteln. | ||
Autor: Maximilian Osenberg | Bewertung: | Views: 17.168 |
www.speedsoft-developing.de | System: 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.