🔥 Apps, books, system as a service, podcast and more



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.

Top