CLLocationManager を使用すると、おかしな測定値が表示されます。報告された緯度/経度は正確ですが、移動距離はかなりずれています。次のデリゲート メソッドを実装しました。
.h:
CLLocationManager *mLocationManager;
CLLocation *mStartDistance;
と
.m:
- (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
NSLog(@"%g", newLocation.coordinate.latitude);
NSLog(@"%g", newLocation.coordinate.longitude);
NSLog(@"%g", newLocation.altitude);
NSLog(@"%g", newLocation.verticalAccuracy);
if (mStartDistance == nil)
{ mStartDistance = newLocation; }
CLLocationDistance dist = [newLocation getDistanceFrom:mStartDistance];
NSLog(@"%gm", dist);
}
そして、これを自分のデバイスで実行すると、次のようになります(有罪のヘッを保護するために緯度/経度がマスクされています):
] xx.xxxx
] -yy.yyyy
] 0
] -1
] 0m
] xx.xxxx
] -yy.yyyy
] 0
] -1
] 0m
] xx.xxxx
] -yy.yyyy
] 0
] -1
] 376.133m <-- wat?
+376m移動したと言っている理由がわかりません..それは+1200フィートです!