这是一个基本的PHP问题,我可能会在明天早上很快就解决它,但今天它已经过了一天,所以...
我有一个使用Google Maps API返回邻域名称的函数。我注意到邻居名称正在根据lon lat中的一小部分小数改变。当它不能返回邻居名称时,它返回城市名称。
我要做的是从12个十进制数开始,并将返回的结果与城市名称进行比较,如果相同,则继续递减,直到返回的结果不同为止。
以下是我所拥有的:
$rnd = 12;
function get_hood($lat, $lon, $rnd) {
$get_API = "http://maps.googleapis.com/maps/api/geocode/json?latlng=";
$get_API .= round($lat,$rnd).",";
$get_API .= round($lon,$rnd);
$jsonfile = file_get_contents($get_API.'&sensor=false');
$jsonarray = json_decode($jsonfile);
if (isset($jsonarray->results[1]->address_components[1]->long_name)) {
return($jsonarray->results[1]->address_components[1]->long_name);
}
}
for($i=1; $i<=$rnd; $i--) {
if ($b->busCity == get_hood($b->lat, $b->lon, $rnd)) {
echo get_hood($b->lat, $b->lon, $rnd);
break;
} else {
echo get_hood($b->lat, $b->lon, $rnd);
}
}
我觉得我是在圈子里,需要重新审视一下。
感谢。
答案 0 :(得分:0)
我发现您的[]
循环存在一些问题。首先,您需要使用for
开始循环,然后停在$rnd
或0
。其次,您似乎不使用循环变量,但每次都使用相同的1
变量。最后,您使用$rnd
变量,但它没有在任何地方定义(尽管我认为它可能在您包含的简短代码段之外定义)。
如果我理解你想要获得什么,那么这段代码应该可以帮助你(注意我必须定义$b
来测试代码)
$b