IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[MySQL 5.0] Requête recherche circulaire


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut [MySQL 5.0] Requête recherche circulaire
    Bonjour.

    Pour une aplication de géolocalisation en quelque sorte je dois taper un centre (X,Y) et une circonférence afin d'avoir une séléction de clients.

    Grâce à ma requête je dois donc pouvoir savoir si les différentes coordonnées se trouvent dans le cercle de circonfèrence X que l'on aura tappé.

    Comment s'y prendre hormis le fait de faire une recherche par carré?
    Aie les maths!!!

    Cordialement.

    P.S:désolé si je suis dans la mauvais rubrique.

  2. #2
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Points : 641
    Points
    641
    Par défaut
    Bonjour,
    je sais pas si tu es dans le bon forum...
    D'après mes souvenirs, on peut calculer la distance entre deux points d'après leurs coordonnées :
    AB = ((Xb - Xa)^2 + (Yb-Ya)^2)^1/2
    il suffit donc que la distance entre tes deux points soit inférieure au rayon du cercle (que tu déduis de la circonférence Circonf = 2piR).
    Ceci n'a donc rien à voir avec du SQL...
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Ben je dois créer une requête justement.

    J'ai les X et Y qui sont géolocalisés et fourni par mappy maintenant c'est à moi justement de faire la requête.

    Mais a mon avie la recherche par carré est beaucoup plus facile, c'est même sur.

  4. #4
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Points : 641
    Points
    641
    Par défaut
    Ne connaissant pas la structure de ta table et le type de base, je peux néanmoins t'indiquer le lien sur les fonctions SQL que tu pourras utiliser dans ta requête :

    http://sqlpro.developpez.com/cours/sqlaz/fonctions/
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Merci ca pourra toujours servir.
    Je crois que je vais faire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ID,X,Y 
    FROM DATA
    WHERE (X<PARAM_X+R and X>PARAM_X-R and Y<PARAM_Y+R and Y>PARAM_Y-R)
    Ca sera une recherche par carré mais la différence n'est pas si lointaine.

  6. #6
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Points : 641
    Points
    641
    Par défaut
    Sous Oracle en tout cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT ID,X,Y 
    FROM DATA
    WHERE 
    sqrt( power((X - PARAM_X),2) + power((Y - PARAM_Y),2)) < R
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 193
    Points
    193
    Par défaut
    Ben sous mysql ca va le faire aussi alors et la requête sera la même.

    SQRT et power existe aussi!!!!!!! NICEEEEEEEEEEE (mysql 5.0)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/12/2007, 22h19
  2. [SGBD] problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/10/2005, 23h06
  3. Réponses: 3
    Dernier message: 09/10/2005, 19h10
  4. Recherche BDD MySQL
    Par Gauth dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/04/2005, 20h26
  5. Recherche FULL Text existe que dans MySql ?
    Par seb.49 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/06/2004, 22h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo