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

 更新时间:2017年04月23日 09:22:02   投稿:jingxian  
下面小编就为大家带来一篇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 原生地图地理编码与反地理编码(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • IOS应用内跳转系统设置相关界面的方法

    IOS应用内跳转系统设置相关界面的方法

    在iOS开发中,有时会有跳转系统设置界面的需求,例如提示用户打开蓝牙或者WIFI,提醒用户打开推送或者位置权限等,接下来通过本文给大家介绍IOS应用内跳转系统设置相关界面的方法,喜欢的朋友参考下
    2016-02-02
  • 详解iOS-按钮单选与多选逻辑处理

    详解iOS-按钮单选与多选逻辑处理

    本篇文章主要介绍了详解iOS-按钮单选与多选逻辑处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 零基础学习iOS直播之采集

    零基础学习iOS直播之采集

    直播的采集由采集的设备(摄像头、话筒)不同分为视频采集和音频采集,本篇文章会分别介绍,需要的朋友一起来看下吧
    2016-12-12
  • IOS中UIImageView方法实现简单动画

    IOS中UIImageView方法实现简单动画

    这篇文章主要介绍了IOS中UIImageView方法实现简单动画的相关资料,需要的朋友可以参考下
    2017-05-05
  • iOS开发微信支付的方法

    iOS开发微信支付的方法

    这篇文章主要为大家详细介绍了iOS开发微信支付的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • iOS中长按调出菜单组件UIMenuController的使用实例

    iOS中长按调出菜单组件UIMenuController的使用实例

    UIMenuController即是用来制作我们平时对文本长按屏幕后显示出的复制粘贴等选项菜单,下面就来详细整理一下iOS中长按调出菜单组件UIMenuController的使用实例:
    2016-06-06
  • iOS的CoreAnimation开发框架中的Layer层动画制作解析

    iOS的CoreAnimation开发框架中的Layer层动画制作解析

    在iOS中UIView层的属性会映射到CoreAnimation框架的CALayer,这里我们来看一下iOS的CoreAnimation开发框架中的Layer层动画制作解析,需要的朋友可以参考下
    2016-07-07
  • iOS CoreTelephony 实现监听通话状态

    iOS CoreTelephony 实现监听通话状态

    这篇文章主要介绍了iOS CoreTelephony 实现监听通话状态 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • iOS实现简易的抽屉效果

    iOS实现简易的抽屉效果

    这篇文章主要为大家详细介绍了iOS实现简易的抽屉效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • iOS11上Xcode9 AppIcon 图标不显示

    iOS11上Xcode9 AppIcon 图标不显示

    升级到iOS11系统下自己的项目桌面app图标不见了,是什么原因呢,经过一番查找,终于发现问题所在,现在分享给大家
    2017-11-11

最新评论