【问题标题】:ZERO_RESULTS error geocodeZERO_RESULTS 错误地理编码
【发布时间】:2016-10-23 20:26:02
【问题描述】:
$url = "https://maps.google.com/maps/api/geocode/json?address=".urlencode($address)."&sensor=false";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response_a = json_decode($response);
echo "<pre>"; print_r($response_a);

我正在使用此代码接收数据,但我得到的只是 ZERO_RESULTS。但问题是,当我在浏览器中使用它时,url 有效,它只是不适用于 curl。有什么想法吗?

这是一个可以在浏览器中使用但不适用于 curl 的 url:

https://maps.google.com/maps/api/geocode/json?address=Wiener+Stra%C3%83%C5%B8e+86+3830+Waidhofen+an+der+Thaya&sensor=false

【问题讨论】:

  • 好的,我在 curl 中发现了一个错误....虽然我不知道为什么它在浏览器中有效。我已经删除了街道号码和邮政编码,这样大部分都可以工作。不是最好和最准确的解决方案,但至少是一些东西
  • 你有钥匙吗?您是否对 URL 进行了 URL 编码?
  • 是的,我确实包含了一个密钥,是的,我确实使用 urlencode($address) 对 url 进行了编码,如示例代码中所示

标签: api google-maps curl geocode


【解决方案1】:

“Straße”的编码似乎有问题。

在您的示例代码中,您有“Stra%C3%83%C5%B8e”。让我们使用这个实用程序http://meyerweb.com/eric/tools/dencoder/ 结束解码这个值。

你会得到'Straße'。现在让我们使用这个实用程序对“Straße”进行编码,我们将得到“Stra%C3%9Fe”。

所以在这一点上,您的 PHP 代码应该会发出这个查询

https://maps.google.com/maps/api/geocode/json?address=Wiener+Stra%C3%9Fe+86+3830+Waidhofen+an+der+Thaya&key=YOUR_API_KEY

我删除了传感器参数,因为它不再需要了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多