使用谷歌的这个查询:链接
我正在尝试创建位置搜索,返回设定距离内的所有城镇。我希望人们能够在表格中输入城镇,我的代码找到城镇名称的 lat + long,然后查询我的数据库以返回设定距离内的所有城镇。
首先,我找到输入位置的 lat + long:
$location = 'farnborough';
function getlatlang($location) {
$geocode = file_get_contents('http://maps.google.com/maps/api/geocode/json?address='. urlencode($location) .'&sensor=false');
$output= json_decode($geocode);
return $output->results[0]->geometry->location;
}
$objlocation = getlatlang($location);
$latitude = $objlocation->lat;
$longitude = $objlocation->lng;
这很好用,我可以回显结果并且值是正确的。
然后使用上面链接中的查询,我尝试:
$query = "SELECT town, ( 3959 * acos( cos( radians($latitude) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians($longitude) ) + sin( radians($latitude) ) * sin( radians( lat ) ) ) ) AS distance FROM uk_postcode_05 HAVING distance < 25 ORDER BY distance ASC LIMIT 0 , 5";
$result = mysqli_query($mysqli, $query);
if(!$result){echo('no result returned - query wrong');
}
但查询不起作用并且总是触发错误。我在这里做错了什么?
(我的表有列城镇,邮政编码,纬度,经度)