Je viens de développer une calculatrice de distance code postal pour mon entreprise Dads, où tous nos clients sont conservés dans les dossiers et chaque fois qu'un nouveau client potentiel fait une demande, le système vérifie les codes postaux de tous les autres clients. Le problème est qu'il ne fait pas encore le calcul de distance. Si vous tapez un code postal DT1 avec une distance de 5 miles, DT1, 2 et 3 sont proches. DT2 dit DT1 et 2, DT3 dit DT1, 3 et 4. Cela n'a aucun sens. Pourtant, si je mets en BH2 avec une distance de 50 miles, il ramènera Bournemouth, Dorchester, Portsmouth, Bath, Southampton et quelques autres villes. Ce sont tous corrects - mais je ne sais pas ce qui se passe avec les codes postaux DT. DT11 ne rapporte rien (moins de 5 miles), pas plus que DT10 (sauf pour eux-mêmes). J'ai tout d'abord utilisé la racine de (x * x + y * y) - je crois que c'est ce qu'on appelle le théorème de Pythagore .. pas sûr car cela fait des années que j'ai utilisé ce terme !!Calcul de distance code postal
J'ai également essayé les suivantes:
$sinstuff = sin(deg2rad($latitude))*sin(deg2rad($latitude2));
$cosstuff = cos(deg2rad($latitude))*cos(deg2rad($latitude2))*cos(deg2rad($longitude-$longitude2));
$sumstuff = $sinstuff + $cosstuff;
$acosstuff = rad2deg(acos($sumstuff));
$distance = $acosstuff*60*1.1515; //dunno what the 60 and 1.1515 is all about - I got this formula off a website.
C'est la formule qui semble apporter les résultats étranges. Je remarque également que la distance exacte entre DT11 et DT11 est quelque chose comme +/- 0.00000989 {et beaucoup d'autres nombres}. Cela semble également un peu étrange puisque, sûrement, la distance entre DT11 et lui-même est 0 ...
Quelqu'un at-il déjà fait quelque chose comme ça avant avec succès? J'ai un lot massif de fichiers - environ 158 Mo au total - contenant tous les codes postaux du Royaume-Uni dans leur intégralité, avec la latitude et la longitude correspondantes. Mon objectif est, plutôt que de comparer le code postal complet spécifié à tous les autres codes postaux complets, de déterminer quels codes régionaux sont à une certaine distance, puis de comparer le code postal spécifié à tous les codes postaux complets qui se trouvent dans ces zones. Est-ce efficace? Y a-t-il un moyen plus efficace?
Toute aide avec ceci serait grandement appréciée.
Cordialement,
Richard
PS Je sais qu'il ya des sites là-bas qui vous indiquent comment travailler les distances mais je ne semblent être en mesure d'obtenir l'un d'eux fonctionne correctement (comme vous pouvez dire d'en haut). PPS Je sais que je peux utiliser l'API Google pour cela - mais ce n'est pas une option car il s'agira d'une application hors ligne fonctionnant sur une installation locale de serveur wamp. Il est à utiliser dans les salons où nous ne pouvons pas garantir une connexion Internet.
environ '+/- 0.00000989 {et beaucoup d'autres nombres}', c'est juste une erreur d'arrondi –
Il devrait toujours être 0, sûrement ... quel que soit le calcul si les chiffres sont les mêmes, il devrait être 0 .. Je l'ai trouvé quand je l'ai arrondi à 2 dp et ça a fonctionné à 0 que c'était juste arrondi - mais il ne devrait pas besoin d'arrondi .. – ClarkeyBoy