问题描述
我正在使用 OSM Nominatim API 从 lat lng 反向地理编码地址。但是我正面临这个奇怪的问题,当我通过 CURL 请求点击 api 时,它不返回任何门牌号。
function getAddressFromNominatim($lat,$lon){
$client = new Client();
$nominatimUrl = env('NOMINATIM_URL','https://nominatim.openstreetmap.org/reverse?');
$nominatimUrl .= "lat={$lat}&lon={$lon}&format=json&accept-language=en";
$headers['json'] = [];
$headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0';
$request = $client->request('GET',$nominatimUrl,[
'headers' => $headers
]);
$response = collect(json_decode((string) $request->getBody(),true));
if (!isset($response['display_name'])) {
return 'Unable to geocode';
}
return $response['display_name'];
}
回复
但是当我在浏览器中点击相同的网址时,它会返回门牌号码
我在 Laravel 5.8 中使用 Guzzle HTTP 来发出 CURL 请求。
参考的提名网址:Click Here
有人可以指导我吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)