2

たとえば、特定の郵便番号の特定の半径内にある店舗を検索するためのあらゆる種類の「店舗検索」タイプのソリューションを Web で見てきました。これらのソリューションには、最寄りの店舗を表示する派手な地図などがあります。多くは Google を使用しています。マップやその他のデータベースに依存していますが、多くは正確な緯度と経度の変換などにも依存しています。しかし、それは私のプロジェクトにとってはやり過ぎです。

私の場合、バックエンドで (PHP を使用して) 注文を処理しているだけで、すべてのベンダーの倉庫のすべての郵便番号のリストを既に持っています。

顧客に郵便番号を提供してもらいたいだけで、1 回の電話で、顧客に最も近い倉庫の並べ替えられたリストを取得したいと考えています。郵便番号で十分です。緯度と経度を気にしたくありません。

何か案は?

4

1 に答える 1

5

ポピュラーデータの郵便番号データベースをダウンロードする必要があります。

これにより、以下を使用して距離を計算できます。

function calc_distance($point1, $point2)
{
    $radius      = 3958;      // Earth's radius (miles)
    $deg_per_rad = 57.29578;  // Number of degrees/radian (for conversion)

    $distance = ($radius * pi() * sqrt(
                ($point1['lat'] - $point2['lat'])
                * ($point1['lat'] - $point2['lat'])
                + cos($point1['lat'] / $deg_per_rad)  // Convert these to
                * cos($point2['lat'] / $deg_per_rad)  // radians for cos()
                * ($point1['long'] - $point2['long'])
                * ($point1['long'] - $point2['long'])
        ) / 180);

    return $distance;  // Returned using the units used for $radius.
}

上記は、PHPでの郵便番号間の距離の計算におけるAdamBellaireの回答から盗まれました。この計算を行った後、結果を簡単に並べ替えることができます。

于 2011-12-18T05:10:05.213 に答える