を使用して歩きながら距離を計算します。例えば、ユーザがスタートボタンをタップし、タップを止めたときよりも歩行または走行を開始する。別の緯度を長くするためには、ユーザーが移動しなければならない最小距離は何ですか?iPhone:私はGPSを使って歩いている間、ユーザーはカバーの距離を計算したいGPS
我々はIPhoneでそれを行うことができますどのように、asume我々はポイントのリストを持って、最後のよりも長いすべての0.3秒後に、緯度取りますか?
を使用して歩きながら距離を計算します。例えば、ユーザがスタートボタンをタップし、タップを止めたときよりも歩行または走行を開始する。別の緯度を長くするためには、ユーザーが移動しなければならない最小距離は何ですか?iPhone:私はGPSを使って歩いている間、ユーザーはカバーの距離を計算したいGPS
我々はIPhoneでそれを行うことができますどのように、asume我々はポイントのリストを持って、最後のよりも長いすべての0.3秒後に、緯度取りますか?
あなたは2点(緯度、経度)との間の距離算出することによってこれを行うことができます:(私はそれをテストしていない)
を:
-(double)distanceBetweenCoordinate:(CLLocationCoordinate2D)c1 andCoordinate:(CLLocationCoordinate2D)c2 {
double long1 = degreesToRadians(c1.longitude);
double lat1 = degreesToRadians(90 - c1.latitude);
double long2 = degreesToRadians(c2.longitude);
double lat2 = degreesToRadians(90 - c2.latitude);
double gamma = fabs(long1 - long2);
if (gamma > M_PI) {
gamma = 2 * M_PI - gamma;
}
double result = cos(lat2) * cos(lat1) + sin(lat2) * sin(lat1) * cos(gamma);
return acos(result) * 6366.1977; // Kilometers
};
CGFloat degreesToRadians(CGFloat degrees) {
return degrees * M_PI/180;
};
UPDATE:使ったGPSの位置の間の距離を計算distanceFromLocation - Calculate distance between two points代わり
は簡単です。他のすべては非常に難しいです。特に、低速で距離を追跡したい場合。あなたが頻繁に測定すると、より多くの誤差が蓄積されます。ゆっくりと移動すると、距離ごとに誤差が累積します。 [surveyor's wheel](http://en.wikipedia.org/wiki/Surveyor's_wheel)を入手し、アルゴリズムを実際の世界でテストしてください。あなたは誤ったGPSがどのようにあるのか疑問に思います。 –
質問の最も重要な部分(少なくともミリアンペアのため...)、まだ未解決のまま:「何が最小距離のユーザーが別の緯度は、長い得るために移動しなければならないでしょう?」言い換えれば、私は、1つのまたは2つの手順を取る場合、前方のGPSは、この変位を認識し、走行距離を計算(それがより少ない場合でも、のは1-1,5メートル、言わせて)? (定数CLLocationの*)場所 –