如何在ios中获取州,国家/地区列表

时间:2013-02-15 10:46:35

标签: iphone ios geolocation

我正在我的应用程序中使用Expedia创建酒店预订应用程序我有搜索选项来搜索州,国家列表,(泰米尔纳德邦,印度)。有没有办法在我的IOS应用程序中获取城市和州的全部数据![我有如下图像的搜索选项]

enter image description here

3 个答案:

答案 0 :(得分:1)

您可能需要调用多个API才能实现此目的。您可以使用以下API。

  1. http://api.drupal.org/api/drupal/includes%21locale.inc/function/country_get_list/7
  2. http://api.shopify.com/country.html
  3. http://www.geonames.org/export/web-services.html
  4. 您可以使用此API并填写UITableView。然后,您可以使用本地搜索在UISearchBar中进行搜索。

    注意:如果您使用这些API,请记住您的应用程序功能依赖于这些API。如果他们不工作你的申请不会工作。如果他们的服务中断,您的申请将会停止。

答案 1 :(得分:0)

最后,我找到了解决方案。 1)我使用了以下网址,并以json的形式获取特定文本的所有城市名称。 http://ws.geonames.org/searchJSON?name_startsWith=madurai

2)然后在json解析器的帮助下解析数据。我在下面包含了我的代码

       NSURLRequest *req = [NSURLRequest requestWithURL:locatioURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
        NSURLResponse *response;
        NSError *errorReq = nil;
        NSData *data = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&errorReq];
//        NSString *udata = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//        NSString * newstr = [NSString stringWithFormat:@"%@",data];

        NSString *udata = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSData *temp = [udata dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
        NSString *dst = [[[NSString alloc] initWithData:temp encoding:NSASCIIStringEncoding] autorelease];

        NSDictionary * locationDictionary = [[NSDictionary alloc]initWithDictionary:[dst JSONValue]];



        NSMutableArray *  locallocationArray= [[NSMutableArray alloc] initWithArray:[locationDictionary objectForKey:@"geonames"]];

        NSLog(@"%@",locallocationArray);

        for (int i = 0; i<[locallocationArray count]; i++)
        {
            NSString * locationStr = [NSString stringWithFormat:@"%@,%@,%@",[[locallocationArray objectAtIndex:i]objectForKey:@"name"],[[locallocationArray objectAtIndex:i]objectForKey:@"adminName1"],[[locallocationArray objectAtIndex:i]objectForKey:@"countryName"]];
[oneTimeLocationArray addObject:locationStr];
}
}

然后在TableView中加载数组。

3)如果您需要在Phonegap应用程序中实现此功能,请参阅以下链接http://jqueryui.com/autocomplete/#remote-jsonp

由于

答案 2 :(得分:0)

你可以使用的一件事是json。该脚本提供了具有不同状态的城市的综合json数据作为键。

代表:{[Uttar Pradesh: Lucknow, Kanpur, Agra ...],[Karnataka: Surathkal, Bangalore ]...}

以下是github链接: https://github.com/shauryashahi/Indian-State-City-db-json