最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】iOS中,从已有的坐标值,获得相应的地理位置描述信息/文本描述

iOS crifan 2348浏览 0评论

【问题】

iOS中,当前已经获得某个CLLocationCoordinate2D类型坐标值了,有经度和纬度值了,想要获得对应的地理位置的文字描述。

【解决过程】

1.从IOS LBS功能详解[1](获取当前地理位置文本)得知,原来是有对应的库函数供使用的。

2。即MKReverseGeocoder,找到官网解释:

MKReverseGeocoder Class Reference

得知iOS 5.0中已废弃,改用CLGeocoder

然后就是搞懂

reverseGeocodeLocation:completionHandler:的用法。

再去参考:

用CLGeocoder反向查询把经纬度转换成地名

去添加代码。

后来,由于硬件和软件的限制,出现问题但是没有彻底解决:

【未解决】VirtualBox中的Mac中的Xcode的iOS/iPhone 模拟器中,使用CLGeocoder的reverseGeocodeLocation但返回的placemarks却是nil,还出现错误kCLErrorDomain error 8

不过,倒也不影响继续折腾其他的。

毕竟原理搞懂了。

 

【总结】

想要从坐标获得可读的地理位置文本描述信息,示例代码为:

//(CLLocation *)newLocation
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error){
    CLPlacemark *placemark = [placemarks objectAtIndex:0];
    //self.locationInput.text =placemark.subLocality;
    self.locationInput.text =placemark.ISOcountryCode;
}];

转载请注明:在路上 » 【已解决】iOS中,从已有的坐标值,获得相应的地理位置描述信息/文本描述

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

    86 queries in 0.192 seconds, using 22.08MB memory