iPhone SDKで少し遊んでいて、アプリケーションで現在の速度を見せたいと思っています。本当に正確に、特に走行や自転車のような低速の場合には、非常に多くのアプリがあります。私が見た最高のRunKeeperです。私のCLLocationの速度がどうして不正確なのですか?
しかし、私のアプリケーションでは、速度が絶対に不正確です。低速では常にゼロになり、高速ではいくつかの値が表示されますが、ほとんど更新されず、あまり有用ではありません。
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
if (newLocation.timestamp > oldLocation.timestamp &&
newLocation.verticalAccuracy > 0.0f && // GPS is active
newLocation.horizontalAccuracy < 500.0f && // GPS is active
//newLocation.horizontalAccuracy < kCLLocationAccuracyHundredMeters && // good quality GPS signal
//newLocation.speed > 1.0f && // enough movment for accurate speed and course measurement
oldLocation != nil) // oldLocation is nil on the first reading
{
double speed = (newLocation.speed * 3.6);
[self updateDisplayWithSpeed:speed];
//double direction = newLocation.course;
}
}
誰でもそのコードを使用できますか?それとも、私が何が間違っているのか教えてください。
あなたが最初の問題を処理するコードの例がありますか?または、これはちょうど前のものとの位置のタイムスタンプをチェックしていますか? –