我試着去創建一個位置搜索,返回一組距離內的所有城鎮。 我希望人們能夠在表單中輸入城鎮,我的代碼找到城鎮名稱的lat + long,然後查詢我的數據庫以返回設置距離內的所有城鎮。
開始,我發現LAT +長的輸入位置:
$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');
}
但查詢不工作,並始終閃光的錯誤。我在這裏做錯了什麼?
(我的表中的列鎮,郵編,經度,緯度)
它產生了什麼錯誤?你沒有具體說明。 – scones 2013-02-09 12:34:10
你檢查了$ result-> error的內容嗎?在select部分中定義print_r($ result) – alexg 2013-02-09 12:44:05