美文网首页
iOS关于地理编码和反编码

iOS关于地理编码和反编码

作者: CMD独白 | 来源:发表于2016-10-28 11:13 被阅读90次
  • 关于

地理编码是通过地名而获取经纬度;
地理反编码是通过经纬度而获取地名;

代码部分:

@property (nonatomic,strong) CLGeocoder *geoCoder;

通过懒加载创建编码对象:

- (CLGeocoder *)geoCoder{
    if (!_geoCoder) {
        _geoCoder = [[CLGeocoder alloc]init];
    }
    return _geoCoder;
}
  • 实现地理编码的方法:
- (void)geocoder:(NSString *)name{

    // 地理信息编码/反编码对象(创建编码对象)
    _geoCoder = [[CLGeocoder alloc] init];
    
    // 地理信息正向编码(地名转换成经纬度)
    [_geoCoder geocodeAddressString:name completionHandler:^(NSArray *placemarks, NSError *error) {
        // 对编码结果进行迭代
        for (CLPlacemark *pMark in placemarks) {
            NSLog(@"location:%@", pMark.location);
            
            // 将地址字典转换成二进制数据
            NSData *data = [NSJSONSerialization dataWithJSONObject:pMark.addressDictionary options:NSJSONWritingPrettyPrinted error:nil];
            // 将二进制数据转成字符串
            NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@"str%@", str);
        }
    }];
    
}
  • 实现地理反编码的方法:
- (void)ungeocoder{
    _geoCoder = [[CLGeocoder alloc] init];

    CLLocation *loc = [[CLLocation alloc] initWithLatitude:22.68359500 longitude:114.22838700];
    // 反编码地理信息(将经纬度转换成地名)
    [_geoCoder reverseGeocodeLocation:loc completionHandler:^(NSArray *placemarks, NSError *error) {
        
        CLPlacemark *pMark = [placemarks firstObject];
        MKPlacemark *mkMark = [[MKPlacemark alloc] initWithPlacemark:pMark];
        // 开启地图应用的加载项
        NSDictionary *options = @{ MKLaunchOptionsMapTypeKey: @(MKMapTypeStandard),
                                   MKLaunchOptionsShowsTrafficKey: @(YES)
                                   };
        // 创建一个地图应用项
        MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:mkMark];
        // 开启一个地图应用
        [mapItem openInMapsWithLaunchOptions:options];
        ///添加地图应用项时打开它就会自动跳转到苹果地图,则可以应用苹果地图进行各种,比如路线,导航等等(由此特点考虑做旅游应用可以否?)
        
        
    }];
}

相关文章

  • iOS关于地理编码和反编码

    关于 地理编码是通过地名而获取经纬度;地理反编码是通过经纬度而获取地名; 代码部分: 通过懒加载创建编码对象: 实...

  • CLGeocoder

    CLGeocoder(地理编码) 使用CLGeocoder可以完成“地理编码”和“反地理编码”地理编码:根据给定的...

  • 地理编码

    地理编码和反地理编码都使用CLGeocoder类来实现. 地理编码使用 geocodeAddressString:...

  • 地图和定位(三)

    一、地理编码和反地理编码 地理编码:把地址转为经纬度反地理编码:把经纬度转为地址 二、获取当前城市名称(定位+反地...

  • iOS 地理编码 / 反地理编码

    一、CLGeocoder 地理编码 与 反地理编码 地理编码:根据给定的地名,获得具体的位置信息(比如经纬度、地址...

  • iOS 地理编码反编码

    本文目录 地理编码地名 -> 经纬度 等具体位置数据信息。根据给定的位置(通常是地名)确定地理坐标(经、纬度)。 ...

  • iOS - 定位、地理编码、反地理编码

    #pragma mark---*定位: 一、介绍 1、定位使用CoreLocation框架 2、功能:(1)基础定...

  • iOS开发之CoreLocaiton框架使用(地理编码,反地理编

    什么是地理编码和反地理编码? 地理编码 地理编码:根据给定的地名,获得具体的位置信息(比如经纬度、地址的全称等)。...

  • 基于CLGeocoder - 反地理编码

    iOS中CoreLocatio框架中的CLGeocoder 类不但为我们提供了地理编码方法,而且还提供了反地理编码...

  • 基于百度API的 - 反地理编码

    iOS中CoreLocatio框架中的CLGeocoder 类不但为我们提供了地理编码方法,而且还提供了反地理编码...

网友评论

      本文标题:iOS关于地理编码和反编码

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