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

Comment calculer la distance entre deux codes postaux en PHP ?

DDD
DDDoriginal
2024-11-02 11:44:30433parcourir

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

Calcul de la distance entre les codes postaux en PHP

Le calcul de la distance entre deux codes postaux nécessite l'accès à une base de données contenant des informations de latitude et de longitude pour chaque code postal code. Cette question explore comment calculer cette distance à l'aide des données d'une table MySQL.

SOLUTION

La solution suggérée exploite une fonction PHP pour calculer la distance entre deux points en fonction de leur latitudes et longitudes. Voici le code :

<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

Cette fonction nécessite deux points de données ($point1 et $point2) comme paramètres, chacun contenant la latitude et la longitude d'un code postal. La distance renvoyée sera dans les mêmes unités que la constante de rayon fournie (miles dans ce cas).

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