您的位置:首页 > 编程语言

通过 GPS 信息获取当前所在城市名的代码

2011-05-11 17:37 597 查看
利用 iPhone、iPad 自带的 GPS 信息可以获得当前位置坐标,但直接高速用户坐标是不行的。CocoaChina 会员"laigb"分享了通过 GPS 信息获取当前所在城市名的代码,希望对苹果开发者有所帮助。
#import "testLocationViewController.h"@implementation testLocationViewController @synthesize locationManger = _locationManger; - (void)dealloc{ [super dealloc]; [_locationManger release];} - (void)didReceiveMemoryWarning{ // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use.}#pragma mark - View lifecycle- (void)viewDidLoad{ [super viewDidLoad]; cityLabel = [[[UILabel alloc] initWithFrame: CGRectMake(20, 30, 100, 100)] autorelease]; [self.view addSubview: cityLabel]; /* self.locationManger = [[CLLocationManager alloc] init]; _locationManger.delegate = self; _locationManger.desiredAccuracy = kCLLocationAccuracyBest; [_locationManger startUpdatingLocation]; */ _locationManger = [[CLLocationManager alloc] init]; _locationManger.delegate = self; _locationManger.distanceFilter = 1; _locationManger.desiredAccuracy = kCLLocationAccuracyBest; [_locationManger startUpdatingLocation];} - (void)viewDidUnload{ [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil;} - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ // Return YES for supported orientations return YES;} - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{ }- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(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); [self startedReverseGeoderWithLatitude: l longitude: v];} - (void)startedReverseGeoderWithLatitude:(double)latitude longitude:(double)longitude{ CLLocationCoordinate2D coordinate2D; coordinate2D.longitude = longitude; coordinate2D.latitude = latitude; MKReverseGeocoder *geoCoder = [[MKReverseGeocoder alloc] initWithCoordinate:coordinate2D]; geoCoder.delegate = self; [geoCoder start];}#pragma mark -- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark{ NSString *subthroung=placemark.subThoroughfare; NSString *local=placemark.locality; NSLog(@"城市名:%@-%@-%@",placemark.locality,local,subthroung); if (local) { [cityLabel setText:local]; }}- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error{} @end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: