public static function getCoordinates($street = null, $streetNumber = null, $city = null, $zip = null, $country = null)
{
// init item
$item = array();
// building item
if (!empty($street)) {
$item[] = $street;
}
if (!empty($streetNumber)) {
$item[] = $streetNumber;
}
if (!empty($city)) {
$item[] = $city;
}
if (!empty($zip)) {
$item[] = $zip;
}
if (!empty($country)) {
$item[] = Intl::getRegionBundle()->getCountryName($country, BL::getInterfaceLanguage());
}
// define address
$address = implode(' ', $item);
// fetch the geo coordinates
$url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . rawurlencode($address);
$geocodes = json_decode(file_get_contents($url), true);
// return coordinates latitude/longitude
return array('latitude' => array_key_exists(0, $geocodes['results']) ? $geocodes['results'][0]['geometry']['location']['lat'] : null, 'longitude' => array_key_exists(0, $geocodes['results']) ? $geocodes['results'][0]['geometry']['location']['lng'] : null);
}