4

ウェブサイトにロケーションベースの検索(つまり、ロケーション+半径)を実装したい。場所は私のデータベースに追加されます。Google Places APIを使用することを考えましたが、独自のロケーションデータベースで機能させる方法が見つかりません。それは可能ですか?例またはチュートリアルへのリンクをいただければ幸いです。そうでない場合、トリックを行うことができる他の解決策はありますか?サーバーには何もインストールできないため、DBにgeo拡張機能を追加することはできません。

前もって感謝します。

4

1 に答える 1

1

Google Geocodingサービスを使用して、現在地の座標を見つけることができます。これらの座標を使用して、データベース内の場所を見つけることができます。サーバーに PHP/MySQL がある場合、以下のコードはPDOを使用してHaversine 式を使用します。

$stmt = $dbh->prepare("SELECT  name, lat, lng, (6372 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + sin( radians(?) ) * sin( radians( lat ) ) ) ) AS distance FROM mytable HAVING distance < 1 ORDER BY distance ASC LIMIT 0 , 20");
    // Assign parameters
    $stmt->bindParam(1,$center_lat);//Coordinates of location
    $stmt->bindParam(2,$center_lng);//Coordinates of location
    $stmt->bindParam(3,$center_lat);

kms を使用する場合は 6372、マイルを使用する場合は 3959

このクエリはこのDEMOで使用されました

于 2013-03-10T13:39:32.263 に答える