ios 高德地图 通过索引输出经纬度 根据经纬度 定位

ios 高德地图新出了几个方法,实现地理位置的编码用到了CLGeocoder,CLGeocoder里面一共就下面这几种方法:

//根据location即经纬度输出具体地址

- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler;


-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
    
    CLLocation * location = [locations firstObject];
    self.repairsMapView.latitude = location.coordinate.latitude;
    self.repairsMapView.longitude = location.coordinate.longitude;
    
    CLGeocoder * geocoder = [[CLGeocoder alloc]init];
    
    [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
        if (error == nil && [placemarks count] > 0) {


//这时的placemarks数组里面只有一个元素


            CLPlacemark * placemark = [placemarks firstObject];
            NSLog(@"%@",placemark.addressDictionary); //根据经纬度会输出该经纬度下的详细地址  国家 地区 街道 之类的
   
            
            
        }
    }];

    [manager stopUpdatingLocation];
   
}


//根据具体地址输出经纬度

- (void)geocodeAddressDictionary:(NSDictionary *)addressDictionary completionHandler:(CLGeocodeCompletionHandler)completionHandler;
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
- (void)geocodeAddressString:(NSString *)addressString inRegion:(CLRegion *)region completionHandler:(CLGeocodeCompletionHandler)completionHandler;

我就以- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;来做下说明


在使用CLGeocoder之前 需要 导入#import <CoreLocation/CoreLocation.h>  即corelocation.framework

 CLGeocoder * geocoder = [[CLGeocoder alloc]init];
    
    [geocoder geocodeAddressString:@"北京市长城" completionHandler:^(NSArray *placemarks, NSError *error) {
        NSLog(@"%@",placemarks);
        
    }];


//输出结果如下:

(
    "Beijing Fengtai Great Wall (New Century Clothing Mansion), Beijing Fengtai Great Wall (New Century Clothing Mansion), Fengtai, Beijing China @ <+39.85067600,+116.39916000> +/- 100.00m, region CLCircularRegion (identifier:'<+39.85067650,+116.39916000> radius 57.99', center:<+39.85067650,+116.39916000>, radius:57.99m)"
)









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值