如何在iPhone App中获取一个国家的所有城市

时间:2012-05-22 14:20:24

标签: iphone geolocation

在我的iPhone应用中,我正在使用Google API。我要做的一件事是我有一个国家下拉,当我选择任何一个国家时,我需要获取该国家的所有城市。是否可以使用Google API或我必须使用任何其他API。请指教! 谢谢 -

1 个答案:

答案 0 :(得分:2)

Google Geocoder API返回JSON,它只是一种使用GET方法的Web服务

This是Google Gecoder API,This是该网络服务的链接,在此链接中我将区域名称命名为london。你可以给你国名

注意:您需要在代码中包含SBJson库。

在该链接的末尾,我有附加地址,如果你附加地址 - 你需要给出区域名称(或)如果你追加纬度和经度,你需要给出坐标,它将相应地返回结果。 / p>

调用google api的代码就像这样

 //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);

我刚刚给出了一个想法,你可以在JSON Response中获得短名称,长名等形式的所有名称