ホームページ >データベース >mysql チュートリアル >PHP で 2 つの郵便番号間の距離を計算するにはどうすればよいですか?

PHP で 2 つの郵便番号間の距離を計算するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-02 11:44:30434ブラウズ

How to Calculate the Distance Between Two Zip Codes in PHP?

PHP での郵便番号間の距離の計算

2 つの郵便番号間の距離を計算するには、各郵便番号の緯度と経度の情報が含まれるデータベースにアクセスする必要があります。コード。この質問では、MySQL テーブルのデータを使用してこの距離を計算する方法を検討します。

解決策

提案された解決策は、PHP 関数を利用して、指定された 2 点間の距離を計算します。緯度と経度。コードは次のとおりです:

<code class="php">function calc_distance($point1, $point2)
{
    // Constants
    $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 to radians for cos()
        * cos($point2['lat'] / $deg_per_rad)  // Convert to radians for cos()
        * ($point1['long'] - $point2['long'])
        * ($point1['long'] - $point2['long'])
    ) / 180);

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

USAGE

この関数にはパラメータとして 2 つのデータ ポイント ($point1 と $point2) が必要です。それぞれのデータ ポイントには緯度と経度が含まれています。郵便番号。返される距離は、指定された半径定数と同じ単位になります (この場合はマイル)。

以上がPHP で 2 つの郵便番号間の距離を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。