Anzeige
Archiv - Navigation
1680to1684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

GetDistance-Funktion mit BingMaps/Excel

GetDistance-Funktion mit BingMaps/Excel
23.03.2019 20:08:03
Rudolf
Guten Tag zusammen,
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.

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Folgendes läuft bei mir ohne...
27.03.2019 08:36:11
Case
Hallo, :-)
... Probleme: ;-)
Option Explicit
Public Sub Main()
Tabelle1.Range("C1").Value = fncEntf(WorksheetFunction.EncodeURL _
(Tabelle1.Range("A1").Text), _
WorksheetFunction.EncodeURL(Tabelle1.Range("B1").Text), _
"Bing_Key HIER EINTRAGEN!!!!!")
End Sub
Function fncEntf(ByVal strFrom As String, ByVal strTo As String, _
ByVal strBingApi As String) As String
Dim objXML As Object
Set objXML = CreateObject("MSXML2.XMLHTTP.3.0")
With objXML
.Open "get", "https://dev.virtualearth.net/REST/V1/Routes/Driving?o=xml&wp.0=" & _
strFrom & "&wp.1=" & strTo & "&avoid=minimizeTolls&key=" & strBingApi, "false"
.send
If .readyState = 4 Then
fncEntf = .responseXML.SelectNodes("//TravelDistance").Item(0).Text
End If
End With
Set objXML = Nothing
End Function
Allerdings nicht mit Massenabfragen. ;-)
Servus
Case

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige