6

場所の緯度と経度でデータベースを検索しています。特定の半径内のすべての場所を取得したい。

次に、返された結果を JSON にエンコードし、ajax を使用してデータを取得しますが、データベースからデータが返されないことを意味する未定義のエラーが発生します。

どこが間違っているのか誰にもわかりますか?

ここに私のクエリがあります

$sql="SELECT *, ACOS( SIN( RADIANS( `lat` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `lat` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `lng` ) - RADIANS( $fLon )) ) * 6380 AS `distance`
FROM `markers`
WHERE ACOS( SIN( RADIANS( `lat` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `lat` ) )
    * COS( RADIANS( $fLat )) * COS( RADIANS( `lng` ) - RADIANS( $fLon )) ) * 6380 < 10
    ORDER BY `distance`";


    $result = mysql_query($sql);

    while($r = mysql_fetch_assoc($result)) $rows[] = $r;

    echo json_encode($rows); 
4

2 に答える 2

6

私は、trig や SQL についてはあまり役に立ちません。Google マップに関する質問を十分に見ただけで、このチュートリアルを参照できるようになりました。

https://developers.google.com/maps/articles/phpsqlsearch#findnearsql

試してみることができる半径内の距離でスポットを見つけるためのクエリがあります。うまくいくことを願っています。

3959 (マイル) または 6371 (km) を使用

于 2012-05-17T20:45:34.173 に答える