1 Android:
利用google map api
Returns the country code of the address, for example "US", or null if it is unknown.
Returns the localized country name of the address, for example "Iceland", or null if it is unknown.
http://developer.android.com/reference/android/location/Address.html
2 iphone
以下内容转自:http://blog.csdn.net/diyagoanyhacker/article/details/6412557
利用 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