over 6 years ago

在iOS中,可以方便的用LocationManager来获取当前的位置信息,但是获取到的只是所在位置的坐标信息,想要把坐标信息转换成城市,地区等信息,还得使用CLGeocoder.

CLGeocoder的初始化就是直接alloc, init

[self.geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error){CLPlacemark *placemark = [placemarks objectAtIndex:0];
//isoCountry.text = placemark.ISOcountryCode;
//country.text = plackmark.countr;
//adminArea.text = placemark.adminstrativeArea;
//locality.text = placemark.subLocality;
self.messageContent.text = placemark.subLocality;}];


在解析完成之后,completionHandler中的代码会被执行(一个block), 其中的placemarks是返回的数组,它包含了解析所得到的结果。通常这个数组只会含有一个元素。 这个CLPlacemark对象包含的信息包括国家,城市,地区等信息。

 

对于中国用户来说,用locality可以返回中文的城市名,subLocality可以返回所在的区。

← 偷得浮生半日闲 shortcuts让twitter.com变成客户端 →