2016-07-02 11 views
0

をマップ:GoogleマップからCLLocationアプリで距離の不一致&Googleは私が2つの場所の間の距離を取得しています

  1. CLLocationを使用してアプリからの距離= 1.5 KM(約)(正)
  2. :距離= 0.83 KM(正しくない)(約)

場所の座標は以下のとおりです。

現在の場所:19.0174941,72.8557548 先場所:

CLLocation *destination = [[CLLocation alloc] initWithLatitude:[latitude doubleValue] longitude:[longitude doubleValue]]; 
CLLocationDistance distance = [destination distanceFromLocation:currentLocation]/1000.0; 

私は両方のアプローチでこのような違いがある理由を理解することはできませんよ。19.0205907,7​​2.8540556

以下は、私が距離を計算するために使用していたコードです。どのように私は両方の方法から同じ距離を得ることができます誰も私を導くことができます。

答えて

0

Google SDKでGoogleマップを使用すると実際の道路の距離が得られますが、CLLocationでは2つの座標の間の距離が直線とみなされます。そこで、この違いがあります。

アップルのドキュメントhereを確認してください。

この方法では、2つの場所の距離を、地球の曲率に沿った線の間にある の線をたどって測定します。 結果として生じる円弧は滑らかな曲線であり、2つの場所の間で特定の標高の変化が考慮されません( )。

+0

つまり、CLLocation Managerを使用して正確な距離を得ることはできません。 – iYoung

+0

いいえ、CLLocationマネージャで道路距離を取得できません。 –

+0

@iYoungアップルのドキュメントでこれについては何を参照してください、私は答えを更新しました。 –

関連する問題