ZERO_RESULTS错误地理编码

时间:2016-10-23 20:26:03

标签: api google-maps curl geocode

$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。但事实是,当我在浏览器中使用它时,网址是有效的,它只是不适用于卷曲。任何想法?

这是一个在浏览器中工作但不适用于curl的网址:

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

1 个答案:

答案 0 :(得分:0)

“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

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