iOS提供了一个叫作CoreLocation.framework的框架。使用他可以取到自己的定位信息(经纬度)。请参考下面代码片段:
if([CLLocationManager locationServicesEnabled]){
//定位功能开启的情况下进行定位
CLLocationManager *manager = [[CLLocationManager alloc] init];
manager.distanceFilter = kCLDistanceFilterNone; manager.desiredAccuracy = kCLLocationAccuracyBest;
manager.delegate = self;
[manager startUpdatingLocation]; }
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
[manager stopUpdatingLocation]; }
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
[manager stopUpdatingLocation]; }
如上面代码所示CLLocationManager就是用于获取定位信息对象类,在实际应用中可以根据自己的需要来设置定位的更新频率以及定位准确度。其中代码中的distanceFilter表示更新位置的距离,假如超过设定值则进行定位更新,否则不更新。代码中的kCLDistanceFilterNone表示不设置距离过滤,即随时更新地理位置。desiredAccuracy属性表示取得定位的精度,kCLLocationAccuracyBest表示最精确,但也预示着需要消耗更多的时间和电量,所以应该根据需要设定。
属性 | 描述 |
altitude | 海拔高度 |
coordinate | 经纬度 |
course | 行驶方向 |
horizontalAccuracy | 水平方向的精确度 |
Speed | 行驶速度 |
timestamp | 时间戳 |
verticalAccuracy | 垂直方向的精确度 |