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

Posted

技术标签:

【中文标题】如何在 iPhone App 中获取一个国家的所有城市【英文标题】:How to get all the cities for a country in iPhone App 【发布时间】:2012-05-22 14:20:23 【问题描述】:

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

【问题讨论】:

【参考方案1】:

google Geocoder API 返回 JSON ,它只是一种使用 GET 方法的网络服务

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

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

在该链接的末尾我附加了地址,如果您附加地址 - 您需要提供区域名称(或)如果您附加纬度和经度,您需要提供坐标,它将相应地返回结果。

而调用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 响应中以短名称、长名称等形式获取所有名称

【讨论】:

以上是关于如何在 iPhone App 中获取一个国家的所有城市的主要内容,如果未能解决你的问题,请参考以下文章

whatsapp如何在第一次在iphone上运行时知道国家代码

从 iPhone 获取时区/国家

如何从我的 iPhone App 文档目录中选择所有图像

iphone app - 如何只获取一次当前位置并将其存储以用于另一个功能?

如何获取 iPhone 应用程序的崩溃报告

iPhone CoreData:使用变音符号排序