要獲取當前位置的信息,除了用CLLocation庫之外,還可以用Mapkit,而我個人認為Mapkit在你需要得到更准確的位置信息時更有用,也十分方便.用法如下:
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoderdidFailWithError:(NSError *)error
{
NSLog(@"MKReverseGeocoder has failed.");
}
這個函數就不解釋了,看名字你懂的~
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoderdidFindPlacemark:(MKPlacemark *)placemark
{
currentCityLabel.text = placemark.locality;
}
//用CLLoction獲取到當前的經緯度
- (void)locationManager:(CLLocationManager *)managerdidUpdateToLocation:(CLLocation *)newLocationfromLocation:(CLLocation *)oldLocation
{
CLLocationDistance l = newLocation.coordinate.latitude;//得到經度
CLLocationDistance v =newLocation.coordinate.longitude;//得到緯度
NSLog(@"%f%f", l,v);
CLLocation*new = [[CLLocation alloc] initWithLatitude: 11.0 longitude:12.0];
CLLocationDistance u = [newLocation distanceFromLocation:new];
NSLog(@"%f",u);
[selfstartedReverseGeoderWithLatitude: l longitude: v];
}
- (void)startedReverseGeoderWithLatitude:(double)latitudelongitude:(double)longitude{
CLLocationCoordinate2D coordinate2D;
coordinate2D.longitude = longitude;
coordinate2D.latitude = latitude;
MKReverseGeocoder *geoCoder = [[MKReverseGeocoder alloc]initWithCoordinate:coordinate2D];
geoCoder.delegate = self;
[geoCoderstart];
}
#pragma mark -
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoderdidFindPlacemark:(MKPlacemark *)placemark
{
NSLog(@"當前城市:%@",placemark.locality);
}
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoderdidFailWithError:(NSError *)error
{
}
初始化geocoder 用當前的經緯信息來初始化geocoder
在geocoder中會有很多參數,比如城市名,街道,等等很多信息.