Encontrar todos os locais em uma região através de métodos de CLGeocoder
-
12-12-2019 - |
Pergunta
É conveniente usar "– reverseGeocodeLocation:completionHandler:" o método de Reverse Geocoding um Local.Mas como obter todos os locais em uma região.
ps.Se há vários lugares em uma região.Como eu poderia usar as informações de região para descobrir todos os lugares?Como o reverse geocoding um local, dada uma coordenada, de retorno de um local.Aqui eu quero dar uma região, de retorno de todos os locais na região.
Solução
Há um google Geocoder API que retorna JSON , é apenas uma espécie de um serviço da web que usa o método GET
E Este é o Google Gecoder API e Este é o link para o web service e neste link que eu dei o nome da região, como londres.
Nota:Você precisa incluir SBJson biblioteca para o seu código.
No final do link eu ter acrescentado endereço, se você acrescentar o endereço que você precisa para dar o nome da região (ou) se você acrescentar a latitude e a longitude, o que você precisa para dar as coordenadas e ele irá retornar os resultados de acordo.
E o código para chamar a api do google vai ser assim
//Call the Google API
NSString *req = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];
NSLog(@"The get address is %@", req);
//Pass the string to the NSURL
NSString *result = [NSString stringWithContentsOfURL:[NSURL URLWithString:req] encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"The result is %@", result);
//Initialize the SBJSON Class
SBJSON *parser = [[SBJSON alloc] init];
NSError *error = nil;
//Get the resullts and stored in the address array
addressArray = [parser objectWithString:result error:&error];
//Get the latitude values for the given address
NSDictionary *dict = [[[addressArray valueForKey:@"results"] valueForKey:@"geometry"] valueForKey:@"location"];
self.latitudeValue = [[dict valueForKey:@"lat"] objectAtIndex:0];
self.longitudeValue = [[dict valueForKey:@"lng"] objectAtIndex:0];
NSLog(@"LAT : %@",self.latitudeValue);
NSLog(@"LONG : %@",self.longitudeValue);