Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1340to1344
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

Geocoding in VBA

Geocoding in VBA
05.12.2013 11:32:18
Georg
Guten Tag zusammen,
ich versuche mit nachfolgender Funktion einen String an Virtualearth zu senden (das Googlemaps von BING) und eine vollständige Addresse zurück zu erhalten.
Leider kann ich die zurückerhaltene XML nicht auslesen. Ziel wäre vor allem der Bereich "FromattedAddress". Ich lande immer im Bereich "XMLKnoten is nothing"
Kann mir hier BITTE jemand helfen.
Function getBingGeocode(sAddr As String) As String
Dim xhrRequest As XMLHTTP60
Dim domResponse As DOMDocument60
Dim ixnStatus As IXMLDOMNode
Dim ixnMessage As IXMLDOMNode
Dim ixnFAdr As IXMLDOMNode
Dim sQuery As String
Dim xmlKnoten As IXMLDOMNode
Dim X As IXMLDOMNode
Dim nsString As String
Dim xpathKnoten As String
Set xhrRequest = New XMLHTTP60
sQuery = "http://dev.virtualearth.net/REST/v1/Locations?" & _
"key=AjDAVwKaeYct-vJOT8sJ0NJeZXln3Krmwc1HOG_3QF-nYcVH8wHmaGnRVOPwVzaa&" & _
"o=xml&" & _
"c=de&" & _
"q=" & Replace(sAddr, " ", "+")
xhrRequest.Open "GET", sQuery, False
xhrRequest.send
Set domResponse = New DOMDocument60
domResponse.LoadXML xhrRequest.responseText
domResponse.async = False
domResponse.validateOnParse = True
Set xmlKnoten = domResponse.SelectSingleNode("/*")
nsString = ""
For Each X In xmlKnoten.Attributes
If Left(X.XML, 5) = "xmlns" Then
nsString = nsString & " " & Replace(X.XML, """", "'")
End If
Next
domResponse.setProperty "SelectionNamespaces", nsString
MsgBox nsString
xpathKnoten = "/StatusCode"                    ' Knoten-Pfad für die XPath-Anweisung
Set xmlKnoten = domResponse.SelectSingleNode(xpathKnoten)    ' XPath-Anweisung
If xmlKnoten Is Nothing Then
MsgBox xpathKnoten & "-Knoten nicht gefunden. Vermutlich falsche XML-Struktur oder kein  _
Namespace angegeben", _
vbCritical
Exit Function
End If
Set ixnStatus = domResponse.SelectSingleNode("/Response/StatusCode")
Set ixnMessage = domResponse.SelectSingleNode("//StatusDescription")
Set ixnFAdr = domResponse.SelectSingleNode("//FormattedAddress")
If ixnStatus.Text  "OK" Then
MsgBox ixnMessage.Text
MsgBox ixnFAdr.Text
End
End If
getBingGeocode = ixnFAdr.Text
End Function

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Geocoding in VBA
05.12.2013 16:21:47
Luschi
Hallo Georg,
hättest Du diesen Code in eine Demo-Excel-Datei gesteckt, gleich den richtigen Vba-Verweis dazu gesetzt (Microsoft XML, v6.0) und eine Demo-Textkette für den Aufruf der Funktionion genannt, könnte ich schon längst testen.
So habe ich erst mal ein bischen in 'Google' schmökern müssen und die Funktion zun laufen zu bringen.
Aber ohne eine Demo-Textkette mache ich erst mal nicht weiter.
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige