Implementando Latitude e Longitude em sua Aplicação
Atualmente nossas aplicações estão demandando regras de negócios cada
vez mais inovadoras e desafiantes com objetivo de conhecer nosso
cliente agregando valor ao negócio.
Com intuito de compartilhar
entre as organizações e a todos que desejarem fazer a integração em
seus aplicativos, estou disponibilizando nesse artigo passos para que
sua aplicação esteja ela disponibilizada na web e ou na intranet seja
interligada com o Google registrando a latitude e longitude de seus
clientes.
Esta aplicação faz a leitura de um arquivo
texto , com dados de cadastro do cliente e registra um arquivo texto
com a latitude e longitude destes clientes que foram encontrados no
google.
Lembrando que no nosso caso estamos gravando as
informações em um arquivo texto , mas nada impede que sejam atualizadas
essas informações na base dados .
1 – Passo :
Abrimos um projeto web no Visual Studio 2005 e escolhemos com linguagem o vb.net.
Clique na imagem para ampliar
2 – Passo :
2.1 - Adicionamos em nosso aplicativo um projeto de Dataset com os seguintes Atributos :
Cnpjcpf , Logradouro , Bairro, Cidade , Cep .
2.2– Adicionamos os seguintes componente ao nosso layout :
Button > Renomeie para Gera Informações
FileUpload
Label
3 – Passo :
Implementamos o método que efetua a leitura do arquivo e grava as informações no Dataset.
Vejamos o código :
Private Sub LerArquivoCRM()
Dim fluxoTexto As IO.StreamReader
Dim linhaTexto As String
Dim arquivo As String = FileUpload1.PostedFile.FileName
FileUpload1.SaveAs(arquivo)
Dim cnpjcpf As String
Dim logradouro As String
Dim bairro As String
Dim cidade As String
Dim cep As String
Dim row As DataSetLeituraArquivo.Tbl_AtualizaClienteCRMGUIDRow
Dim DsLeituraArquivo As New DataSetLeituraArquivo
If IO.File.Exists(arquivo) Then
fluxoTexto = New IO.StreamReader(arquivo)
linhaTexto = fluxoTexto.ReadLine
While linhaTexto <> Nothing
cnpjcpf = CType(linhaTexto.Split(";"c).GetValue(0), String)
logradouro = CType(linhaTexto.Split(";"c).GetValue(1), String)
bairro = CType(linhaTexto.Split(";"c).GetValue(2), String)
cidade = CType(linhaTexto.Split(";"c).GetValue(3), String)
cep = CType(linhaTexto.Split(";"c).GetValue(4), String)
linhaTexto = fluxoTexto.ReadLine
row = DsLeituraArquivo.Tbl_AtualizaClienteCRMGUID.NewTbl_AtualizaClienteCRMGUIDRow()
row.cnpjcpf = cnpjcpf
row.ds_logradouro = logradouro
row.ds_bairro = bairro
row.ds_cidade = cidade
row.ds_cep = cep
DsLeituraArquivo.Tbl_AtualizaClienteCRMGUID.Rows.Add(row)
End While
fluxoTexto.Close()
BuscaLatitudeLongitude(DsLeituraArquivo)
End If
End Sub
4 – Passo :
Declaramos uma variável que aponta para o caminho e o nome do arquivo
que será gravado com as informações de latitude e longitude.
Lembrando que em nosso artigo aponta para diretório especifico , mas
nada impende que seja implementado por parâmetros que pode ser
especificado efetuando a leitura do web.config da aplicação.
Private arquivoINSERE As String = "C:\ClientesLatitude.txt"
5 – Passo :
Implementamos agora o metodo que vai buscar os dados do dataset e
chamar a API do google para registrar as informações de latitude e
longitude gravando no arquivo texto a saida.
Lembrete : Para
a utilização da API do google deve ser feito o registro , para obter a
chave de registro que será passada na url como parametro.
Private Sub BuscaLatitudeLongitude(ByVal ds As DataSetLeituraArquivo)
strm = New StreamWriter(arquivoINSERE, True)
For Each dr As DataSetLeituraArquivo.Tbl_AtualizaClienteGUIDRow In ds.Tbl_AtualizaClienteGUID.Rows
Dim Endereco As String = dr.ds_logradouro
Dim CEP As String = dr.ds_cep
Dim Rua As String = dr.ds_logradouro
Dim BairroLt As String = dr.ds_bairro
Dim CidadeLt As String = dr.ds_cidade
Dim url As String = "http://maps.google.com/maps/geo?q=" &
HttpUtility.UrlEncode(Endereco & CEP) &
"&output=csv&key=ChaveRegistrono Google"
Dim req As WebRequest = HttpWebRequest.Create(url)
req.Timeout = 30000
Dim res As WebResponse = req.GetResponse()
Dim sr As New StreamReader(res.GetResponseStream())
Try
Dim strRetorno As String = sr.ReadToEnd()
If strRetorno Is Nothing OrElse strRetorno.Equals(String.Empty) Then
Throw New Exception("Not found!")
End If
Dim Latitude As String = strRetorno.Split(",")(2)
Dim Longitude As String = strRetorno.Split(",")(3)
strmErro.WriteLine("CNPJ/CPF: " & dr.cnpjcpf & " Latitude: "
& Latitude.ToString & " Longitude: " & Longitude.ToString)
Finally
sr.Close()
End Try
Next
strmErro.Close()
Label1.Text = " Informações Atualizadas "
End Sub
6 – Passo :
Implementamos a chamada dos metodos pelo cliente do botão Gera
Informações e fazemos a validação para saber se antes efetuar a geração
de informações o arquivo foi selecionado.
If FileUpload1.HasFile Then
LerArquivoCRM()
Else
Label1.Text = " Selecione um arquivo de extensão .TXT"
End If
7 – Passo :
Finalmente chegamos ao final de nossa aplicação e temos um layout que
pode ser visualizado abaixo e uma inteligência integrada com Google
com um grande poder de integração de valor ao negócio.
Clique na imagem para ampliar
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.