首页 > 系统 > iOS > 正文

iOS 原生地图地理编码与反地理编码(详解)

2019-10-21 18:46:52
字体:
来源:转载
供稿:网友

当我们要在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);     }        }]; }

以上这篇iOS 原生地图地理编码与反地理编码(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到IOS开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表