アドレスで満たされたデータベース テーブルがあり、テーブルの長さは 4,000 レコードを超えています
住所を取得して検索フィールドと比較し、検索フィールドの場所からの距離で並べ替える最良の方法を知りたいですか? GoogleAPI ドキュメントによると、リクエストは 1 日あたり 25,000 程度に制限されていますが、これは 1 日あたり 7 回しか検索できないということですか?
私の意見では - はい。Google は 2 つの LatLng 間の距離を計算するのが賢明です。これは、2 点間の直線距離ではなく、道路と道路を使用して距離を計算するためです (php で簡単に計算できます)。
これら 4000 の住所の LatLng を保存しても、ユーザーの住所からそれぞれの住所までの距離を Google に問い合わせる必要があるため、何の役にも立ちません。すべての LatLng を持っていても、それを自分で計算することはできません ( mapが必要です)。
各ユーザー入力を保存し、その住所を各場所までの 4000 の距離で保存できると思いますが、それはユーザーが 2 回目にサイトに戻る場合にのみ役立ちます。
...
わかりました、私はこの考えを持っています:
このようにして、ユーザー入力から最も近い場所までの最初の 10 ~ 20 の正確な距離を取得し、残りをデータベースから取得します。実際には、最も近い場所から他の場所までの距離になります。
住所はそれほど変わらないので、緯度経度をどこかにキャッシュして、繰り返しリクエストする代わりにそれらを参照できると思います。もちろん、他の緩和条件がある場合は詳しく説明してください。