javascript配列に入れたショップのリストがあります。私も彼らの住所を持っています。
都市名を入力できるオートコンプリートを作成する必要があり、その場所に最も近い3が表示されます。どうやってグーグルのAPIとインターフェースする必要があると思いますが、どこから始めればよいかわかりません。
私は実際のオートコンプリートjqueryのものをajaxスクリプトで動作させていますが、物事を最も近くに配置する方法がわかりません。
javascript配列に入れたショップのリストがあります。私も彼らの住所を持っています。
都市名を入力できるオートコンプリートを作成する必要があり、その場所に最も近い3が表示されます。どうやってグーグルのAPIとインターフェースする必要があると思いますが、どこから始めればよいかわかりません。
私は実際のオートコンプリートjqueryのものをajaxスクリプトで動作させていますが、物事を最も近くに配置する方法がわかりません。
店舗の緯度/経度の場所が必要です。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日あたり25.000リクエストだと思います)、店舗とユーザーの緯度位置を保存することをお勧めします。速度も向上します。
これに似たものを作成しました。場所がデータベースに挿入された瞬間にlat/lonの場所を取得し、それを個別の郵便番号ごとのlat/lonテーブルに挿入しました。