0

如何在区域标识符中将整个国家指定为区域。它是否会接受

identifier as :@"Uk"

这里是 reo 标识符的代码。我如何指定英格兰或英国。请帮我整理一下

CLLocationCoordinate2D location2D = mapView.region.center; 
CLRegion *regionForMonitoring = [[CLRegion alloc] initCircularRegionWithCenter:location2D radius:1 identifier:@"RegionIdentifier"];
[[Utils getLocationManager] startMonitoringForRegion:regionForMonitoring];
4

1 回答 1

0

CLRegions 完全不适合这个目的。

首先,指定的半径是该区域覆盖的距离(以米为单位) - 所以在您的情况下,您要求系统监控半径为 1 米的特定纬度/经度的区域!

此外,系统区域具有可监控的最大区域数(大约 10 个左右),并且可以使用的最大半径约为 400 米,之后该区域将无法工作。

您确实需要阅读此 Apple 文档的“监控基于形状的区域”部分:

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html

您尝试执行的操作还有另外两种可能的方法:

1) 使用重要位置更新,并测试每次更新是否在您指定形状的区域中。

2) 使用 CoreTelephony 查找您的设备所在的手机运营商,并查看运营商号码是否与感兴趣的国家/地区的运营商号码匹配。当然,这不适用于某些没有手机连接的 iPad 或其他 iOS 设备。

这些方法都不会精确到边缘,但也不会消耗几乎与使用 GPS 一样多的电池寿命。

于 2013-08-08T05:44:33.697 回答