Google Maps Distance Request

  • VB.NET
  • .NET (FX) 4.0

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von razzzer530i.

    Google Maps Distance Request

    Moin Leute:

    Habe bereits einen Code zum Ermitteln der Entfernung von 2 Orten via Google.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Net
    3. Imports System.Text.RegularExpressions
    4. Public Class MapService
    5. ''' <summary>
    6. ''' Ermittelt über Google-Maps die KM-Entfernung zweier Orte
    7. ''' </summary>
    8. ''' <param name="source">Ausgangsort</param>
    9. ''' <param name="destination">Zielort</param>
    10. ''' <returns>KM-Entfernung</returns>
    11. Public Shared Function GetKMDistance(ByVal source As String,
    12. ByVal destination As String) As Integer
    13. Dim response As String = (New WebClient).DownloadString(
    14. String.Format("http://maps.google.de/maps?f=d&hl=de&saddr={0}&daddr={1}&output=html",
    15. source, destination))
    16. ' innerhalb des Response-Wertes nach folgendem String suchen
    17. ' Fahrt:</td><td align="right" nowrap class="timedist ul">
    18. ' <div class="noprint"><div>136 km
    19. Dim pattern As String = "Fahrt:\D+(\d+).+?km"
    20. Dim match = Regex.Match(response, pattern)
    21. If Not match.Success OrElse match.Groups.Count < 2 Then
    22. Throw New Exception("Anfrage bei GoogleMaps fehlgeschlagen!")
    23. Else
    24. Return Integer.Parse(match.Groups(1).Value)
    25. End If
    26. End Function
    27. 'Aufruf
    28. Sub Aufruf()
    29. Dim KM As Integer
    30. KM = MapService.GetKMDistance("86517", "Leipzig")
    31. MsgBox("Die Entfernung beträgt " & KM.ToString() & " KM")
    32. End Sub
    33. End Class




    Funktioniert jedoch nicht.
    Kriege jedes mal de Exception geworfen, weiß allerdings nicht wieso.

    Hat jemand eine Idee wie ich das Problem löäsen kann?
    Oder weiß jemand? Wie ich noch elichter bei Google ne Entfernung von 2 Orten abrufen kann?
    Am besten Straße und Hausnummer :D

    Besten Dank schonmal
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    @Dksksm

    ganz blöd gefragt: Wie binde ich die API richtig ein? Habe noch nie damit gearbeitet.

    Funktioniert bei mir nicht...
    Sorry ist absolutes Neuland für mich


    Habe APIMode APIResponce & nochmal APIResponce wurde nicht deklariert. Muss die API ja irgendwie einbinden aber weiß weder welche, noch woher. Aslo ist ja die distance matrix aber wie binde ich die ein? :x

    Möglicherweise hast du vlt eine alte sln rumliegen oder so? Funktioniert so gar nicht bei mir...
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „razzzer530i“ ()

    Klasse. Ich muss damit ca 260.000 Datensätze durchlaufen lassen. War es nicht bei dieser API so, dass maximal 2500 Datensätze pro 25h erlaubt waren?

    Oder bilde ich mir das nur ein ?
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    natürlich,

    soweit ich weiß darf man maximal 2500 requests pro tag machen. 50 pro sekunde. für 50$ kann man 100.000 pro tag durchjagen. Ist für mich ne Überlegung wert. Muss natürlich auf mehrere Tage und andere IPs verteilt abfragen.
    Schreibe das ganze ja in eine Datenbank die 1 mal im Monat aktualisiert werden soll. Dann kann ich ja ganz normal damit weiterarbeiten.
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~