Bonjour,
J'aimerai calculer une distance à vole d'oiseau à partir d'un point de référence avec ma latitude et longitude en radian et ne garder que les résultats dont la valeur sera inférieur à {param3}.
Exemple quelles sont les villes dans un rayon de 10km à vole d'oiseau autour de limoge.
J'ai une table nommé Ville dans laquelle j'ai plusieurs rubriques dont
Ville_nom
Ville_latitude_rad
ville_longitue_rad
Sous excel lorsque je fais le calcul tout fonctionne avec cette formule :
=ACOS(SIN(RADIANS(B2))*SIN(RADIANS(B3))+COS(RADIANS(B2))*COS(RADIANS(B3))*COS(RADIANS(C2-C3)))*6371
mais en sql rien ne va plus !
{param1}= coordonnées latitude en radian
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT Ville.ville_nom AS Ville, ROUND( ( 6371* ACOS( ( ( COS( {param1} ) * COS( Ville.ville_latitude_rad ) ) * COS( ( ( {param2} - Ville.ville_longitue_rad ) + ( SIN( {param1} ) * SIN( Ville.ville_latitude_rad ) ) ) ) ) ) ) , 2) AS distance FROM Ville WHERE ROUND( ( 6371* ACOS( ( ( COS( {param1} ) * COS( Ville.ville_latitude_rad ) ) * COS( ( ( {param2} - Ville.ville_longitue_rad ) + ( SIN( {param1} ) * SIN( Ville.ville_latitude_rad ) ) ) ) ) ) ) , 2) < {param3} ORDER BY distance ASC
{param2}= coordonnées longitude en radian
{param3}= distance maxi
d'où vient l'erreur je n'arrive pas a comprendre....
merci d'avance
Partager