Recherche de Coordonnées géographique dans une Zone

Nouveau WRInaute
Bonjour,
Je suis en train de developper un site et j'aimerais pouvoir retrouver toutes les villes dans un perimètre donnée.
Pour cela je peux tracer un polygon definissant la zone a rechercher, chaque point du polygon possède des coordonnées.
Je dispose d'une base des villes de France contenant les champs Ville, Code Postal, Longitude, Latitude.

Qulequ'un aurait il une idée de comment retrouver toutes les villes présentes dans ce polygon au moyen de mysql ?

J'ai trouvé un article qui présente l'inverse de ce que je veux faire, il y est question de tester si la ville est présente ou non dans une liste de polygones contenus dans une table, mais je n'arrive pas a l'appliquer a mes besoins :

http://www.programmeur-analyste.com/ind ... category=5

Si quelqu'un a une idée sur le sujet, il est le bienvenu ;-)

Rocca
 
WRInaute occasionnel
fastoche
Select blabla WHERE ABS(long-long0)<deltaX AND ABS(lat-lat0)<deltaY

mais à ta place je prendrai pas un polygone mais plutot un cercle
 
Nouveau WRInaute
Merci pour ta réponse,
En fait le polygone permet a l'utilisateur de dessiner une zone sur une carte et ainsi selectionner toutes les villes présentes dans cette zone.
Peux tu me donner plus de précision sur la requete que tu as proposé ( a quoi correspond long0 et delta ?)

Rocca
 
WRInaute occasionnel
là je vais l'approximation que sur ta carte l'axe des X c'est la longitude et l'axe des Y ta latitude, ça passe pour une petite zone.
2*deltaX sera donc la largeur de ton rectangle
2*deltaY sera la longueur
 
Nouveau WRInaute
ok, en fait c'est pas ce que je veux faire, ta solution permet de rechercher dans un perimetre rectangulaire.

Ce qu'il me faut peut etre dessiner par l'utilisateur donc composé de point
formant un polygone diforme.

Je pense que je ne suis pas trop loin d'obtenir la bonne requete mysql mais je dois foirer quelque part, elle devrait ressembler a un truc dans ce genre la :

Select * FROM villes WHERE CONTAINS( 'POLYGON(2.443610906601 49.156944274902,2.4705560207367 49.142501831055,2.585000038147 49.206390380859,2.4316670894623 49.248332977295)', longitude, latitude)
 
WRInaute occasionnel
oué alors pour ça c sur : passe par les trucs tout fait de mysql, mais la je connais moins.

Si c pas indiscret c'est pour quoi faire au juste?
PS. si tu y arrives donnes moi des précisions sur tes requetes ça m'interesse
 
Nouveau WRInaute
ca permettrais par exemple pour un utlisateur d'un site immobilier, de dessiner (en reliant differents points) sur une carte google maps une zone qui l'interesse englobant les villes qu'il souhaite rechercher, envoyant ainsi a mysql la requete adequate.
 
Discussions similaires
Haut