No provider registered error
didwiz opened this issue · 3 comments
General Information
GeocoderLaravel Version: "^4.0"
Laravel Version: 5.6.4
PHP Version: 7.0
Operating System and Version: ubuntu 16.04
Issue Description
On trying to running this line $geocoder->reverse($lat, $lon)->toJson(); , i get the no provider registered error..
I have the config file published with the default providers listed, the geocoder.php file, with my config file matching this here: https://github.com/geocoder-php/GeocoderLaravel/blob/master/config/geocoder.php
I cant get pass this point.
Thanks for your help.
Steps to Replicate
I followed the instructions in the repo readme to install geocoder into my project.
Stack Trace
Geocoder\Exception\ProviderNotRegistered · No provider registered.
(1/1) ProviderNotRegisteredNo provider registered.
--
in ProviderNotRegistered.php line 35
at ProviderNotRegistered::noProviderRegistered()in ProviderAggregator.php line 184
at ProviderAggregator::getProvider(object(ReverseQuery), array(), null)
at call_user_func('Geocoder\\ProviderAggregator::getProvider', object(ReverseQuery), array(), null)in ProviderAggregator.php line 79
at ProviderAggregator->reverseQuery(object(ReverseQuery))in ProviderAggregator.php line 105
at ProviderAggregator->reverse(10.53185, 7.4294700000000002)in ProviderAndDumperAggregator.php line 140
at ProviderAndDumperAggregator->Geocoder\Laravel\{closure}()in Repository.php line 327
at Repository->remember('geocoder-1053185-742947', 9999999, object(Closure))in CacheManager.php line 304
at CacheManager->__call('remember', array('geocoder-1053185-742947', 9999999, object(Closure)))in ProviderAndDumperAggregator.php line 141
at ProviderAndDumperAggregator->reverse(10.53185, 7.4294700000000002)in UserController.php line 1302
at UserController->updateUserProfile(object(ProviderAndDumperAggregator))
at call_user_func_array(array(object(UserController), 'updateUserProfile'), array(object(ProviderAndDumperAggregator)))in Controller.php line 54
at Controller->callAction('updateUserProfile', array(object(ProviderAndDumperAggregator)))in ControllerDispatcher.php line 45
at ControllerDispatcher->dispatch(object(Route), object(UserController), 'updateUserProfile')in Route.php line 212
at Route->runController()in Route.php line 169
at Route->run()in Router.php line 658
at Router->Illuminate\Routing\{closure}(object(Request))in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request))in SanitizeInput.php line 21
at SanitizeInput->handle(object(Request), object(Closure))in Pipeline.php line 149
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))in Authenticate.php line 43
at Authenticate->handle(object(Request), object(Closure), 'api')in Pipeline.php line 149
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))in Pipeline.php line 102
at Pipeline->then(object(Closure))in Router.php line 660
at Router->runRouteWithinStack(object(Route), object(Request))in Router.php line 635
at Router->runRoute(object(Request), object(Route))in Router.php line 601
at Router->dispatchToRoute(object(Request))in Router.php line 590
at Router->dispatch(object(Request))in Kernel.php line 176
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request))in CheckActiveAccount.php line 41
at CheckActiveAccount->handle(object(Request), object(Closure))in Pipeline.php line 149
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))in HandleCors.php line 36
at HandleCors->handle(object(Request), object(Closure))in Pipeline.php line 149
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure))in Pipeline.php line 149
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure))in Pipeline.php line 149
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))in ValidatePostSize.php line 27
at ValidatePostSize->handle(object(Request), object(Closure))in Pipeline.php line 149
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure))in Pipeline.php line 149
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))in Pipeline.php line 102
at Pipeline->then(object(Closure))in Kernel.php line 151
at Kernel->sendRequestThroughRouter(object(Request))in Kernel.php line 116
at Kernel->handle(object(Request))in index.php line 53
You need to register the provider:
app/config.php
$app->register(Geocoder\Laravel\Providers\GeocoderService::class);
No provider registered error
sir same issue .
please give me valid solution
In order to do reverse geocoding, you need to have a compatible geocoder provider configured, like GeoIP2, for example:
<?php
/**
* This file is part of the GeocoderLaravel library.
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
use Geocoder\Provider\BingMaps\BingMaps;
use Geocoder\Provider\Chain\Chain;
use Geocoder\Provider\GeoIP2\GeoIP2;
use Geocoder\Provider\GeoPlugin\GeoPlugin;
use Geocoder\Provider\GoogleMaps\GoogleMaps;
use GeoIp2\Database\Reader;
use Http\Client\Curl\Client;
return [
'cache' => [
'store' => null,
'duration' => 999999999,
],
'providers' => [
Chain::class => [
GeoIP2::class => [],
GoogleMaps::class => [
'en-US',
env('GOOGLE_MAPS_API_KEY'),
],
GeoPlugin::class => [],
],
BingMaps::class => [
'en-US',
env('BING_MAPS_API_KEY'),
],
GoogleMaps::class => [
'us',
env('GOOGLE_MAPS_API_KEY'),
],
],
'adapter' => Client::class,
// 'reader' => new Reader(__DIR__ . '/../resources/assets/GeoLite2-City.mmdb'),
"reader" => [
Reader::class => [
__DIR__ . '/../resources/assets/GeoLite2-City.mmdb',
],
],
];Closing this for now, as I am unable to replicate the problem.