Siga este artigo e crie sua própria ferramenta geográfica com a qual você pode obter as coordenadas de latitude e longitude de um endereço. Conversores como este são comumente usados por corretores de imóveis.
Faça o download
Se você deseja começar a usar o software o mais rápido possível, então você pode:
Caso contrário, se você quiser DIY, pode ler o conteúdo abaixo.
Vamos preparar a GUI
Você só precisa de uma única planilha do Excel, e pode nomeá-la como desejar. Neste exemplo, estou usando o nome padrão "Planilha1". O próximo passo é adicionar os cabeçalhos necessários a esta planilha. O conversor de latitude e longitude fornece resultados precisos para o endereço inserido, desde que a entrada inclua bairro, estado, CEP e país. Como mostrado na imagem, prepare os cabeçalhos. Vamos adicionar Latitude e Longitude como as duas últimas colunas. Também precisamos de um botão para permitir que o usuário faça a conversão. Então, vamos inserir uma forma e preenchê-la com uma cor para que pareça um botão.
Vamos torná-lo funcional
O script fornecido aqui deve ser copiado para um novo módulo. Não se esqueça de salvar sua pasta de trabalho como arquivo de pasta de trabalho habilitado para macro. O Sub “FindThis” deve ser anexado ao botão que acabamos de criar.
vamos testar
Adicione o endereço e outras informações nas respectivas colunas. Clique no botão para executar a macro, que exibirá as coordenadas de latitude e longitude de todos os endereços listados na planilha. A macro começará na linha 2 e continuará até encontrar uma linha vazia.
Como funciona?
Com o script criamos duas funções. Um para buscar o valor Lat e outro para buscar o valor Long. Usando um loop FOR, estamos passando cada endereço para essas funções e exibindo o resultado na tela.
Script
Function GETLAT(v_address As String, v_suburb As String, v_state As String, v_postcode As Long)
Dim URl As String, lastRow As Long
Dim xmlHttp As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
URl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & Application.WorksheetFunction.Substitute(v_address, " ", "+") & Application.WorksheetFunction.Substitute(v_suburb, " ", "+") & Application.WorksheetFunction.Substitute(v_state, " ", "+") & Application.WorksheetFunction.Substitute(v_postcode, " ", "+") & ",Australia"
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
xmlHttp.Open "GET", URl, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
Set html = CreateObject("htmlfile")
html.body.innerhtml = xmlHttp.ResponseText
v_string = html.body.innerhtml
x = InStr(1, v_string, "<LAT>")
If x <> 0 Then
y = InStr(x + 5, v_string, "</LAT>")
GETLAT = Mid(v_string, x + 5, y - (x + 5))
End If
End Function
Function GETLNG(v_address As String, v_suburb As String, v_state As String, v_postcode As Long)
Dim URl As String, lastRow As Long
Dim xmlHttp As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
URl = "https://maps.googleapis.com/maps/api/geocode/xml?address=" & Application.WorksheetFunction.Substitute(v_address, " ", "+") & Application.WorksheetFunction.Substitute(v_suburb, " ", "+") & Application.WorksheetFunction.Substitute(v_state, " ", "+") & Application.WorksheetFunction.Substitute(v_postcode, " ", "+") & ",Australia"
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
xmlHttp.Open "GET", URl, False
xmlHttp.setRequestHeader "Content-Type", "text/xml"
xmlHttp.send
Set html = CreateObject("htmlfile")
html.body.innerhtml = xmlHttp.ResponseText
v_string = html.body.innerhtml
x = InStr(1, v_string, "<LNG>")
If x <> 0 Then
y = InStr(x + 5, v_string, "</LNG>")
GETLNG = Mid(v_string, x + 5, y - (x + 5))
End If
End Function
Sub FindThis()
For r = 2 To 5
Range("F" & r).Value = GETLAT(Range("A" & r).Value, Range("B" & r).Value, Range("C" & r).Value, Range("D" & r).Value)
Range("G" & r).Value = GETLNG(Range("A" & r).Value, Range("B" & r).Value, Range("C" & r).Value, Range("D" & r).Value)
Next r
End Sub
Se você não estiver recebendo resultados adequados usando o script, o Excel corrompido pode ser um motivo provável. Você pode então usar Ferramenta de recuperação de arquivos do Excel como DataNumen Excel Repair para corrigir o Excel.
Introdução do autor:
Nick Vipond é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo reparar problema de documento e produtos de software de recuperação do Outlook. Para mais informações visite www.datanumen.com
