如何使用iOS地理定位框架获取用户位置

时间:2014-02-06 22:49:34

标签: ios objective-c geolocation location mapkit

我希望制作一个“If”语句,我正在使用用户的地理位置来创建结果。我不知道该怎么做。

例如:

If (USERLOCATION = CANADA) {

//then do something here

}

Else {
//do something else
}

2 个答案:

答案 0 :(得分:3)

如果您有用户位置,则可以使用此代码并将国家/地区名称与您的国家/地区名称相匹配。虽然可能存在本地化限制。

- (void)reverseGeocode:(CLLocation *)location {
    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {

        if (!error) {
            CLPlacemark *placemark = [placemarks lastObject];
            NSLog(@"Country: %@", placemark.country);

        } else
            NSLog(@"Error %@", error.description);
    }];
}


然后使用[placemark.country caseInsensitiveCompare:@"canada"] == NSOrderedSame与您要查找的国家/地区匹配。

答案 1 :(得分:0)

您需要找到一个第三方API,可以给出关于纬度/经度是否在加拿大的答案,或者您需要定义一个意味着“加拿大”的边界框并测试您的位置是否在内它

通过坐标定义“加拿大”可能有点棘手,因为它不是正方形,尽管有很重要的部分是很好的直线。 This answer可以通过提供边界坐标列表来帮助您定义框。