地理围栏标识符

时间:2013-08-08 04:48:41

标签: iphone ios6 geofencing

如何将整个国家/地区指定为区域标识符中的区域。否则它将接受

identifier as :@"Uk"

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

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

1 个答案:

答案 0 :(得分: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相同的电池寿命。