これが私が皆に持っている質問です
「近くの郵便番号」検索を行う既存のシステムを既に持っています。
この投稿の目的は、プロセスを最適化できるかどうかを確認することです。
現在、約 43k の郵便番号レコードがあります。
私の現在のアルゴリズムの仕組みは、1 つのレコードを選択し、43k レコードの完全なテーブル スキャンを実行することです。
サブセット (緯度範囲、長距離) のみを取得し、その方法で計算を行う方法はありますか?
これが私が皆に持っている質問です
「近くの郵便番号」検索を行う既存のシステムを既に持っています。
この投稿の目的は、プロセスを最適化できるかどうかを確認することです。
現在、約 43k の郵便番号レコードがあります。
私の現在のアルゴリズムの仕組みは、1 つのレコードを選択し、43k レコードの完全なテーブル スキャンを実行することです。
サブセット (緯度範囲、長距離) のみを取得し、その方法で計算を行う方法はありますか?
すべての郵便番号の重心の緯度/経度は、Google または geocoder.us (または地理データを入手できる場所) から取得できます。検索を絞り込むための大まかなガイドとして where 句で使用します。
私が通常行っていることは、検索をプラスマイナス 1 度で囲みます。前述のとおり、緯度は約 69 マイルです。経度の場合、状況はもう少し複雑になります。北極に近づくほど、ある経度から別の経度への距離が短くなります。たとえば、フロリダとジョージアの国境では、経度 1 度で約 55 マイル離れていますが、カリフォルニアとオレゴンの国境では、約 50 マイルしか離れていません。
最初に開始位置の緯度/経度を取得する必要があり、おそらく beglat、endlat、beglong、endlong などの 4 つの変数を設定する必要があります。beglat を開始位置の緯度マイナス 1 度に割り当て、endlat を開始位置の緯度プラス 1 度などに割り当てます。検索範囲を狭くするには、0.5 度などを選択できます。