| Server IP : 162.214.74.102 / Your IP : 216.73.216.192 Web Server : Apache System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64 User : lrsys ( 1015) PHP Version : 5.6.40 Disable Function : exec,passthru,shell_exec,system MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/lrsys/www/lrsys_apps/leo/application/plugins/module_imobles/helpers/google/ |
Upload File : |
<?php
include_once __DIR__ . "/Google.php";
class GoogleMaps extends Google
{
public function __construct()
{
// Incluído para não carregar o construct do Pai
}
/*
* Função para pesquisar por um Local pelo nome no Google Maps
*/
public function findPlaceFromText($textquery)
{
$textquery = urlencode($textquery);
// $address_encoded_query = urlencode($address_encoded_query);
$url = "https://maps.googleapis.com/maps/api/place/findplacefromtext/json?key=".$this->api_key.
"&input=".$textquery.
"&inputtype=textquery"
. "&fields=formatted_address,name,geometry,photos,formatted_address,name,rating,opening_hours,geometry,place_id";
$json_google = curl_init($url);
curl_setopt($json_google, CURLOPT_RETURNTRANSFER, true);
$json_response = curl_exec($json_google);
$result = json_decode($json_response);
// var_dump($json_response);
if(!isset($result->candidates))
{
var_dump($result);
echo '%%%%%%%%%%%%%%%%% ERRO DE CONEXÃO COM GOOGLE MAPS %%%%%%%%%%%%%%\n\n\n';
exit;
}
else if (count($result->candidates) > 0)
{
return $result->candidates[0];
}
else
{
return false;
}
}
/*
* Função para pesquisar os detalhes de um local
*/
public function placeDetails($place_id)
{
$url = 'https://maps.googleapis.com/maps/api/place/details/json?'
. 'key='.$this->api_key
. '&place_id='.$place_id.'&language=pt-BR&reviews_no_translations=true';
$json_google = curl_init($url);
curl_setopt($json_google, CURLOPT_RETURNTRANSFER, true);
$json_response = curl_exec($json_google);
$result_details = json_decode($json_response);
if(!isset($result_details->result))
{
return false;
}
return $result_details->result;
}
/*
* Função para tratar o endereço do local
*/
public function getPlaceAddress($place_details)
{
// Trato os dados do endereço
$address_number = null;
$address_log = null;
$address_zipcode = null;
$address_neighborhood = null;
$arr_address = isset($place_details->address_components)?$place_details->address_components:array();
foreach($arr_address as $address)
{
if(in_array('street_number', $address->types))
{
$address_number = intval($address->long_name);
if($address_number != $address->long_name)
{
$address_number = null;
}
}
if(in_array('postal_code', $address->types))
{
$address_zipcode = preg_replace('/\D/', '', $address->long_name);
}
if(in_array('administrative_area_level_1', $address->types))
{
$address_state = $address->short_name;
}
if(in_array('administrative_area_level_2', $address->types))
{
$address_city = $address->long_name;
}
if(in_array('sublocality_level_1', $address->types))
{
$address_neighborhood = $address->long_name;
}
if(in_array('route', $address->types))
{
$address_log = $address->long_name;
}
}
// Se não tem endereço completo com o número, tratamos o endereço formatado
if($address_number == null)
{
// Verifico se tem o Número no campo formatted_address
$formatted_address = $place_details->formatted_address;
$arr_log = explode(',', $formatted_address);
$logradouro = $arr_log[0];
if(isset($arr_log[1]) && !empty($arr_log[1]))
{
$end_number_aux = trim(strtolower($arr_log[1]));
$end_number_aux = preg_replace('/^(número|numero|num\.?|nu\.?|nu\.?|n\.?)?(º)?\s+/', '', $end_number_aux);
$pattern = '/^[0-9]+(\s+|\-+)?/';
preg_match($pattern, $end_number_aux, $matches, PREG_OFFSET_CAPTURE);
if(!empty($matches[0]))
{
$arr_number_aux = preg_split('/(\s+|\-+)+/',$end_number_aux);
$end_number_aux = trim($arr_number_aux[0]);
if(intval($end_number_aux) == $end_number_aux && $end_number_aux > 0)
{
$address_number = $end_number_aux;
if($address_log == null)
{
$address_log = $arr_log[0];
}
}
}
}
}
return array("address_log" => $address_log,"address_number" => $address_number,"address_zipcode" => $address_zipcode, "address_neighborhood" => $address_neighborhood);
}
}