当我的应用程序从背景带到前景时,我需要我的应用程序显示非常准确的纬度和经度坐标。
我在这样做时遇到了很多麻烦。当我将我的应用程序置于后台时,位置服务会关闭。我曾考虑启用后台定位模式,但我知道这样做可能会导致用户的电池耗尽。我也尝试过使用startMonitoringSignificantLocationChanges
,但这似乎并不准确。
我的视图有一个按钮,单击时会显示用户的坐标。在四处走动时单击按钮时,坐标是准确的。但是如果用户唤醒应用程序并立即点击按钮,坐标就会偏离。谁能帮我这个?启用后台定位模式是我唯一的选择吗?在位置准确之前,我可以禁用按钮吗?任何帮助将不胜感激!
我的视图从我的应用程序委托中设置的 locationManager 中提取坐标,如下所示:
这是视图:
-(void>buttonClick {
NSString *userLatitude =[(PDCAppDelegate *)[UIApplication sharedApplication].delegate
getUserLatitude];
NSString *userLongitude =[(PDCAppDelegate *)[UIApplication sharedApplication].delegate
getUserLongitude];
}
这是应用程序委托:
- (NSString *)getUserLatitude {
NSString *userLatitude = [NSString stringWithFormat:@"%f",
locationManager.location.coordinate.latitude];
return userLatitude;
}
- (NSString *)getUserLongitude {
NSString *userLongitude = [NSString stringWithFormat:@"%f",
locationManager.location.coordinate.longitude];
return userLongitude;
}