尽管在这个问题上工作了几个小时,但我并没有接近解决方案。我猜(希望)这是我忽略的简单事情。
我向Google地方提出了卷曲请求。它是有目的地尽可能简单地编写,这就是为什么我设置这么少的选项。如下所示,其中包含三个变量:$lat
和$lng
是从Google地理编码获得的纬度和经度。 $placetype
变量是用户从列表中选择的,可以与餐馆,酒吧,咖啡馆等等相同。
如果我进入一个大城市(例如纽约,洛杉矶,芝加哥等)并运行整个应用程序,我会得到结果 - 满60(三页二十)。如果我进入一个非常小的城镇(例如Dillonvale,OH,Eastport,ME,Harpers Ferry,WV等)我没有得到任何结果直到我再次运行应用程序。然后(没有更改代码,相同的搜索参数),我得到了一堆结果(不总是60,但足以让人信服)。
如果我再运行几次 - 我会继续得到相同的结果。如果我没有(在那个城镇)运行几天,我必须再次进行双重搜索。
我尝试将此代码复制到另一个文件 - 然后,如果$resnum
等于零,包括它 - 基本上再次运行它 - 再次没有结果。直到我再次启动应用程序才得到结果。
$url="https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=**********************&location=$lat,$lng&rankby=distance&type=$placetype&hasNextPage=true&nextPage()=true";
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response=curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
//print_r(curl_getinfo($ch));
//print_r (curl_error($ch));
curl_close($ch);
print"STATUS: $http_status";
$phpObj = json_decode($response);
$token="$phpObj->next_page_token";
$pagetwoandthree=nextpages($token,$lat,$lng);
if (is_array($phpObj->results)) {
$phpObj->results= array_merge($phpObj->results, $pagetwoandthree);
}
$resnum=count($phpObj->results);
既然它在大城市工作,最终在较小的城市工作,我倾向于不认为它是代码,但我不知道它还能是什么。如果重要,我正在使用BlueHost来托管该网站。顺便提一下,状态始终报告为200 - 因此它似乎认为它正在做它应该做的事情。任何想法将不胜感激!