套餐:https://github.com/geocoder-php/GeocoderLaravel
Geocoder Laravel版本:^ 4.0
Laravel版本:5.5.11
PHP版:7.2
操作系统和版本:Windows 10
我有这个简单的代码来试用这个包:
return app('geocoder')->geocode('Los Angeles, CA')->get();
但每次我跑的时候总会回来
[{},{},{},{},{}]
这是我的geocoder.php:
return [
'cache-duration' => 0,
'providers' => [
Chain::class => [
GoogleMaps::class => [
'en-US',
env('GOOGLE_MAPS_API_KEY'),
],
],
GoogleMaps::class => [
'us',
env('GOOGLE_MAPS_API_KEY'),
],
],
'adapter' => Client::class,
];
已设置所有GOOGLE_MAPS_API_KEY
。如果我运行dd(app('geocoder')->geocode('Los Angeles, CA')->get())
。我可以看到结果,但是当我放return
时它会让我空了。
答案 0 :(得分:0)
$geocodeData = Geocoder::geocode('Los Angeles, CA');
return $geocodeData;
答案 1 :(得分:0)
我确定你已经找到了解决方案,但只是为了加起来,你错过了locale的ENV变量:
return [
'cache-duration' => 0,
'providers' => [
Chain::class => [
GoogleMaps::class => [
env('en', 'en-US'), //YOU HAD ONLY 'en-US' here.
env('GOOGLE_MAPS_API_KEY'),
],
],
GoogleMaps::class => [
env('en', 'en-US'), //YOU HAD ONLY 'us' here.
env('GOOGLE_MAPS_API_KEY'),
],
],
'adapter' => Client::class,
];
希望这可以帮助任何人了解如何解决此错误!
答案 2 :(得分:0)
对于所有对此也感到绝望的人,如果遇到此问题,请确保已在Google项目中启用了GeoCoding API。
我希望图书馆会提供有关这种情况的反馈,但是我错了,因此,如果您遇到这种情况,这可能是问题的答案
答案 3 :(得分:0)
就我而言,事实证明我使用了一个限制用于 HTTP 的 API 密钥。因为 php 是服务器端,所以你必须使用一个限制 IP 的 API 密钥(不是 HTTP,这将用于客户端,即谷歌地图)。您可以通过创建用于服务器端请求的新 API KEY 在 google 云控制台中执行此操作。 (映射不同的密钥以用于谷歌地图/客户端请求)