Calcul de la distance entre les codes postaux de PHP
J'ai attrapé une base de données des codes postaux et leurs langitudes/latitudes, etc à partir de ce
Cette page. Il en a les champs suivants:
ZIP, LATITUDE, LONGITUDE, VILLE, ÉTAT, COMTÉ, ZIP_CLASS
Les données dans un fichier texte, mais je l'ai inséré dans une table MySQL. Ma question est maintenant, comment puis-je utiliser les champs ci-dessus pour calculer la distance entre deux codes postaux qu'un utilisateur peut entrer sur le site? Travail code PHP sera apprécié
- Qu'est-ce que la "distance"? Voulez-vous la distance "à vol d'oiseau" / grand cercle de la distance? Distance routière? 3D réelle distance entre les deux points dans l'espace?
- Depuis qu'il est demandé à un calcul à l'aide du lat/long, il est sûr de supposer que vous n'allez pas avoir de route à distance. La distance réelle entre deux points dans l'espace (par exemple à travers la terre du corps) est probablement pas utile. Par conséquent, "vol d'oiseau"/grand cercle est le plus probable.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également essayer de frapper un service web pour calc de la distance. Laissez quelqu'un d'autre ne le levage lourd.
https://www.zipcodeapi.com/API#distance
C'est la réponse de mike avec quelques annotations pour la des numéros de magie. Il semblait aller bien pour moi pour quelques données de test:
Il peut être fait avec juste les maths...
Découvrez la Haversine formule pour le calcul de la grande cercle des distances entre deux points. D'autres échantillons peuvent être trouvés ici
Haversine formule:
(À noter que les angles doivent être en radians de passer à des fonctions trigonométriques).
Dans votre zip table, vous devez saisir les coordonnées (lat,long) pour les deux points pour lesquels vous voulez obtenir la distance.
Vous pouvez ensuite calculer la distance de la droite dans le SQL ou PHP. Les deux méthodes sont décrites dans ce post:
http://dev.strategystar.net/2011/10/mysql-php-get-distance-between-two-coordinates-in-miles-kilometers/
Le calcul dans l'exemple est basé sur la formule déjà discuté dans ce fil. Il fournit le rayon de la terre dans les deux miles et en kilomètres, donc il va vous permettre d'obtenir la distance entre deux points dans les deux unités.
Le lien ci-dessus est grande parce que la méthode de calcul n'inclut pas de numéros de magie, juste le rayon de la terre!