Google地理编码API仅适用于一个字地址

时间:2014-08-21 16:58:44

标签: php geocoding file-get-contents google-geocoding-api

如果我只使用像

这样的单词,谷歌地理编码api的工作非常出色
  

悉尼

但如果我使用:

  

澳大利亚悉尼

它说不起作用:

  

警告:   的file_get_contents(https://maps.google.com/maps/api/geocode/json?address=sydney,   Australia& sensor = false):无法打开流:HTTP请求失败!   HTTP / 1.0 400错误请求

当我粘贴此网址时,即使它在我的浏览器中有效,但是当我使用此功能file_get_contents时却没有。

我的问题很简单,当我粘贴此结果时,为什么它在我的浏览器中有效,以及为什么它不能与下面的代码一起使用。当然,如何解决这个问题。

$a = file_get_contents("https://maps.google.com/maps/api/geocode/json?address=sydney, Australia&sensor=false");

2 个答案:

答案 0 :(得分:6)

您必须对地址进行网址编码:

$a = file_get_contents("https://maps.google.com/maps/api/geocode/json?address=" . urlencode('sydney, Australia') . "&sensor=false");

答案 1 :(得分:0)

这是造成问题的空间。人们正在使用:

$address = str_replace(' ','+',$address);

PS。它是一个迟到的回复,但可以帮助其他一些通过搜索到达页面的人,比如我。