0

javascript配列に入れたショップのリストがあります。私も彼らの住所を持っています。

都市名を入力できるオートコンプリートを作成する必要があり、その場所に最も近い3が表示されます。どうやってグーグルのAPIとインターフェースする必要があると思いますが、どこから始めればよいかわかりません。

私は実際のオートコンプリートjqueryのものをajaxスクリプトで動作させていますが、物事を最も近くに配置する方法がわかりません。

4

1 に答える 1

0

店舗の緯度/経度の場所が必要です。https://developers.google.com/maps/documentation/geocoding/次に、ユーザーの緯度/経度の場所が必要です。比較的単純な数学を使用して、距離を計算できます。これらの2つのポイントの間:

$distance = round((6371*3.1415926*sqrt(($lat2-$lat1)*($lat2-$lat1) + 
cos($lat2/57.29578)*cos($lat1/57.29578)*($lon2-$lon1)*($lon2-$lon1))/180), 1);

多数のストアと多数のユーザーがいる場合は、これらの距離をmysqlテーブルにキャッシュすることをお勧めします。これは、データベース内のストアごとに行う必要があります。したがって、これを要求する郵便番号などごとにテーブルを作成し、1時間程度ごとにこれらのテーブルを削除するためのcronを作成します。

したがって、プロセス:

  1. ユーザーが最寄りの店舗を尋ねる
  2. あなたはグーグルAPI(またはあなた自身のストレージ)を通して彼の場所を取得します
  3. 彼の場所のテーブルがあるかどうかを確認してください
  4. はいの場合は結果を直接提供し、いいえの場合はテーブルを生成して結果を提供します

グーグルは限られた数のデータリクエストしか許可しないことに注意してください。この数は膨大ですが(1日あたり25.000リクエストだと思います)、店舗とユーザーの緯度位置を保存することをお勧めします。速度も向上します。

これに似たものを作成しました。場所がデータベースに挿入された瞬間にlat/lonの場所を取得し、それを個別の郵便番号ごとのlat/lonテーブルに挿入しました。

于 2013-02-18T16:50:06.383 に答える