Core Location を使って座標を書いてみたところ、うまく動いています。唯一のことは、座標に関しては野菜です。
座標を取得するコードです。
- (void)viewDidLoad
{
[super viewDidLoad];
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
if (startingLocation == nil)
self.startingLocation = newLocation;
NSString *latitudeString = [[NSString alloc] initWithFormat:@"%g",newLocation.coordinate.latitude];
latitudeLabel.text = latitudeString;
NSString *longitudeString = [[NSString alloc] initWithFormat:@"%g",newLocation.coordinate.longitude];
longitudeLabel.text = longitudeString;
NSString *horizontalAccuracyString = [[NSString alloc] initWithFormat:@"%g",newLocation.horizontalAccuracy];
horizontalAccuraryLabel.text = horizontalAccuracyString;
NSString *altitudeString = [[NSString alloc] initWithFormat:@"%g",newLocation.altitude];
altitudeLabel.text = altitudeString;
NSString *verticalAccuracyString = [[NSString alloc] initWithFormat:@"%g",newLocation.verticalAccuracy];
verticalAccuracyLabel.text = verticalAccuracyString;
CLLocationDistance distance = [newLocation getDistanceFrom:startingLocation];
NSString *distanceString = [[NSString alloc] initWithFormat:@"%g",distance];
distanceTraveledLabel.text = distanceString;
}
ヨーロッパ、ルーマニアからコードを実行しているときに、緯度:37.7858、長さ:-122.406、これは米国のどこかにあります...
シミュレーターから実行されているためでしょうか?
また、 locationManager:didUpdateToLocation:fromLocation が非推奨であることは知っていますが、次のようにしてみました:
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
しかし、[location lastObject] の要素にアクセスする方法がわかりません。