Meu cálculo de distância do Google Maps parou de funcionar...
segue o código que estou usando:
Aparentemente minha API Key não está sendo aceita...
Já fui no console do google e a mesma está ativa, meu form estava funcionando até dia 9 de outubro.
segue o código que estou usando:
- Código:
Option Compare Database
Option Explicit
Private Sub cmdCalcular_Click()
On Error GoTo trata_erro
'Alvaro Teixeira (ahteixeira) 2022 para MaximoAccess
'Requer função: fncAPIdistancematrix
'Requer função: separaEntreDuasStringsXML
'Requer função: DLTiraAcentos
'Requer função: DLTiraAcentos_GetCorrectChar
Dim xData, xReturn, xPos
xData = fncAPIdistancematrix() 'fazer leitura url
xReturn = separaEntreDuasStringsXML(xData, "<status>", "</status>") 'verifica se deu erro
If xReturn = "INVALID_REQUEST" Then MsgBox "Erro na leitura: INVALID_REQUEST", vbCritical, "": Exit Sub
xPos = InStr(xData, "<duration>") 'obter duracao
xData = Right(xData, Len(xData) - xPos)
Me.txtDuration = separaEntreDuasStringsXML(xData, "<text>", "</text>")
xPos = InStr(xData, "<distance>") 'obter distancia
xData = Right(xData, Len(xData) - xPos)
Me.txtDistance = separaEntreDuasStringsXML(xData, "<value>", "</value>")
Me.txtKm = txtDistance / 1000
Me.txtCusto.Enabled = True
Me.txtCustoKm.Enabled = True
Me.txtCusto = (txtCustoKm * Val(txtDistance) * 2) / 1000
Me.txtCustoKm.SetFocus
Exit Sub
trata_erro: ExplicaErro
End Sub
Function separaEntreDuasStringsXML(strTotal, strInicio As String, strFim As String)
On Error GoTo trata_erro
Dim i As Long, j As Long
i = InStr(strTotal, strInicio)
j = InStr(strTotal, strFim)
separaEntreDuasStringsXML = Mid(strTotal, i + Len(strInicio), j - i - Len(strInicio))
Exit Function
trata_erro: ExplicaErro
End Function
Function fncAPIdistancematrix() As String
On Error GoTo trata_erro
Dim xmlHTTP As XMLHTTP60
Dim sUrl, sResposta As String
Set xmlHTTP = New XMLHTTP60
sUrl = "https://maps.googleapis.com/maps/api/distancematrix/xml?destinations=" & Chr(34) & DLTiraAcentos(Me.txtDestin) & Chr(34) & "&origins=" & Chr(34) & DLTiraAcentos(Me.txtOrigin) & Chr(34) & "&units=metric&key=" & Me.txtAPIKey & "&sensor=False" & "&Mode=driving"
xmlHTTP.Open "GET", sUrl, False
xmlHTTP.send
sResposta = Trim(xmlHTTP.responseText)
fncAPIdistancematrix = sResposta
Exit Function
trata_erro: ExplicaErro
End Function
Public Function DLTiraAcentos(ByVal strOriginal As String)
On Error GoTo trata_erro
Dim strToReturn As String
strToReturn = ""
Dim i As Integer
For i = 1 To Len(strOriginal)
strToReturn = strToReturn & DLTiraAcentos_GetCorrectChar(Mid$(strOriginal, i, 1))
Next i
DLTiraAcentos = strToReturn
Exit Function
trata_erro: ExplicaErro
End Function
Public Function DLTiraAcentos_GetCorrectChar(ByVal strChar As String) As String
On Error GoTo trata_erro
Dim LetrasComAcentos As String
Dim LetrasSemAcentos As String
LetrasComAcentos = "ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊáíóúéäïöüëàìòùèãõâîôûêÇç"
LetrasSemAcentos = "AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc"
Dim i As Integer
For i = 1 To Len(LetrasComAcentos)
If strChar = Mid$(LetrasComAcentos, i, 1) Then
DLTiraAcentos_GetCorrectChar = Mid$(LetrasSemAcentos, i, 1)
Exit Function
End If
Next
DLTiraAcentos_GetCorrectChar = strChar
Exit Function
trata_erro: ExplicaErro
End Function
Aparentemente minha API Key não está sendo aceita...
Já fui no console do google e a mesma está ativa, meu form estava funcionando até dia 9 de outubro.
Última edição por ribeiroguaruja em 25/10/2024, 16:44, editado 1 vez(es)