2017-05-26 8 views
0
var R = 6371e3; // metres 
var φ1 = lat1.toRadians(); 
var φ2 = lat2.toRadians(); 
var Δφ = (lat2-lat1).toRadians(); 
var Δλ = (lon2-lon1).toRadians(); 

var a = Math.sin(Δφ/2) * Math.sin(Δφ/2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ/2) * Math.sin(Δλ/2); 

var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 

var d = R * c; 

Hier in diesem Code Formel wird in JavaScript verwendet. Aber es gibt auch a und c in der ursprünglichen Formel. Was meinen sie?Wofür stehen 'a' und 'c' in 'Haversine Formel', um die Entfernung zwischen zwei Punkten zu messen?

+1

Sie sind nur temporäre Variablen. Obwohl "c" auch tatsächlich der Winkel zwischen den beiden Punkten zu sein scheint. – Evert

+0

Haben Sie sich eine der trigonometrischen Identitäten auf Wikipedia angesehen? Das sieht nach einem Trick aus. –

+0

@Evert danke. Beide Variablen werden verwendet, um den Winkel zu messen, richtig? –

Antwort

0

Tatsächlich ist c der Winkelabstand zwischen zwei Punkten (im Bogenmaß), und a ist das Quadrat der halben Sehnenlänge zwischen zwei Punkten.

P. S. Siehe here.

Verwandte Themen