如何解决Nominatim API 不会通过 CURL 请求返回门牌号,而是在通过浏览器请求时返回
我正在使用 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
有人可以指导我吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。