iT邦幫忙

DAY 1
4

APP 開發好好玩系列 第 1

在 iOS 與 Android 當中,如何計算兩組經緯度的距離

在手機程式撰寫當中,我們常常要計算兩組經緯度之間的距離,例如手機到某餐廳距離,或者是兩台手機之間的距離,但是在拿到經緯度的狀況下,該怎麼做出來呢?
在手機程式撰寫的時候,我們會需要計算兩點之間的距離,該怎麼做呢??

在我剛開始寫 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 類別當中的

  • (CLLocationDistance)distanceFromLocation:(const CLLocation *)location

就行了

在此提供給大家參考


下一篇
在 .NET 當中,繪製圖形時會遇到 PictureBox 的校能問題
系列文
APP 開發好好玩27

1 則留言

我要留言

立即登入留言