Système de recherche

Fermé
allan59820 Messages postés 76 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 17 octobre 2020 - Modifié par allan59820 le 16/03/2016 à 16:15
allan59820 Messages postés 76 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 17 octobre 2020 - 17 mars 2016 à 13:05
Bonjour à tous,

Je voudrais savoir comment faire un système de recherche sur une ville donnée et ses alentours.

exemple : un utilisateur cherche des membres a proximité de chez lui, donc il entre dans un formulaire sa ville et le nombre de kilomètres aux alentours. et après les profils correspondant a sa recherche s'affichent.

J'ai regardé plusieurs forums regarder l'api de google maps mais soit je ne comprends pas soit ce n'est pas ce que je recherche.

Le site du pole emploi a aussi cette fonction avec la recherche d'offre près de chez soi

Merci d'avance

2 réponses

jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737
16 mars 2016 à 16:24
Bonjour,

Je ne me suis jamais penché dessus.... mais je pense qu'ils font simplement un calcul de distance en se basant sur les coordonnées (Longitude et Latitude).

Voici par exemple un script permettant d'obtenir la distance entre deux points :
https://phpsources.net/code/php/maths/459_distance-en-metre-entre-deux-points-avec-coordonnees-gps

Eux... doivent faire l'inverse.... à Partir d'un point et d'une distance.. calculer les coordonnées "max" des autres points ... et à partir de là ... définir tous les points qui se trouvent ENTRE ces coordonnées...

Regarde ici :
https://www.webrankinfo.com/forum/t/calcul-des-coordonnees-gps-dans-un-rayon-de-x-km.74024/

Latitude : 1°=+-111 km

Longitude, ça dépend de la latitude :
à nice 1°=+-82 km
à Lille 1°=+-71 km

Tu peux prendre 76 km de moyenne pour la france, ce sera plus simple

et donc, pour un carré de coté 2d centré sur ton point, il faudra chercher les LAT et LONG telles que :
LATpt - d/111 < LAT < LATpt + d/111
LONGpt - d/76 < LONG < LONGpt + d/76

avec :

d distance en km
LATpt, LONGpt coordonnées de ton point en décimal.



0
allan59820 Messages postés 76 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 17 octobre 2020 5
17 mars 2016 à 13:05
Merci jordane45 je vais essayer de potasser tout ça :)
0