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

Requêtes MySQL Discussion :

Trouver coordonnées x/y les plus proches


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 50
    Points : 43
    Points
    43
    Par défaut Trouver coordonnées x/y les plus proches
    Salut à tous,

    J'ai une table qui contient (entre autre) deux colones contenant des coordonées x et y (pour placer un objet tout sur une "jolie" carte php/gd )

    J'aurais besoin de pouvoir trouver l'objet le plus proche de coordonnées x/y données et j'avoue que je n'ai pas la moindre idée de comment former la requête
    Ni même d'ou commencer à chercher

    Merci d'avance

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    La longueur d'un segment AB est égale à la racine carrée de la somme du carré de la différence des abscisses et et du carré de la différence des ordonnées de ses extrémités :
    Longueur de AB = Racine de ( (Xb-Xa)² + (Yb-Ya)²).
    Donc le point le plus proche de A est celui pour lequel AB sera le plus court.
    A transposer en SQL, il faut bien qu'il te reste quelque chose à faire.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Un peu d'aide ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT A.x, A.y, B.x, B.y,
    SQRT(POW(B.x-A.x,2)+POW( B.y-A.y,2)) AB
    FROM points A
    INNER JOIN points B AS A.x <> B.x AND A.y <> B.y
    WHERE A.x=$x AND A.y=$y
    ORDER BY AB ASC
    LIMIT 1
    Une non-équijointure, c'est ce qui me vient à l'idée.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Hello et tout d'abord merci beaucoup pour ton aide

    Au risque de paraitre stupide, j'ai un peu de mal à comprendre la logique, à quoi correspondent A.x, A.y, B.x et B.y?

    Merci d'avance

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    A et B sont des alias pour la table points qui est utilisée deux fois, jointe à elle-même.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Et bien... Merci à vous.

    Je vais pas dire que je comprends parfaitement la formule mais... elle fonctionne.

    Ce qui dans ce cas précis est le plus important

    Donc merci infiniment

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

Discussions similaires

  1. Liste de coordonnées les plus proche
    Par Serine73 dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/05/2013, 09h53
  2. [Google Maps] Trouver les markers les plus proches en fonction d'une adresse donnée
    Par xillibit dans le forum APIs Google
    Réponses: 9
    Dernier message: 24/11/2011, 13h00
  3. Coordonnées les plus proches
    Par turguedu dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/02/2011, 16h11
  4. Trouver les coordonnées géographiques les plus proches
    Par smikar dans le forum Accès aux données
    Réponses: 2
    Dernier message: 22/10/2010, 17h17
  5. Trouver les X nombres les plus proche d'un nombre donné
    Par pyrou dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/07/2007, 09h53

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