美文网首页
iOS手机定位实现

iOS手机定位实现

作者: 儒雅的减肥大哥 | 来源:发表于2017-07-19 16:03 被阅读29次
  • 当前内容适用于真机定位
  • 不支持模拟器定位
  • 可以获取当前的位置和经纬度
  • 项目中有用到,拿来分享,大神勿喷,欢迎交流
  • 导入苹果系统库 并创建对象
#import <CoreLocation/CoreLocation.h>
@property (nonatomic, strong) CLLocationManager *locationManager;
  • 遵循定位要用到的代理
<CLLocationManagerDelegate>
  • 定位
#pragma mark - 定位
- (void)startLocation {
    if ([CLLocationManager locationServicesEnabled]) {
        self.locationManager = [[CLLocationManager alloc]init];
        self.locationManager.delegate = self;
        //控制定位精度,越高耗电量越
        self.locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
        // 总是授权
        [self.locationManager requestAlwaysAuthorization];
        self.locationManager.distanceFilter = 10.0f;
        [self.locationManager requestAlwaysAuthorization];
        [self.locationManager startUpdatingLocation];
    }
}```

- 要实现的几个代理方法
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
    if ([error code] == kCLErrorDenied) {
        NSLog(@"访问被拒绝");
    }
    if ([error code] == kCLErrorLocationUnknown) {
        NSLog(@"无法获取位置信息");
    }
}
//定位代理经纬度回调
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations {
    CLLocation *newLocation = locations[0];
    
    // 获取当前所在的城市名
    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    //根据经纬度反向地理编译出地址信息
    [geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *array, NSError *error){
        if (array.count > 0){
            CLPlacemark *placemark = [array objectAtIndex:0];
            
                       

            if (!city) {
                //四大直辖市的城市信息无法通过locality获得,只能通过获取省份的方法来获得(如果city为空,则可知为直辖市)
                city = placemark.administrativeArea;
            }
           
            
//            [self httpGetWeather:city];
        }
        else if (error == nil && [array count] == 0)
        {
            NSLog(@"No results were returned.");
        }
        else if (error != nil)
        {
            NSLog(@"An error occurred = %@", error);
        }
    }];
    //系统会一直更新数据,直到选择停止更新,因为我们只需要获  得一次经纬度即可,所以获取之后就停止更新
    [manager stopUpdatingLocation];
    
}
  • 获取到的信息就上面方法的placemark对象中,一下是部分属性,可以点进去查看
@property (nonatomic, readonly, copy, nullable) NSDictionary *addressDictionary;
@property (nonatomic, readonly, copy, nullable) NSString *name; // eg. Apple Inc.
@property (nonatomic, readonly, copy, nullable) NSString *thoroughfare; // street name, eg. Infinite Loop
@property (nonatomic, readonly, copy, nullable) NSString *subThoroughfare; // eg. 1
@property (nonatomic, readonly, copy, nullable) NSString *locality; // city, eg. Cupertino
@property (nonatomic, readonly, copy, nullable) NSString *subLocality; // neighborhood, common name, eg. Mission District
@property (nonatomic, readonly, copy, nullable) NSString *administrativeArea; // state, eg. CA
@property (nonatomic, readonly, copy, nullable) NSString *subAdministrativeArea; // county, eg. Santa Clara
@property (nonatomic, readonly, copy, nullable) NSString *postalCode; // zip code, eg. 95014
@property (nonatomic, readonly, copy, nullable) NSString *ISOcountryCode; // eg. US
@property (nonatomic, readonly, copy, nullable) NSString *country; // eg. United States
@property (nonatomic, readonly, copy, nullable) NSString *inlandWater; // eg. Lake Tahoe
@property (nonatomic, readonly, copy, nullable) NSString *ocean; // eg. Pacific Ocean
@property (nonatomic, readonly, copy, nullable) NSArray<NSString *> *areasOfInterest; // eg. Golden Gate Park
@end

相关文章

  • iOS手机定位实现

    当前内容适用于真机定位 不支持模拟器定位 可以获取当前的位置和经纬度 项目中有用到,拿来分享,大神勿喷,欢迎交流 ...

  • 定位

    定位 1.实现定位功能 在iOS中使用定位功能,需要导入CoreLocation.h文件,其实现定位功能的步骤如下...

  • ios手机H5开发input、fixed、video兼容问题

    一、ios手机fixed 在ios手机中对定位的fixed不友好,有时定位在底部的按钮会有时出现或不出现,这时可以...

  • iOS 实时定位并发送位置

    前言 最近由于项目需要,需要实现React-native iOS端实时定位功能,所以有了以下iOS实时定位,并发送...

  • iOS 手机虚拟定位实现真实可以实现

    1.使用Xcode修改的定位是设备的定位,本设备所有地图定位App都可以修改 2.备注:该方法在iOS 11之下也...

  • iOS百度地图使用时的注意问题

    iOS使用百度地图时会发现,API本身不带定位功能的,定位是通过iOS系统自身的定位实现的,百度地图API只是封装...

  • iOS14开发-定位与地图

    定位 CoreLocation 是 iOS 中用于设备定位的框架。通过这个框架可以实现定位进而获取位置信息如经度、...

  • 11.2 苹果原生地图

    一、定位要实现地图、导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作。C...

  • iOS CoreLocation 定位实现

    CoreLocation 定位 iOS 地图 反编码 CoreLocation 实现基于 8.0 之后的使用方法,...

  • iOS Core Location 之 定位 与 地理编码

    一、定位功能简介 要实现地图、导航功能,往往需要先熟悉定位功能。在 iOS 中通过 Core Location 框...

网友评论

      本文标题:iOS手机定位实现

      本文链接:https://www.haomeiwen.com/subject/wjblkxtx.html