ユーザーが自分の郵便番号を追加できることを要求する顧客がいます。その後、管理者は特定のエリア範囲のユーザーを選択できます
例えば:
user - zip code
1 - 24533
2 - 56924
3 - 35993
4 - 13435
管理者の郵便番号は39824です
彼は郵便番号で5キロメートルの範囲の人々を選択する必要があります。これは、phpまたは他のソリューションを使用してどのように発生する可能性がありますか?
非常に簡単 必要なのは、郵便番号を取得したい郵便番号に対する緯度と経度だけです。経度と緯度がない場合は、Google から入手してください。無料です。郵便番号から簡単に緯度と経度を取得できます。
たとえば、「H8t」の 100 マイルあたりの郵便番号を取得したい場合
緯度と経度の情報を持つ郵便番号の表があります。
まず、緯度と経度を取得するクエリをテーブルに書き込みます
SELECT * FROM Tbl_Master_ZIPCodes WHERE ZIPcode ='H8T'
緯度と経度を取得した後、「H8T」の 100 マイルの範囲内のすべての郵便番号を取得するクエリを以下に記述します
SELECT distinct zipcode,
3963 * (ACOS((SIN(45.456700/57.2958) * SIN(latitude/57.2958)) + (COS(45.456700/57.2958) * COS(latitude/57.2958) * COS(longitude/57.2958 - -73.712000/57.2958)))) AS distance
FROM Tbl_Master_ZIPCodes
WHERE 3963 * (ACOS((SIN(45.456700/57.2958) * SIN(latitude/57.2958)) + (COS(45.456700/57.2958) * COS(latitude/57.2958) * COS(longitude/57.2958 - -73.712000/57.2958)))) <= 100 Order by Distance
郵便番号で住所を受け取っている場合は、GoogleジオコードApiにクエリを実行して、これらの住所のジオコードを取得できます。
これらの地理コードを取得したら、このサイトのコードサンプルを使用して距離を計算できます
しかし、個人的には、郵便番号の範囲と距離の計算ソリューションが気に入っています。あなたが緯度と経度を持っていれば、私は別のものを提案しますが、これはあなたが必要とするものに似ているようです.
http://www.micahcarrick.com/php-zip-code-range-and-distance-calculation.html