Maison  >  Article  >  base de données  >  Comment calculer la distance entre deux codes postaux en PHP ?

Comment calculer la distance entre deux codes postaux en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 07:38:29778parcourir

How to Calculate Distance Between Two Zip Codes in PHP?

Détermination de la distance entre les codes postaux en PHP

La demande d'un utilisateur pour calculer la distance entre deux codes postaux nécessite l'utilisation d'une base de données de codes postaux et leurs latitudes et longitudes correspondantes. Ce guide propose une solution en PHP basée sur les champs de données fournis :

Solution :

Pour calculer la distance entre deux codes postaux, les étapes suivantes peuvent être suivies :

  1. Joignez les valeurs de latitude et de longitude des deux codes postaux en utilisant les champs de base de données définis (LATITUDE et LONGITUDE) pour chaque code postal.
  2. Calculez la distance Haversine en utilisant la formule suivante :
<code class="php">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.
}</code>

Ce code utilise la constante de rayon de la Terre (3958 miles) et convertit les valeurs de latitude et de longitude en radians pour un calcul précis de la distance.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn