多语言展示
当前在线:1066今日阅读:91今日分享:37

iOS开发 如何把地名转换为经纬度坐标

CLGeocoder地理编码把地名转换为经纬度坐标。经纬度是有正负值的,用来区分东西经、南北纬。经度:西经为-,东经为+;纬度:南纬为-,北纬为+。CLGeocoder是CoreLocation框架自带的,也是iOS SDK自带的,可能iOS9转换国外地址会有问题,待解决。代码在github的CLGeocoder上。
工具/原料
1

Mac OS X操作系统:OS X 10.11.5

2

编译环境:Xcode 7.3.1

方法/步骤
1

创建工程项目和视图控制器      1、创建一个Sing View Application工程项目;      2、为项目命名,生成工程文件。

2

引入CoreLocation框架      1、包含头文件:#import CLGeocoder需要用到CoreLocation框架      2、CLGeocoder编码是用Block回调的,所以返回坐标也使用Block。typedef void (^Coordinate2DBlock)(CLLocationCoordinate2D coordinate);      3、__block的self,防止循环引用。

3

开始地理编码(地名—>经纬度坐标)      - (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;

4

根据CLGeocoder编码返回坐标      返回所有符合地名的位置信息数组placemarks;      这里取第一个位置信息[placemarks firstObject];      取出经度:.location.coordinate.latitude;      取出纬度:.location.coordinate.longitude;

6

开始位置编码      调用自定义方法,回调结果

7

效果如图

8

如果您喜欢,请按投票;如果有疑问,欢迎一起探讨。

推荐信息