美文网首页
Swift地理编码和反地理编码

Swift地理编码和反地理编码

作者: 越天高 | 来源:发表于2020-05-03 09:49 被阅读0次
  • 地理编码: 是指根据地址关键字, 将其转换成为对应的经纬度等信息;
  • 反地理编码: 是指根据经纬度信息, 将其转换成为对应的省市区街道等信息;

使用

    1. 导入CoreLocation框架以及对应的主头文件
    1. 创建CLGeocoder对象
    1. 根据地址关键字, 进行地理编码
    1. CLPlacemark 地标对象详解
location : CLLocation 类型, 位置对象信息, 里面包含经纬度, 海拔等等
region: CLRegion 类型, 地标对象对应的区域
addressDictionary  : NSDictionary 类型, 存放街道,省市等信息
name: NSString 类型, 地址全称
thoroughfare: NSString 类型, 街道名称
locality: NSString 类型, 城市名称
administrativeArea : NSString 类型, 省名称
country: NSString 类型, 国家名称

  • 地理编码
geocode.geocodeAddressString("南京")
         { (marks:[CLPlacemark]?, error) in
           if error == nil
           {
               print("地理编码成功")
               guard let allMark = marks else {return}
               let mark = allMark.first
               self.latitudeTF.text = "\(mark!.location!.coordinate.latitude)"
               self.longitudeTF.text = "\(mark!.location!.coordinate.longitude)"
               self.addressTextView.text = mark?.name
               
           }
            
        }
  • 反地理编码
 @IBAction func reverseGeoCodeBtnClick(_ sender: Any)
    {
        let latitudeText = CLLocationDegrees(self.latitudeTF.text!) ?? 0
        let longitudeText = CLLocationDegrees(self.longitudeTF.text!) ?? 0
        
        
        
        geocode.reverseGeocodeLocation(CLLocation(latitude: latitudeText, longitude: longitudeText))
              
       { (marks : [CLPlacemark]?, error) in
          if error == nil
          {
              print("反地理编码成功")
            guard let allMark = marks else {return}
            
            for place in allMark
            {
                print(place.name)
            }
            let firstPlace = allMark.first            
            self.addressTextView.text = firstPlace?.name
          }else
          {
            print("反f地理编码错误")
          }
        }
    }
  • 定位所在的城市
  1. 定位
  2. 定位后, 根据位置信息, 进行反地理编码
    代码
 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
    {
        print("开始定位")
        guard let newLocation = locations.last else
        {
            return
        }
        
        if newLocation.horizontalAccuracy < 0 {
            return
        }
        
        geocode.reverseGeocodeLocation(CLLocation(latitude: newLocation.coordinate.latitude, longitude: newLocation.coordinate.longitude))
               
        { (marks : [CLPlacemark]?, error) in
           if error == nil
           {
               print("反地理编码成功")
             guard let allMark = marks else {return}
             
             for place in allMark
             {
                 print(place.name)
             }
             let firstPlace = allMark.first
             
             self.addressTextView.text = firstPlace?.locality
             
           }else
           {
             print("反f地理编码错误")
         }
         
         }
        

相关文章

  • CLGeocoder

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

  • Swift地理编码和反地理编码

    地理编码: 是指根据地址关键字, 将其转换成为对应的经纬度等信息; 反地理编码: 是指根据经纬度信息, 将其...

  • 地理编码

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

  • 地图和定位(三)

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

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

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

  • 地理编码与反地理编码

    使用CLGeocoder可以完成“地理编码”和“反地理编码” 地理编码:根据给定的地名,获得具体的位置信息(比如经...

  • 高德地图问题

    1:定位的时候获取用户的省市区位置,通过反地理编码 地理编码与反地理编码 地理编码:根据地址获得相应的经纬度以及详...

  • 地图-->地名VS地理坐标(根据"北京"

    地理编码 除了提供位置跟踪功能之外,在定位服务中还包含CLGeocoder类用于处理地理编码和逆地理编码(又叫反地...

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

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

  • iOS地理编码的简单实现

    今天来写写地理编码 ,废话不多说,直接进入正题 地理编码有两种方式 反地理编码:把经纬度转换成地名 正地理编码:把...

网友评论

      本文标题:Swift地理编码和反地理编码

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