2017-07-18 2 views
0

J'ai donc la coordonnée (A) avec x longitude et y latitude. Ce que je veux, c'est créer une nouvelle coordonnée (B) où la distance (mètre) entre les coordonnées et la direction (0 - 360) en fonction de l'entrée de l'utilisateur. Quelle formule pour y parvenir?Créer une coordonnée basée sur la distance et la direction

jusqu'à ce que je fais est d'utiliser cette formule de answer1 et answer2

new_latitude = latitude + (dy/r_earth) * (180/pi); 
new_longitude = longitude + (dx/r_earth) * (180/pi)/cos(latitude * pi/180); 

mais il suffit de créer une nouvelle coordination avec une direction, ce que je veux est la direction peut être modifiée.

Répondre

1

Vous pouvez utiliser la formule de this excellent site (section distance de point donné de destination et portant du point de départ)

var φ2 = Math.asin(Math.sin(φ1)*Math.cos(d/R) + 
        Math.cos(φ1)*Math.sin(d/R)*Math.cos(brng)); 
var λ2 = λ1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(φ1), 
         Math.cos(d/R)-Math.sin(φ1)*Math.sin(φ2)); 

où φ est la latitude, λ est la longitude, θ est le palier (dans le sens horaire du nord), δ est la distance angulaire d/R; d étant la distance parcourue, R le rayon de la terre