GetDistance-Funktion mit BingMaps/Excel
23.03.2019 20:08:03
Rudolf
bei dem Versuch, eine "getDistance"-Funktion unter Verwendung von BingMaps in Excel (Office 365 Home) zu implementieren, komme ich nicht so recht weiter.
Folgende Voraussetzung ist gegeben:
A1 = Adresse_1 (in Form von Straße Hausnummer, PLZ Ort)
B1 = Adresse_2 (in Form von Straße Hausnummer, PLZ Ort)
C1 = =getDistance(A1;B1)
Mein VBAProjekt:
Public Function GetDistance(start As String, dest As String)
Dim firstVal As String, lastVal As String
firstVal = "http://dev.virtualearth.net/REST/v1/Routes?"
lastVal = "&hier_steht_mein_Bing_Maps_Basic_Key"
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
Url = firstVal & "wayPoint" & ".1=" & start & "&wayPoint" & ".2=" & 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, """travelDistance"" {:") = 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), ".", Application.International(xmlListSeparator)) _
GetDistance = CDbl(tmpVal)
Exit Function
ErrorHandl:
GetDistance = -1
End Function
Der Code gibt -1 in der Zelle C1 aus.Nachdem ich zu Testzwecken den ErrorHandl: auf "GetDistance = Url" abgeändert habe, erscheint die korrekte Url für den Aufruf. Im Browser aufgerufen gibt der Aufruf auch die gewünschen Daten zurück.
Ich schaffe es aber nicht, die im responseText aufgeführte "travelDistance" in die Zelle C1 zu bringen.
Für Hilfe bin ich sehr dankbar.