【问题标题】:Location manager giving really bad coordinates位置经理给出了非常糟糕的坐标
【发布时间】:2013-06-21 11:18:51
【问题描述】:

我尝试使用 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] 的元素。

【问题讨论】:

标签: gps location cllocationmanager core


【解决方案1】:

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

您可以非常轻松地设置模拟器使用的位置:

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

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

【讨论】:

    猜你喜欢
    • 2015-04-08
    • 2015-06-01
    • 2018-06-27
    • 2021-05-29
    • 2016-10-09
    • 2012-05-06
    • 1970-01-01
    • 2017-01-25
    • 2010-09-16
    相关资源
    最近更新 更多