Ich benutze HERE Maps API mit VBA Geocodding, um meine Adresse zu validieren und geben Sie die Länge & der Adresse. Ich bekomme die Antwort, kann aber die Antwort nicht speichern und verwenden.HERE Maps API: Kann die Antwort nicht speichern
Im Anschluss ist mein Code:
Private Sub Execute_Click()
Dim address, address1, address2, address3, state, city, zip As String
Dim appId As String
Dim appCode As String
Dim hereServerName As String
Dim strQuery As String
Dim strLatitude As String
Dim strLongitude As String
Dim addressGeocode As String
Dim hereResult As New MSXML2.DOMDocument
Dim hereService As New MSXML2.XMLHTTP
Dim rNodes As MSXML2.IXMLDOMNodeList
Dim rNode As MSXML2.IXMLDOMNode
hereServerName = "https://geocoder.cit.api.here.com/6.2/geocode.xml?"
appId = "uL2kjU0xrylpwTQIgrl7"
appCode = "2jhjonGD4MXzODki5T62Mg"
Dim succ, actions As Integer
succ = 0
actions = 9
For Row = 2 To actions
On Error Resume Next
address1 = Sheet1.Range("C" & Row)
address2 = Sheet1.Range("D" & Row)
address3 = Sheet1.Range("E" & Row)
city = Sheet1.Range("F" & Row)
state = Sheet1.Range("G" & Row)
zip = Sheet1.Range("H" & Row)
If address1 <> "" Then
address = address1
End If
If address2 <> "" Then
address = address & "," & address2
End If
If address3 <> "" Then
address = address & "," & address3
End If
address = address & "," & city & "," & state & "," & zip
address = URLEncode(address)
strQuery = hereServerName & "searchtext=" & address & "&app_id=" & appId & "&app_code=" & appCode & "&gen=9"
hereService.Open "GET", strQuery, False
hereService.send
hereService.waitForResponse
'I get the repose for the request but i am unable to store it in the here Result[Xml response][1]
MsgBox (hereService.responseText)
hereResult.LoadXML (hereService.responseText) 'Result not being stored
'I am unable to retrive any data from this statment.
Set rNodes = hereResult.getElementsByTagName("DisplayPosition")
For Each rNode In rNodes
strLatitude = rNode.ChildNodes(0).ChildNodes(0).Text
strLongitude = rNode.ChildNodes(0).ChildNodes(1).Text
addressGeocode = strLatitude & "," & strLongitude
Next rNode
Sheet1.Range("I" & Row) = addressGeocode
Next Row
Exit Sub
End Sub
Public Function URLEncode(ByVal StringVal As String, Optional SpaceAsPlus As Boolean = False) As String
Dim StringLen As Long: StringLen = Len(StringVal)
If StringLen > 0 Then
ReDim result(StringLen) As String
Dim i As Long, CharCode As Integer
Dim Char As String, Space As String
If SpaceAsPlus Then Space = "+" Else Space = "%20"
For i = 1 To StringLen
Char = Mid$(StringVal, i, 1)
CharCode = Asc(Char)
Select Case CharCode
Case 97 To 122, 65 To 90, 48 To 57, 45, 46, 95, 126
result(i) = Char
Case 32
result(i) = Space
Case 0 To 15
result(i) = "%0" & Hex(CharCode)
Case Else
result(i) = "%" & Hex(CharCode)
End Select
Next i
URLEncode = Join(result, "")
End If
End Function
Bitte helfen Sie mir, dieses Problem zu beheben.
"Die Antwort kann nicht gespeichert und verwendet werden" - Sie müssen dies möglicherweise etwas erweitern. Es wäre hilfreich, ein Beispiel dafür anzugeben, wie die Antwort aussieht. Wenn die Antwort JSON ist, sollten Sie sich https://github.com/VBA-tools/VBA-JSON ansehen –