Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto 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?