terreno sacar poner obtener movil mapas localizar kit google coordenadas con como iphone xcode ios5 mapkit

iphone - sacar - obtener coordenadas google maps



Quiero obtener el nombre de la ubicación del valor de coordenada en MapKit para iPhone (5)

Quiero obtener el nombre de la ubicación del valor de coordenadas. Aquí está el código,

- (void)viewWillAppear:(BOOL)animated { CLLocationCoordinate2D zoomLocation; zoomLocation.latitude = 39.281516; zoomLocation.longitude= -76.580806; MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 0.5*METERS_PER_MILE, 0.5*METERS_PER_MILE); MKCoordinateRegion adjustedRegion = [_mapView regionThatFits:viewRegion]; [_mapView setRegion:adjustedRegion animated:YES]; }

Entonces, desde esa latitud y longitud, quiero saber el nombre de esa ubicación.


El código de abajo funcionará en ios5 y superior

CLGeocoder *ceo = [[CLGeocoder alloc]init]; CLLocation *loc = [[CLLocation alloc]initWithLatitude:32.00 longitude:21.322]; //insert your coordinates [ceo reverseGeocodeLocation:loc completionHandler:^(NSArray *placemarks, NSError *error) { CLPlacemark *placemark = [placemarks objectAtIndex:0]; if (placemark) { NSLog(@"placemark %@",placemark); //String to hold address NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "]; NSLog(@"addressDictionary %@", placemark.addressDictionary); NSLog(@"placemark %@",placemark.region); NSLog(@"placemark %@",placemark.country); // Give Country Name NSLog(@"placemark %@",placemark.locality); // Extract the city name NSLog(@"location %@",placemark.name); NSLog(@"location %@",placemark.ocean); NSLog(@"location %@",placemark.postalCode); NSLog(@"location %@",placemark.subLocality); NSLog(@"location %@",placemark.location); //Print the location to console NSLog(@"I am currently at %@",locatedAt); } else { NSLog(@"Could not locate"); } } ];


En iOS 5.0 y versiones posteriores, puede usar CLGeocoder del marco de Core Location, ya que para iOS más bajo que 5.0, MKReverseGeocoder de Map Kit Framework. ¡Buena suerte!


Usa este metodo

CLGeocoder *geocoder = [[CLGeocoder alloc] init]; [geocoder reverseGeocodeLocation: zoomLocation completionHandler:^(NSArray* placemarks, NSError* error){ } ];


Aquí está el bloque para obtener la cadena de dirección de la ubicación actual

in .h file typedef void(^addressCompletionBlock)(NSString *); -(void)getAddressFromLocation:(CLLocation *)location complationBlock:(addressCompletionBlock)completionBlock; in .m file #pragma mark - Get Address -(void)getAddressFromLocation:(CLLocation *)location complationBlock:(addressCompletionBlock)completionBlock { //Example URL //NSString *urlString = @"http://maps.googleapis.com/maps/api/geocode/json?latlng=23.033915,72.524267&sensor=true_or_false"; NSString *urlString = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&sensor=true_or_false",location.coordinate.latitude, location.coordinate.longitude]; NSError* error; NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString] encoding:NSASCIIStringEncoding error:&error]; NSArray *jsonObject = [NSJSONSerialization JSONObjectWithData:[locationString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL]; NSString *strFormatedAddress = [[[jsonObject valueForKey:@"results"] objectAtIndex:0] valueForKey:@"formatted_address"]; completionBlock(strFormatedAddress); }

y para llamar a la función

CLLocation* currentLocation = [[CLLocation alloc] initWithLatitude:[SharedObj.current_Lat floatValue] longitude:[SharedObj.current_Long floatValue]]; [self getAddressFromLocation:currentLocation complationBlock:^(NSString * address) { if(address) { NSLog(@"Address:: %@",address); } }];


-(NSString *)getAddressFromLatLon:(double)pdblLatitude withLongitude:(double)pdblLongitude { NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%f,%f&output=csv",pdblLatitude, pdblLongitude]; NSError* error; NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString] encoding:NSASCIIStringEncoding error:&error]; // NSLog(@"%@",locationString); locationString = [locationString stringByReplacingOccurrencesOfString:@"/"" withString:@""]; return [locationString substringFromIndex:6]; }