0

ユーザーが郵便番号を入力することから始めるWebサイトがあります。

さまざまなショップのテーブルがあり、ショップに属する郵便番号も含まれています。

ユーザーが入力した郵便番号の半径5km以内に郵便番号を取得することは可能ですか?

したがって、データベースにクエリを実行して、ユーザーの近くにあるすべてのショップを見つけることができます。

これにGoogleマップを使用できますか?すべての郵便番号(単一の国)とその座標の事前に計算されたリストを入手する必要がありますか?他に何か提案はありますか?

4

4 に答える 4

2

Googleには、これに関するチュートリアルがあり、正しい方向を示す必要があります。SQLクエリの三角法のビットが唯一の難しい部分です。一見すると、これを行うには基本的に2つの方法があります。

  1. 各店舗の緯度/経度の座標を取得します。これは、GoogleMapsのGeocodingAPIを使用して、店舗の住所を指定することで実行できます。これを行う必要があるのは、場所ごとに1回だけです。
  2. 各店舗の郵便番号のみを持ち、それぞれに幾何学的に中心の緯度/経度座標を持つ郵便番号のテーブルを使用します。範囲内にある郵便番号を見つけて、それらの郵便番号で店舗を表示します。

最初の方が正確ですが、どちらでも機能します。住所ではなく郵便番号からの距離を計算する場合でも、その郵便番号の緯度/経度座標を検索する必要があります。

于 2011-07-30T18:15:48.740 に答える
2

各郵便番号の経度/緯度を保存できます。そのデータはネット上で無料で入手できます。そのようなものの1つはここhttp://www.boutell.com/zipcodes/です。次に、ここで説明する大圏距離関数を使用して、半径内の郵便番号を見つけます。MySQL大圏距離(Haversine式)

于 2011-07-30T18:25:09.717 に答える
1

郵便番号から緯度/経度を取得する必要があります。そうすれば、地図またはgeoplacesapiを介して近くの場所を見つけることができます。グーグルマップAPIまたはYQLジオAPIに向かいます。

于 2011-07-30T18:21:51.037 に答える
1

各郵便番号の緯度と経度が必要になります。次に、HaversineFormulaを使用しておおよその距離を取得します。

于 2011-07-30T18:24:22.583 に答える