54 lines
1.3 KiB
PHP
54 lines
1.3 KiB
PHP
<?php
|
|
|
|
class Gmaps_Geocoding {
|
|
|
|
public static function getCoords($search) {
|
|
$log = mfLoghandler::singleton();
|
|
$components = [];
|
|
|
|
if(is_array($search)) {
|
|
if(!$search['country'] || !$search['street'] || !$search['zip'] || !$search['city']) {
|
|
return false;
|
|
}
|
|
$components = [
|
|
'country:' . urlencode($search['country']),
|
|
'postal_code:' . urlencode($search['zip']),
|
|
'locality:' . urlencode($search['city']),
|
|
];
|
|
$address = $search['street'];
|
|
} else {
|
|
$address = $search;
|
|
}
|
|
|
|
$address = urlencode($address);
|
|
|
|
$url = TT_GEOCODING_API_URL."?address=$address&key=".TT_GEOCODING_API_SECRET;
|
|
|
|
$cstr = "";
|
|
if(count($components)) {
|
|
$component_string = implode("|", $components);
|
|
$url .= "&components=$component_string";
|
|
}
|
|
|
|
$log->debug(__FILE__.": $url");
|
|
|
|
$resp = file_get_contents($url);
|
|
//print_r($resp);
|
|
if($resp) {
|
|
$json = json_decode($resp);
|
|
$results = $json->results;
|
|
if(count($results) > 1) {
|
|
$log->warn(__FILE__."> Got more then 1 result. Aborting.");
|
|
return false;
|
|
}
|
|
$lat = $results[0]->geometry->location->lat;
|
|
$long = $results[0]->geometry->location->lng;
|
|
|
|
return [$lat,$long];
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
}
|