开发者社区> 问答> 正文

请问 怎么 利用天气预报接口根据城市名得到城市代码?

比如北京:怎么根据北京这个城市名得到北京的城市代码:101010100?

展开
收起
爵霸 2016-03-05 11:17:05 2781 0
1 条回答
写回答
取消 提交回答
  • 先把代码表存储到一个plist文件中

    然后:

    `NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"cityList" ofType:@"plist"];
    _areaidDictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];`
    areaidDictionary是区域id的字典

    之后用

    - (void)transToareaidfromLocation:(CLLocation *)location {
        self.areaid = nil;
        self.geocoder = [[CLGeocoder alloc] init];
        [self.geocoder reverseGeocodeLocation:location
        completionHandler:^(NSArray *placemarks, NSError *error) {
            if (error == nil && [placemarks count] > 0) {
                CLPlacemark *placemark = [placemarks objectAtIndex:0];
                self.city = placemark.locality;
                self.areaid = self.areaidDictionary[self.city];
                NSLog(@"city:%@",self.city);
                NSLog(@"areaid:%@",self.areaid);
            } else if (error == nil && [placemarks count] == 0) {
                NSLog(@"No location results were returned");
            } else if (error != nil) {
                NSLog(@"An error occurred:%@",error.description);
            }
        }];
    }

    在反地理编码的同时,利用字典找到areaid。
    areaid就是你要的城市代码。

    2019-07-17 18:53:05
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
城市的数字使命 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载