我目前正在尝试让我的应用程序使用来监视特定区域,CoreLocation
但是我发现它似乎无法按预期工作,在我看来,它无法为每个位置设置一个小半径,即 10m。
我还整理了一个小测试应用程序,它在地图上绘制圆半径,这样我就可以直观地看到正在发生的事情。
我用于监控位置的代码如下:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
// Set-up a region
CLLocationDegrees latitude = 52.64915;
CLLocationDegrees longitude = -1.1506367;
CLLocationCoordinate2D centerCoordinate = CLLocationCoordinate2DMake(latitude, longitude);
CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:centerCoordinate
radius:10 // Metres
identifier:@"testLocation"];
[self.locationManager startMonitoringForRegion:region];
我没有在此处放置DidEnter
区域等的代码,因为我知道当我离开受监控区域超过 100m 时它会起作用。
这是应用程序的屏幕截图,当我距离地图上的紫色位置超过 10 米时,退出区域事件不会触发,但是如果我将位置切换到伦敦,它会触发,并且当我设置我的位置时也会触发回到蓝色位置当前的位置,它也会开火。
有谁知道最小区域半径是否存在限制,或者我做错了什么。
谢谢亚伦