在手機程式撰寫當中,我們常常要計算兩組經緯度之間的距離,例如手機到某餐廳距離,或者是兩台手機之間的距離,但是在拿到經緯度的狀況下,該怎麼做出來呢?
在手機程式撰寫的時候,我們會需要計算兩點之間的距離,該怎麼做呢??
在我剛開始寫 Android 的時候,我看過一段了不起的程式碼是這樣寫的:
public double GetDistance(double Lat1, double Long1, double Lat2, double Long2)
{
double Lat1r = ConvertDegreeToRadians(Lat1);
double Lat2r = ConvertDegreeToRadians(Lat2);
double Long1r = ConvertDegreeToRadians(Long1);
double Long2r = ConvertDegreeToRadians(Long2);
double R = 6371; // Earth's radius (km)
double d = Math.acos(Math.sin(Lat1r) *
Math.sin(Lat2r) + Math.cos(Lat1r) *
Math.cos(Lat2r) *
Math.cos(Long2r-Long1r)) * R;
return d * 1000;
}
這段程式碼真的超級厲害的,還用到了地球的半徑。
可是其實要算兩點間的距離不用那麼麻煩,在 Android 當中,只需要用
Location.distanceBetween(經緯度)
而在 iOS 當中,就使用
CLLocation 類別當中的
就行了
在此提供給大家參考