【问题标题】: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;
}
?>

【讨论】:

  • 你使用了一个 API 密钥是公开的吗?
  • 我正在使用 API 密钥
猜你喜欢
  • 2012-03-13
  • 1970-01-01
  • 2017-04-09
  • 2019-10-30
  • 1970-01-01
  • 2014-06-06
  • 2021-06-29
  • 1970-01-01
  • 2019-04-08
相关资源
最近更新 更多