【发布时间】:2014-02-06 22:49:33
【问题描述】:
我正在寻找一个“如果”语句,我正在使用用户的地理位置来创建一个结果。我不知道该怎么做。
例如:
If (USERLOCATION = CANADA) {
//then do something here
}
Else {
//do something else
}
【问题讨论】:
标签: ios objective-c geolocation location mapkit
我正在寻找一个“如果”语句,我正在使用用户的地理位置来创建一个结果。我不知道该怎么做。
例如:
If (USERLOCATION = CANADA) {
//then do something here
}
Else {
//do something else
}
【问题讨论】:
标签: ios objective-c geolocation location mapkit
如果您有用户位置,则可以使用此代码并将国家名称与您的国家/地区名称相匹配。虽然可能存在本地化限制。
- (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 匹配您要查找的国家/地区。
【讨论】:
[self.tableView reloadData] 重新加载表格视图。一些建议,我认为最好的解决方案是在开始时使用正确的部分顺序初始化您的数据源,而不是试图在 tableview 委托方法中找出它。既然我已经回答了上面的问题,你能接受我的回答吗? :)
您需要找到一个第三方 API 来回答某个纬度/经度是否在加拿大,或者您需要定义一个表示“加拿大”的边界框并测试您的位置是否在加拿大境内它。
通过坐标定义“加拿大”可能有点棘手,因为它不是一个正方形,尽管有一些重要的部分是很好的直线。 This answer 可以通过提供边界坐标列表来帮助您定义框。
【讨论】: