menu
Fórum Adianti
menu Menu
Componente TGeoCode Olá pessoal. Como houveram pedidos para esse componente, resolvi desenvolver ele. Esse componente serve para encontrar a latitude e a longitude usando um endereço. Para usá-lo é muito simples: $geocode = new TGeoCode('Endereço a ser localizado'); $geocode->request(); if($geocode->getStatus() == 'OK') { echo $geocode->getLat(); echo $geocode->getLng(); echo $geocode->getForma...
GF
Componente TGeoCode  
Fechado
Olá pessoal. Como houveram pedidos para esse componente, resolvi desenvolver ele. Esse componente serve para encontrar a latitude e a longitude usando um endereço. Para usá-lo é muito simples:

$geocode = new TGeoCode('Endereço a ser localizado');
$geocode->request();

if($geocode->getStatus() == 'OK') {

echo $geocode->getLat();
echo $geocode->getLng();
echo $geocode->getFormattedAddress();
}

É isso ai! Espero que tenham gostado.

GURUX

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (7)


FC

Falo nada !!! esses caras são feras !!!! vai quebrar minha arvore aqui...
PD

Show de bola :-)

Parabéns GURUX!
PL

Muito massa ..
JA

o endereco formatado retornou outra cidade, porque ?
JA

descobrir, estava usando somente o nome da rua na pesquisa, quando incluir rua,cidade ele retornou correto.

Como seria para criar o link para abrir no google maps?
RB

Guilherme,

Estou tentando gravar o endereço retornado pela classe acima, porém sem sucesso, pode me auxiliar.

Preciso pegar apenas o latitude e longitude e gravar no banco.

  1. <?php
  2.  /*
  3.   *Método responsável por retornar o id endereco
  4.   *cadastrado na base de dados
  5.   *@param cep
  6.  */
  7.   public static function BuscaEnderecoId($cep)
  8.   {
  9.     try
  10.     {
  11.        TTransaction::open('centinel');
  12.          //cria um repositório para carregar 'Endereco'
  13.          $endereco  = new TRepository('Endereco');
  14.          $limit 1;
  15.          //cria um critério para seleção de dados
  16.          $criteria = new TCriteria;
  17.          $criteria->add(new TFilter('cep''=',str_replace("-",""$cep)));
  18.          $criteria->setProperty('limit',$limit);
  19.          $objects $endereco->load($criteria);
  20.          
  21.          if($objects)
  22.          {
  23.              foreach($objects as $object)
  24.              {
  25.                 $id_cep =  $object->id ;
  26.              }
  27.              return $id_cep ;
  28.          }
  29.         TTransaction::close(); // fecha a transação.
  30.     }
  31.     catch (Exception $e)
  32.     {
  33.         new TMessage('error'$e->getMessage());
  34.     }
  35.   }
  36.  /**
  37.      * Method getpessoa_enderecos
  38.      */
  39.     public function get_pessoa_endereco()
  40.     {
  41.         $criteria = new TCriteria;
  42.         $criteria->add(new TFilter('endereco_id''='$this->id));
  43.         return PessoaEndereco::getObjects$criteria );
  44.     }
  45.     
  46.   public static function BuscaCepWeb($Cep)
  47.   {
  48.     $Cep preg_replace("/D/",""$Cep);
  49.     if ($Cep != "")
  50.       {
  51.         $resultado simplexml_load_string( @file_get_contents("http://viacep.com.br/ws/".$Cep."/xml/"));
  52.         $erro = (string) $resultado->erro;
  53.         if (!$erro)
  54.         {
  55.           $geocode = new TGeoCode($resultado->logradouro);
  56.           
  57.           $id_cep Endereco::BuscaEnderecoId($Cep);
  58.           
  59.           if(!empty($id_cep))
  60.           {
  61.             $objects['id']            =  $id_cep// retorno vindo do banco
  62.             $objects['cep']           = (string) $resultado->cep;
  63.             $objects['logradouro']    = (string) $resultado->logradouro;
  64.             $objects['complemento']   = (string) $resultado->complemento;
  65.             $objects['bairro']        = (string) $resultado->bairro;
  66.             $objects['localidade']    = (string) $resultado->localidade;
  67.             $objects['uf']            = (string) $resultado->uf;
  68.             $objects['unidade']       = (string) $resultado->unidade;
  69.             $objects['ibge']          = (string) $resultado->ibge;
  70.             $objects['gia']           = (string) $resultado->gia;
  71.             if($geocode->getStatus() == 'OK') { 
  72.               $objects['latitude'] = (string)$geocode->getLat();
  73.               $objects['longitude'] = (string)$geocode->getLng();
  74.              // $format_adress = $geocode->getFormattedAddress();
  75.             }
  76.             return $objects;
  77.           } 
  78.           else
  79.           {
  80.             $obj Endereco::addEndereco($resultado,$geocode);
  81.             if(!empty($obj))
  82.             {
  83.                 return $obj;
  84.             } 
  85.           }
  86.         } else return FALSE;
  87.       } else return FALSE;
  88.     }
  89. public static function addEndereco($endereco,$geocode)
  90.   {
  91.     try 
  92.     {
  93.     $data_atual date('Y-m-d H:i:s');
  94.             
  95.       TTransaction::open('centinel');
  96.       $add_endereco = new Endereco;
  97.       $add_endereco->cep          = (string)str_replace('-','',$endereco->cep);
  98.       $add_endereco->logradouro   = (string)$endereco->logradouro;
  99.       $add_endereco->bairro       = (string)$endereco->bairro;
  100.       $add_endereco->cidade       = (string)$endereco->localidade;
  101.       $add_endereco->uf           = (string)$endereco->uf;
  102.       $add_endereco->codigo_ibge  = (string)$endereco->ibge;
  103.       $add_endereco->gia          = (string)$endereco->gia;
  104.       $add_endereco->latitude     = (string)$geocode->getLat();
  105.       $add_endereco->longitude    = (string)$geocode->getLng();
  106.       $add_endereco->criacao      $data_atual;
  107.       $add_endereco->atualizacao  $data_atual;
  108.       $add_endereco->store();
  109.       
  110.       //print_r($add_endereco).'<br>';
  111.       TTransaction::close();         
  112.     }
  113.      catch (Exception $e) {
  114.       new TMessage('error'$e->getMessage());
  115.     }
  116.     return;
  117.   }
  118. ?>
LF

Não estou conseguindo baixar a classe... poderia disponbilizar novamente?