1

我尝试使用 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;

}

它给了我 Lat: 37.7858 Long: -122.406 这是在美国的某个地方,而我正在运行来自欧洲、罗马尼亚的代码......

可能是因为它是从模拟器运行的吗?

我也知道 locationManager:didUpdateToLocation:fromLocation 已弃用,但我尝试使用:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

但我不知道如何访问 [location lastObject] 的元素。

4

1 回答 1

2

这个经纬组合就是旧金山,它是许多通勤(通过豪华豪华通勤巴士)Apple 员工的大本营。

您可以很容易地设置模拟器正在使用的位置:

您可以在 iPhone 模拟器中设置您的首选位置

据我所知,布加勒斯特的纬度和经度是“44.4325”和“26.103889”。

至于访问 " [location lastObject]" 的元素,该数组中的对象将是一个具有 " " 属性的CLLocation 对象。coordinate如果您didUpdateLocations:调用了“”委托方法,则该数组将始终具有至少一个位置(这是您通过“ lastObject”访问的位置)。

于 2013-06-21T11:33:13.557 回答