通过 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
#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
相关文章推荐
- 通过 GPS 信息获取当前所在城市名的代码
- 通过 GPS 信息获取当前所在城市名的代码
- 通过 GPS 信息获取当前所在城市名的代码
- 通过 GPS 信息获取当前所在城市名的代码
- 通过 GPS 信息获取当前所在城市名的代码
- 通过 GPS 信息获取当前所在城市名的代码
- 通过 GPS 信息获取当前所在城市名的代码 转自:hager的博客
- 如何通过GPS获取我当前所在的城市或街道
- 如何通过GPS获取我当前所在的城市或街道
- 微信小程序城市定位的实现实例(获取当前所在国家城市信息)
- 各类Java heap space 解决方法,并通过java代码获取JVM的相关信息,所在操作系统的信息(包含eclipse&myeclipse的调试的内存设置)
- 通过javascript 获取当前地理位置 所在城市
- 通过jquery 获取用户当前所在的城市名称和IP地址
- 获取当前所在的城市信息
- 调用新浪IP地址库获取当前所在城市信息
- php 通过ip获取所在城市地址信息 获取计算机外网ip
- 想在自己的android应用中获得当天的天气情况,这该怎么做呢?不用担心。中国国家气象局提供了获取所在城市天气预报信息接口。通过这个接口,我们就可以获取天气信息了。
- 微信小程序实现城市定位:获取当前所在的国家城市信息
- WindowsPhone8 自动获取 ip 以及 当前所在城市信息
- JS 利用新浪接口通过IP地址获取当前所在城市