MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    Gmaps com problemas na API

    ribeiroguaruja
    ribeiroguaruja
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 30/05/2015

    Gmaps com problemas na API Empty Gmaps com problemas na API

    Mensagem  ribeiroguaruja 12/10/2024, 17:24

    Meu cálculo de distância do Google Maps parou de funcionar...

    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.


    .................................................................................
    affraid

      Data/hora atual: 22/10/2024, 02:40