【问题标题】:How to get the complete address from latitude and longitude using curl php?如何使用 curl php 从纬度和经度获取完整地址?
【发布时间】:2017-08-01 07:31:09
【问题描述】:
我想从纬度和经度中获取地址,但我想使用 curl。没有 curl 可以在 localhost 中正常工作。但是当我在服务器上运行它时。
显示错误这个错误:-
file_get_contents() [function.file-get-contents]:https:// 包装器在服务器配置中被 allow_url_fopen=0 禁用。
所以决定了,现在我必须使用 curl 获取地址。
谁能帮我实现这个功能我试过了:-
$latitude= 30.9003971459;
$longitude= 77.0072737194;
$url = 'https://maps.google.com/maps/api/geocode/json?latlng='.trim($latitude).','.trim($longitude).'&key=XXXXX';
$curl = curl_init();
【问题讨论】:
标签:
php
curl
geolocation
geocode
【解决方案1】:
似乎你从我那里工作......在执行 url (CURL_EXEC) 后,您需要解码 JSON 返回值。我刚刚在这个示例中选择了格式化的地址
<?php
$url="https://maps.google.com/maps/api/geocode/json?latlng=51.451411,3.566113&key=AIzaSyAgo83mZXhQCFzF2Y3pQYJUC1ivAXKwiX4";
$curl_return=curl_get($url);
$obj=json_decode($curl_return);
echo $obj->results[0]->formatted_address;
function curl_get($url, array $options = array())
{
$defaults = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_TIMEOUT => 4
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
if( ! $result = curl_exec($ch))
{
trigger_error(curl_error($ch));
}
curl_close($ch);
return $result;
}
?>