public function geocode($address)
{
$exceptions = [];
foreach ($this->providers as $provider) {
if ($provider instanceof LocaleAwareProvider && $this->getLocale() !== null) {
$provider = clone $provider;
$provider->setLocale($this->getLocale());
}
try {
return $provider->geocode($address);
} catch (InvalidCredentials $e) {
throw $e;
} catch (\Exception $e) {
$exceptions[] = $e;
}
}
throw new ChainNoResult(sprintf('No provider could geocode address: "%s".', $address), $exceptions);
}