iOS 原生地图地理编码与反地理编码

来源:互联网 发布:搜索算法open表close表 编辑:程序博客网 时间:2024/05/17 01:28

  当我们要在App实现功能:输入地名,编码为经纬度,实现导航功能。

  那么,我需要用到原生地图中的地理编码功能,而在Core Location中主要包含了定位、地理编码(包括反编码)功能。


在文件中导入

#import <CoreLocation/CoreLocation.h>


地理编码:

/** 地理编码 */- (void)geocoder {        CLGeocoder *geocoder=[[CLGeocoder alloc]init];        NSString *addressStr = @"广东省深圳市宝安区";//位置信息        [geocoder geocodeAddressString:addressStr completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {        if (error!=nil || placemarks.count==0) {            return ;        }        //创建placemark对象        CLPlacemark *placemark=[placemarks firstObject];        //经度        NSString *longitude =[NSString stringWithFormat:@"%f",placemark.location.coordinate.longitude];        //纬度        NSString *latitude =[NSString stringWithFormat:@"%f",placemark.location.coordinate.latitude];                NSLog(@"经度:%@,纬度:%@",longitude,latitude);            }];    }

地理反编码:

/** 地理反编码 */- (void)reverseGeocoder{    //创建地理编码对象    CLGeocoder *geocoder=[[CLGeocoder alloc]init];        //经度    NSString *longitude = @"113.23";    //纬度    NSString *latitude = @"23.16";            //创建位置    CLLocation *location=[[CLLocation alloc]initWithLatitude:[latitude floatValue] longitude:[longitude floatValue]];            //反地理编码    [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {        //判断是否有错误或者placemarks是否为空        if (error !=nil || placemarks.count==0) {            NSLog(@"%@",error);            return ;        }        for (CLPlacemark *placemark in placemarks) {            //详细地址            NSString *addressStr = placemark.name;            NSLog(@"详细地址1:%@",addressStr);            NSLog(@"详细地址2:%@",placemark.addressDictionary);            NSLog(@"详细地址3:%@",placemark.locality);        }            }];}

Demo:https://github.com/JnKindle/GeocoderAndReverseReocoder

/**

 *  AuthorJn

 *  GitHubhttps://github.com/JnKindle

 *  cnblogshttp://www.cnblogs.com/JnKindle

 *  QQ1294405741

 */



0 0
原创粉丝点击