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 :

Requete coordonnée GPS lat long + angle boussole


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Requete coordonnée GPS lat long + angle boussole
    Bonjour,
    J'ai besoin de faire une requête SQL sur mysql 5 de géolocalisation pour donner tous les points à proximité.
    J'ai une formule pour rechercher tous les points en fonction de leur coordonnée lat,long dans un rayon par exemple de 2km mais là j'ai besoins d'avoir seulement les points qui sont dans une partie du cercle définie grâce à l'angle de la boussole
    Mais je n'arrive pas à rajouter se filtre. Avez vous une piste ?
    Cordialement

  2. #2
    Membre confirmé
    Homme Profil pro
    Etudiant administrateur systèmes et réseaux
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Points : 467
    Points
    467
    Par défaut
    Salut,

    Elle est foutue comment ta table ?
    Est ce que chaque point possède une entrèe qui donne son équivalent en angle boussole ?

    Si oui, une clause between suffirait ?
    Ton angle de boussole, c'est par exemple, je veux tous les points qui se trouvent entre 0 et Pi ?

    Si oui,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select id, name 
    FROM point 
    where angle BETWEEN 0 AND PI
    Cdt.
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci alors je vous explique plus en détail.
    J'ai une table ou j'ai 2 champ latitude et longitude.

    et j'ai les coordonné gps latitude et longitude de ma position ainsi que l'angle donnée par la boussole.
    Avec cette requête j'ai tous les points présent dans un rayon de (distance)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE ( 6366 * acos( cos( radians( "+latitude+"  ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( "+longitude+" ) ) + sin( radians( "+latitude+" ) ) * sin( radians( latitude ) ) ) ) <= "+distance+"
    La je voudrais pouvoir dire je veux tous les points dans un rayon de distance
    et d'angle ( l'angle de ma boussole -10 à l'angle de la boussole +10)

    J’espère que cela est plus claire
    Donc dans ma table de points je ne peux pas stocke d'angle car l'angle est détermine par rapport à notre position GPS

  4. #4
    Membre confirmé
    Homme Profil pro
    Etudiant administrateur systèmes et réseaux
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Etudiant administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Points : 467
    Points
    467
    Par défaut
    Il te faut une autre fonction mathématique.
    f(r,latitude,longitude) te donne l'E des points compris dans le cercle de rayon r d'origine (latitude, longitude).
    Il te faut une fonction telle que
    f(alpha1,alpha2,r,latitude,longitude) te donne l'E des points compris dans la zone inscrit dans le cercle de rayon r, d'origine (latitude, longitude) et délimité par les l'angle alpha1Oalpha2.

    Mais là ce n'est pas un problème SQL. Il faut réécrire la fonction mathématique adaptée. Mais là ce n'est pas de mon ressort désolé.

    Si tu as calculé toi même la précédente formule, tu devrais pouvoir trouver la nouvelle. Sinon, -> forum mathématique.
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

  5. #5
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    l'angle dont tu parles est le cap ou relèvement ou azimut selon le contexte...

    l'algo de la formule est du genre, en comptant que tu vas de pt1(la1,lo1) vers pt2(la2,lo2):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dlo=(lo2-lo1)*convrad
    dla=(la2-la1)*convrad
    si dlo<>0
      azimut=pi/2-atan(dla/dlo)
    sinon
      azimut=0
    si dlo>0
      retourne azimut
    sinon si dlo<0
      retourne azimut+pi
    les la,lo sont en degrés, le résultat est en radians, convrad est la valeur pi/180 pour convertir les degrés en radians
    0 est un cap nord, pi/2 est, pi ou -pi sud, -pi/2 ouest...
    tu as des formules plus complexe qui font des corrections géodésiques, mais bon on s'en fout un peu pour ce que tu veux faire tu es pas là pour faire de la navigation

    ça revient à voir la terre comme un rectangle avec les latitudes en hauteur et les longitudes en largeur dont le centre est le point la=0,lo=0

    donc comparer 2 directions revient à étudier le produit scalaire entre 2 vecteurs:
    • dla=la2-la1,dlo=lo2-lo1
    • sin(cap_voulu),cos(cap_voulu) (on a un vecteur normalisé, c'est dire de longueur=1)

    et d'en déduire le cos de l'angle entre les 2 vecteurs obtenus pour voir s'il reste en dessous d'une certaine valeur:

    ps=dla*sin(cap_voulu)+dlo*cos(cap_voulu)
    on récupère alors le cos en divisant par la norme des 2 vecteurs (ici seulement celle de dla,dlo vu que l'autre vaut 1):

    c=ps/sqrt(dlo*dlo+dla*dla)
    c correspond à cos(angle_ecart)

    si c<cos(angle_ecart_voulu/2) et c>=0 alors tu es dans le secteur angulaire voulu
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci
    J'ai toutes les données pour résoudre mes problèmes

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT `latitute` , `longitude` , `nom` , `ville` , if( (
    degrees( atan2( cos( 0.818709 ) * sin( latitute ) - sin( 0.818709 ) * cos( latitute ) * cos( longitude - 44.389051 ) , sin( longitude - 44.389051 ) * cos( latitute ) ) ) ) <0, (
    degrees( atan2( cos( 0.818709 ) * sin( latitute ) - sin( 0.818709 ) * cos( latitute ) * cos( longitude - 44.389051 ) , sin( longitude - 44.389051 ) * cos( latitute ) ) )
    ) +360, (
    degrees( atan2( cos( 0.818709 ) * sin( latitute ) - sin( 0.818709 ) * cos( latitute ) * cos( longitude - 44.389051 ) , sin( longitude - 44.389051 ) * cos( latitute ) ) )
    )
    ) AS deg, ( 6366 * acos( cos( radians( 0.818709 ) ) * cos( radians( latitute ) ) * cos( radians( longitude ) - radians( 44.389051 ) ) + sin( radians( 0.818709 ) ) * sin( radians( latitute ) ) ) ) AS distance
    FROM `elements`
    Voilou j'ai la distance et le degré de chacun de mes éléments

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

Discussions similaires

  1. Transposer coordonnées GPS en pixels XY
    Par devroot dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 01/12/2007, 08h23
  2. [vb.net]multiples coordonnées GPS
    Par phicarre dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/05/2007, 18h16
  3. Programme Delphi de conversion de coordonnées GPS/UTM
    Par furious-kiki dans le forum Delphi
    Réponses: 4
    Dernier message: 10/01/2007, 11h19
  4. Coordonnées GPS en varchar
    Par julien.63 dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/06/2006, 12h32
  5. Conversion Lat/Long vers UTM
    Par efficks dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 12/12/2005, 17h13

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