Ir para conteúdo
Fórum Script Brasil
  • 0

Código para procurar latitude e longitude


Gustavo Martins

Pergunta

Boa tarde!

Eu usei durante muito tempo um arquivo para encontrar a latitude e longitude de diversos endereços através do VBA. Porém, essa semana começou a ocorrer um erro e não encontro o problema. Poderiam me ajudar?

Sub GetCoordinates()
    Dim i As Integer
    Dim URL As String
    Dim location As String
    Dim latitude As String
    Dim longitude As String
    Dim apikey As String: apikey = "AIzaSyC6g65th8NxOLI7CVdtXPCk2ro4oNm5zE4"
    
    Dim myRequest As XMLHTTP60
    Dim myDomDoc As DOMDocument60
    
    'Limpar resultados
    Coordinates.Range("tblLocations").Range(Cells(1, 2), Cells(Coordinates.Range("tblLocations").Rows.Count, 4)).ClearContents
    
    For i = 1 To Coordinates.Range("tblLocations").Rows.Count
        location = WorksheetFunction.EncodeURL(Coordinates.Range("tblLocations").Cells(i, 1))
        
        If location <> "" Then
            URL = "https://maps.googleapis.com/maps/api/geocode/xml?" & _
                "address=" & location & _
                "&key=" & apikey
            'Debug.Print Len(URL) & " - " & URL
        
            Set myRequest = New XMLHTTP60
            myRequest.Open "GET", URL, False
            myRequest.send
                
            Set myDomDoc = New DOMDocument60
            myDomDoc.LoadXML myRequest.responseText
            
            If myDomDoc.SelectSingleNode("/GeocodeResponse/status").Text = "OK" Then
                latitude = myDomDoc.SelectSingleNode("/GeocodeResponse/result/geometry/location/lat").Text
                longitude = myDomDoc.SelectSingleNode("/GeocodeResponse/result/geometry/location/lng").Text
                
                Coordinates.Range("tblLocations").Cells(i, 2) = 1
                Coordinates.Range("tblLocations").Cells(i, 3) = CDbl(Strings.Replace(latitude, ".", ","))
                Coordinates.Range("tblLocations").Cells(i, 4) = CDbl(Strings.Replace(longitude, ".", ","))
            Else
                'Não foi possível localizar o endereço
                Coordinates.Range("tblLocations").Cells(i, 2) = 0
                Coordinates.Range("tblLocations").Cells(i, 3) = "NOT_FOUND"
                Coordinates.Range("tblLocations").Cells(i, 4) = "NOT_FOUND"
            End If
        End If
    Next i

    Set myRequest = Nothing
    Set myDomDoc = Nothing
End Sub
 

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...