PHP: Recherche avec rayon de distance(en km) [Fermé]

Signaler
Messages postés
534
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
29 août 2014
-
 Rom's -
Bonjour,

Sur plusieurs site, souvent on a la possibilité de faire une recherche avec la distance(en kilomètre).

Je me demandais, comment fait-on pour sortir les résultats avec comme par exemple 20km a la ronde??

J'aimerais comprendre comme les site peuvent faire cela?

Merci!
Pascal_22

10 réponses

il te faut les coordonnées GPS des lieux que tu souhaites intégré dans ta recherche. Après on a la coordonnée du client qui doit fournir. Puis tu fait un petit calcul de distance avec les 2 coordonnées.

http://www.abe.msstate.edu/~fto/calculator/converte.html
57
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61391 internautes nous ont dit merci ce mois-ci

Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
175
Oui oui, ayant déjà utilisé aussi googlemap pour un site, tu peux l'utiliser pour ce que tu veux faire

par contre, si tu as juste la ville et le pays, il risque d'y avoir des erreurs, il vaut mieux ajouter le code postal pour être certain de bien pointer sur la bonne ville (il me semble n'y avoir aucun doublons dans les noms de ville en France, maintenant je ne sais pas si c'est le cas partout)
Messages postés
534
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
29 août 2014
52
Merci pour votre réponse.

J'ai une base de donnée avec la ville, le pays de mes membres. Je n'ai pas le code postal :( (Je fais les modifs pour ajouter un champs code postal)

Pour trouver la longitude/lattitude, est-ce que je dois vraiment avoir le code postal ou avec la ville et le pays ça fonctionne?

Est-ce que google Map API serait correct pour ce que je veux faire en sachant que mon site est en phpo et mysql?

Merci!

PAscal_22
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
175
Oui !
Avec la latitude et la longitude, des calculs basés sur sin et cos, ca se fait facilement (je peux dire ca pour l'avoir déjà fait ^^)
Messages postés
534
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
29 août 2014
52
Merci pour votre réponse si rapide!

Je suis en train de lire la doc de google geocoding.

Au départ, ce que je croyais c'est de trouver la latitude/longitude du membre et de la mettre dans un champs(de type point) mais regarder ce que google dit:

Note: the geocoding service may only be used in conjunction with a Google map; geocoding results without displaying them on a map is prohibited. For complete details on allowed usage, consult the Maps API Terms of Service License Restrictions.

Si je comprends bien, je dois obligatoirement afficher le résustat sur une map?

Sauf que moi, je voulais garder les infos dans la base pour une future recherche? et non l'afficher, car je vais m'en servir que pour les membres trouvent les autres membres prêt de chez eux??

Est-ce que j'ai bien compris ou non??

Merci !

Pascal_22
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
175
Si t'utilises l'API googlemap t'es en effet obligé d'afficher la carte XD
(heureusement d'ailleurs, se feraient bien avoir chez google sinon ^^)

Mais tu veux juste récupérer les longitude / latitude ?
y'a des CSV qui répertorient ttes les villes de france, avec comme champs le nom, département, code postal, longitude, latitude. Tu stockes tt en BDD, et du coup t'as même pas besoin de t'embêter avec l'API googlemap ^^
Messages postés
534
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
29 août 2014
52
Bonjour!

D'accord, mais le problème est que mon site en à travers la planète et non seulement sur la france.

Exist-il autre chose comme comme l'utilitaires google mais que je peux seulement récupéré les info lat/long. ??

Merci !

Pascal_22
Messages postés
816
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
17 juillet 2012
175
Je connais pas trop, mais y'a l'API yahoo geocoding :
https://developer.yahoo.com/maps/rest/V1/geocode.html
Messages postés
534
Date d'inscription
lundi 20 mars 2006
Statut
Membre
Dernière intervention
29 août 2014
52
Ok je vais vérifier.

Mais c'est sur que ça existe, plein de site (annonce,rencontre ...) utilise sans même afficher de carte !!

Merci!
Quelqu'un serait-il au courant? --->d'un géocode(ou autre) pour qye je puisse récupérer la longitude/lattitude sans avoir à l'afficher sur une carte.

Pascal_22
Exemple en PHP sur ce site sur base de l'API Google Maps :

http://www.astucesdewebmaster.com/developpement-web/php-distance-en-km-grace-a-google-maps-api-directions-261

ça te donne la distance en kilomètres par la route entre un point A et un point B