collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 39
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 1
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13611
  • stats Beiträge insgesamt: 60959
  • stats Themen insgesamt: 8314
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Auslesen aus Internetseite (Entfernungen)  (Gelesen 253 mal)

Offline Berlin-Lackierung.de

  • Newbie
  • Beiträge: 21
  • „Bildung lässt sich nicht downloaden.“
Auslesen aus Internetseite (Entfernungen)
« am: Mai 26, 2017, 14:08:01 »
Hab da ein kleines Problem mit dem ich mich sowas von gar nicht auskenne...
Ich möchte von der Seite Entfernungsberechnung mit Googlemaps (Beispiel):

http://maps.googleapis.com/maps/api/distancematrix/xml?origins=33397%20Lange%20Str.%202+DE&destinations=33098%20Marienstr.%2029+DE&mode=driving&language=de-DE&sensor=false

die Km (<text>28,8 km</text>) auslesen und in meiner Datenbank im Feld "Entfernung" speichern.

Kann mir da jemand helfen dies per VBA hinzubekommen? Vielleich (wäre super), wenn die Seite gar nicht erst (sichtbar) geöffnet würde.

Ach Ja, ich verwende Mozilla als Browser.

Vielen Dank.
„Bei einem Fußballspiel verkompliziert sich alles durch die Anwesenheit der gegnerischen Mannschaft.“ - Jean Paul Sartre
 

Offline steffen0815

  • Newbie
  • Beiträge: 33
Re: Auslesen aus Internetseite (Entfernungen)
« Antwort #1 am: Mai 26, 2017, 14:14:53 »
Hallo,
dafür sollten sich unzählige Beispiele im Netz finden lassen.
VBA - Entfernungsberechnung mit Google Maps
« Letzte Änderung: Mai 26, 2017, 14:37:50 von steffen0815 »
Gruß Steffen
 

Offline Berlin-Lackierung.de

  • Newbie
  • Beiträge: 21
  • „Bildung lässt sich nicht downloaden.“
Re: Auslesen aus Internetseite (Entfernungen)
« Antwort #2 am: Mai 26, 2017, 14:32:46 »
Ja, hatte ich schon "durchsucht". Leider stelle ich mich echt zu doof an - oder was auch immer mein Fehler ist  :o
Derzeit habe ich nur die jeweiligen Links zu Google Maps (also Ausgangspunkt und Zielpunkt) hinbekommen - leider jedoch nicht das auslesen der Entfernung zu Speicherung.
„Bei einem Fußballspiel verkompliziert sich alles durch die Anwesenheit der gegnerischen Mannschaft.“ - Jean Paul Sartre
 

Offline steffen0815

  • Newbie
  • Beiträge: 33
Re: Auslesen aus Internetseite (Entfernungen)
« Antwort #3 am: Mai 26, 2017, 14:36:53 »
Hallo,
Dieser (angepasste) Code scheint vielversprechend:Public Function GetDistance(start As String, dest As String)
Dim firstVal As String, secondVal As String, lastVal As String
Dim objHTTP As Object, url As String, regex As Object, matches As Object, tmpVal As String
    firstVal = "http://maps.googleapis.com/maps/api/distancematrix/json?origins="
    secondVal = "&destinations="
    lastVal = "&mode=car&language=pl&sensor=false"
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    url = firstVal & Replace(start, " ", "+") & secondVal & Replace(dest, " ", "+") & lastVal
    objHTTP.Open "GET", url, False
    objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
    objHTTP.send ("")
    If InStr(objHTTP.responseText, """distance"" : {") = 0 Then GoTo ErrorHandl
    Set regex = CreateObject("VBScript.RegExp"): regex.Pattern = """value"".*?([0-9]+)": regex.Global = False
    Set matches = regex.Execute(objHTTP.responseText)
    tmpVal = Replace(matches(0).SubMatches(0), ".", ",")
    GetDistance = CDbl(tmpVal)
    Exit Function
ErrorHandl:
    GetDistance = -1
End Function
Zitat von: Direktfenster
? GetDistance("berlin","Hamburg")
 288834
? round(GetDistance("Lange Str. 2, 33397 Rietberg, Deutschland","Marienstraße 29, 33098 Paderborn, Deutschland")/1000 )
 28
Gruß Steffen
 
Folgende Mitglieder bedankten sich: Berlin-Lackierung.de

Offline Berlin-Lackierung.de

  • Newbie
  • Beiträge: 21
  • „Bildung lässt sich nicht downloaden.“
Re: Auslesen aus Internetseite (Entfernungen)
« Antwort #4 am: Mai 29, 2017, 08:07:20 »
SUPER - funktioniert - PERFEKT - Danke :)
„Bei einem Fußballspiel verkompliziert sich alles durch die Anwesenheit der gegnerischen Mannschaft.“ - Jean Paul Sartre
 

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 646
Re: Auslesen aus Internetseite (Entfernungen)
« Antwort #5 am: Mai 30, 2017, 13:24:03 »
Hier mein Code dafür. Die **** gegen dein eigenen API Zugangscode tauschen. Den gibts von Google kostenlos.

Function EntfernungKm(Startort As String, StartStraße As String) ', ZielOrt As String, ZielStraße As String) ---> kann bei variablem Ziel noch in die Klammer aufgenommen werden. Die Festlegung des Ziels weiter unten kann dann entfallen.

    On Error GoTo e

    Const BASE_URL = "https://maps.googleapis.com/maps/api/distancematrix/xml?"
    Dim strStart As String
    Dim strZiel As String
    Dim URL As String
    Dim strSuche As String
    Dim ZielOrt As String
    Dim ZielStraße As String
   
    ZielOrt = "Berlin"
    ZielStraße = "Messeweg 75"
       
    strStart = "origins=" & Startort & " " & StartStraße & " +DE&"
    strZiel = "destinations=" & ZielOrt & " " & ZielStraße & "+DE&mode=driving&key=***************"
   
    URL = BASE_URL & strStart & strZiel
       
    With CreateObject("new:{88D96A0B-F192-11D4-A65F-0040963251E5}")
        .Open "GET", URL, False
        .setRequestHeader "Content-Type", "text/plain; charset=UTF-8"
        .Send
   
        Set EntfernungKm = CreateObject("new:{88D96A05-F192-11D4-A65F-0040963251E5}")
        strSuche = .responseText
    End With
 
    strSuche = Replace(strSuche, vbLf, "") ' vbCrLf, vbTab, Space$(2))
    Debug.Print strSuche
    strSuche = Mid(strSuche, InStr(strSuche, "<distance>    <value>") + 21, 10)
    strSuche = Mid(strSuche, 1, InStr(strSuche, "<") - 1)
   
    EntfernungKm = Val(strSuche) / 1000
   Exit Function
   
e:
    EntfernungKm = 0

End Function
 
Folgende Mitglieder bedankten sich: PhilS