我認爲這個問題甚至不是一個有效的問題。如果你想知道兩點之間(經/緯度)的距離,我用的方法是這樣的:
public static double Distance(Position pos1, Position pos2, DistanceType type)
{
double R = (type == DistanceType.Miles) ? 3960 : 6371;
double dLat = toRadian(pos2.Latitude - pos1.Latitude);
double dLon = toRadian(pos2.Longitude - pos1.Longitude);
double a = Math.Sin(dLat/2) * Math.Sin(dLat/2) +
Math.Cos(toRadian(pos1.Latitude)) * Math.Cos(toRadian(pos2.Latitude)) *
Math.Sin(dLon/2) * Math.Sin(dLon/2);
double c = 2 * Math.Asin(Math.Min(1, Math.Sqrt(a)));
double d = R * c;
return d;
}
的Position
對象是包含類型double
的Latitude
和Longitude
屬性的對象。
這是功課嗎? –
您的座標代表一個點。半徑是原點和點之間的線段。座標系的原點是什麼? – Strillo
你的意思是你想知道一個點與另一個點之間的距離534497單位東部和168016單位以北?他們在什麼單位?這是在一個平坦的表面或地理點,可以遠離曲率重要嗎? –