public function run($request) { // Try to geocode a sample address $address = Geocoder::config()->local_address; // Test simple geocoding $geo = Geocoder::simpleGeocode($address); DB::alteration_message("Testing general behaviour"); if ($geo) { DB::alteration_message('Simple geocoding is working ' . $geo['Latitude'] . '/' . $geo['Longitude'], 'created'); } else { DB::alteration_message('Simple geocoding failed', 'error'); } // Test all providers $geocoder = Geocoder::getGeocoder(); $list = array_keys($geocoder->getProviders()); DB::alteration_message("Registered providers are : " . implode(',', $list)); foreach ($geocoder->getProviders() as $name => $provider) { DB::alteration_message("Testing : " . $name); try { $res = $geocoder->using($name)->geocode($address); if ($res->count()) { DB::alteration_message("Provider {$name} is working and returned " . $res->count() . ' results', 'created'); foreach ($res as $result) { DB::alteration_message('Geoloc is working ' . $result->getLatitude() . '/' . $result->getLongitude(), 'created'); } } else { DB::alteration_message("Provider {$name} failed to geocode address", 'error'); } } catch (\Geocoder\Exception\NoResult $ex) { DB::alteration_message("Provider {$name} failed to geocode address", 'error'); DB::alteration_message($ex->getMessage(), 'error'); } catch (\Exception $ex) { DB::alteration_message($ex->getMessage(), 'error'); } } }