虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > IOS编程/Objective-C > iOS 原生地图地理编码与反地理编码(详解)

iOS 原生地图地理编码与反地理编码(详解)
类别:IOS编程/Objective-C   作者:码皇   来源:互联网   点击:

下面小编就为大家带来一篇iOS 原生地图地理编码与反地理编码(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

当我们要在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 原生地图地理编码与反地理编码(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关热词搜索: 地图地理编码与反地理编码