0

こんにちは、役立つ記事を見つけましたが、残念ながら機能しません。

http://davidsimpson.me/2008/09/28/find-nearest-store-page-using-php-mysql-and-google-maps/

郵便番号、経度、緯度、およびその他のさまざまな店舗固有の情報を含むMySQLテーブルに店舗のリストがあります。

ユーザーがフォームに郵便番号を入力し、最大距離をマイルで指定できるようにしたいと思います (つまり、ドロップダウン メニュー、10 マイル以内、20 マイル以内など)。 MySQL データベース。

誰でもこれに光を当てることができますか?

よろしく

4

2 に答える 2

2

この例で提供されているアプローチは機能しますが、テーブル内のすべての行の距離を計算する必要があります。大規模に作業する場合、これは単に非効率的です。このチュートリアルをご覧ください。MySQLの特別なデータ型を座標に使用し、非常に高速に検索できます。うまくいけば、どこから始めればよいかについての基礎が得られるはずです。

あなたの解決策はさらに簡単かもしれません。すべての郵便番号のリストとすべての店舗のリストが必要になります。すべての入力と出力は既知の要因であるため、これを「キャッシュ」テーブルに事前に計算して、非常に高速な結果を得ることができます。StoreDistances10Milesというテーブルを作成します(データ型と命名規則を推測します)。

postcode CHAR(8) INDEXED, store_id INT(8), metresAway INT(8)

各郵便番号を繰り返し、店舗を距離で並べ替え、10マイル以内の店舗をテーブルに保存します。これで、郵便番号で検索する場合は、StoreDistances10Milesを郵便番号で検索するだけで、リストが表示されます。必ずインデックスを作成してくださいpostcode

サイトで提供する距離ごとにテーブルを再現する必要があります。

于 2013-02-04T23:04:26.143 に答える
0

彼はマイルの取得方法を明確に示しているので、ドロップダウンを使用するために必要なのは、SQLステートメントに「マイル<{dropdownvalue}」を追加することだけです。したがって、10マイルある場合、10マイル未満などになります。

于 2011-06-08T21:56:06.067 に答える