私はテーブルがで、何千もの店舗があります。店舗ごとにlat
、lng
、delivery_radius
がある場合は(point
列を追加することができます)、どの店舗が現在の店舗に配送できるかを確認する最も効率的な方法は何ですか?設定ポイントに配信するすべての行を検索するためのMySQL空間クエリ
自分と各行の距離がdelivery_radius
よりも小さいかどうかを確認することは非常に長いプロセスになると感じています。各行の情報から計算されたポリゴンを格納するカラムを追加し、現在のポイントがそのポリゴン(ポイントポリゴン)に含まれているかどうかを確認するのが最善でしょうか?その他の提案はありますか?
多角形を誤解している可能性があります。これは、すべての店舗を含む単一のポリゴンではありません。これは、各店舗用に保存されたポリゴンになります。そうすれば、私の現在の位置をそのポリゴンと比較することができます。私の理論では、これにより、各店舗の「保守可能領域」を作成する計算がもう1度不要になります。これにより、あなたはそれをまったく変えますか? 確かにelasticsearchを探しています。 –
私は実際にあなたが言及しているポリゴンの概念を理解していません。明確にするために、あなたの場所は動的か静的な場所ですか?新しい店舗が追加されたら、ポリゴンにどのような影響がありますか?あなたの現在の場所に配送できる店舗のリストを特定することが要件ですか?ポリゴンが新しいストアの追加でこれをどのように扱うか? – Aruna
私の場所は動的です、私の場所に応じて作成されます。私が言及しているポリゴンの概念は、ポリゴンのアイデアの一点です。私の現在の位置はポイントですが、私は各店舗の配送半径をポリゴンとして保存することができます。現在のポイントが各店舗のポリゴンにあるかどうかを調べることで、各ポイント間の距離を計算するのではなく、その半径が半径以下かどうかを調べることで検索する方が速いのですか? –