Google からのこのクエリを使用:リンク
位置検索を作成しようとしており、設定された距離内にあるすべての町を返します。町をフォームに入力できるようにしたいのですが、私のコードは町名の緯度と経度を見つけてから、データベースにクエリを実行して、設定された距離内にあるすべての町を返します。
まず、入力された場所の緯度と経度を見つけます。
$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');
}
しかし、クエリは機能せず、常にエラーが発生します。ここで何が間違っていますか?
(私のテーブルには、町、郵便番号、緯度、経度の列があります)