LocatinManager的iOS CLRegion功能的最小半径

LocatinManager的iOS CLRegion功能的最小半径,ios,objective-c,locationmanager,clregion,Ios,Objective C,Locationmanager,Clregion,我目前正在使用location manager的区域功能。 不幸的是,我无法获得任何小于100米的过境点的通知。 我创建了半径为20米/50米或70米的区域,并且我总是只在跨越100米边界时收到通知。 但我希望有一个更精细的半径-例如20米,并收到通知。如果我有一个大于100米的射程,一切都很好。 150米。在这种情况下,如我所料,我一进入150m就会收到通知 我试着在LocationManager上使用“kCLLocationAccuracy”设置和创建CLregion,但两者都没有 似乎有任

我目前正在使用location manager的区域功能。 不幸的是,我无法获得任何小于100米的过境点的通知。 我创建了半径为20米/50米或70米的区域,并且我总是只在跨越100米边界时收到通知。 但我希望有一个更精细的半径-例如20米,并收到通知。如果我有一个大于100米的射程,一切都很好。 150米。在这种情况下,如我所料,我一进入150m就会收到通知

我试着在LocationManager上使用“kCLLocationAccuracy”设置和创建CLregion,但两者都没有 似乎有任何影响

这是我使用的代码:

- (void) initializeLocationManager
{
    // Check to ensure location services are enabled
    if(![CLLocationManager locationServicesEnabled]) {
        [self showAlertWithMessage:@"You need to enable location services to use this app."];
        return;
    }

    if(![CLLocationManager regionMonitoringAvailable]) {
        [self showAlertWithMessage:@"This app requires region monitoring features which are unavailable on this device."];
        return;
    }

    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.delegate = self;
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    self.locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
}

- (void) setupGeoFence:(Station*)station
{ 
    CLLocationCoordinate2D centerCoordinate = CLLocationCoordinate2DMake([station.gpsPosition.latitude doubleValue], [station.gpsPosition.longitude doubleValue]);
    CLRegion *geofence = [[CLRegion alloc] initCircularRegionWithCenter:centerCoordinate radius:[range doubleValue] identifier:station.name];  
    [self.locationManager startMonitoringForRegion:geofence desiredAccuracy:kCLLocationAccuracyBest];
}
有人知道如何在更近的边界上接收通知吗?任何帮助都将受到高度赞赏

谢谢
哈姆托

那么大的区域实际上是不可能的。定位事件主要由设备周围的Wifi触发。除非绝对必要,否则GPS不会真正被使用。所以50米以下的区域真的是一个垃圾场。我已经和CoreLocation工程师谈过这一点(以及其他一些围绕区域监控的奇怪行为),并且由于对Wifi的依赖,不建议使用太小的尺寸。他们实际上建议使用1.5亿美元,尽管没有记录在案


如果您确实需要细粒度的位置更新,您可能需要实施自己的检查或启动GPS以获得非常准确的读数。这伴随着电池的耗电,所以你的里程数可能会有所不同。祝你好运。

150m的建议是否适用于iOS 5-7?是的。我通常会推荐100米的最佳效果,但100-150之间的任何东西都可以。谢谢,我会做一些测试。我知道这个问题已经很久了,但在地理围栏中,我选择了100米半径,并且会发出“退出时”通知。但我在250米左右收到通知。请帮帮我。