|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Chacal Développeur Web Inscription : novembre 2012 Messages : 4 ![]() |
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 |
|
|
00
|
|
|
#2 | ||
|
Membre éclairé
![]() Alex VEtudiant administrateur systèmes et réseaux Inscription : octobre 2007 Messages : 609 ![]() |
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 :
__________________
UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Chacal Développeur Web Inscription : novembre 2012 Messages : 4 ![]() |
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 :
WHERE ( 6366 * acos( cos( radians( "+latitude+" ) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians( "+longitude+" ) ) + sin( radians( "+latitude+" ) ) * sin( radians( latitude ) ) ) ) <= "+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 |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Alex VEtudiant administrateur systèmes et réseaux Inscription : octobre 2007 Messages : 609 ![]() |
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 :
|
|
|
00
|
|
|
#5 | ||||
|
Expert Confirmé
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 1 802 ![]() |
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 :
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:
Citation:
Citation:
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...
|
||||
|
|
20
|
|
|
#6 |
|
Invité de passage
![]() Chacal Développeur Web Inscription : novembre 2012 Messages : 4 ![]() |
Merci
J'ai toutes les données pour résoudre mes problèmes |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Chacal Développeur Web Inscription : novembre 2012 Messages : 4 ![]() |
Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com