2017-09-05 37 views
0

iOS Geofencing不會在目標c中調用didEnterRegiondidExitRegiondidStartMonitoringForRegioniOS Geofencing不會調用'didEnterRegion',didExitRegion,'didStartMonitoringForRegion'

我想實現一個單一的視圖應用程序,我在谷歌地圖SDK中使用可可豆莢。

我已經包含在info.plist中相應的鍵這樣

<key>NSLocationAlwaysUsageDescription</key> 
<string>Location is required for geofence</string> 
<key>NSLocationWhenInUseUsageDescription</key> 
<string>Location is required for geofence</string> 

這裏是我的代碼:

- (void)viewDidLoad { 
[super viewDidLoad]; 
double Lat=22.569643; 
double Lon=88.432058; 
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:Lat longitude:Lon zoom:14]; 
_mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; 
self.view=_mapView; 
_mapView.myLocationEnabled = YES; 
circ = [GMSCircle circleWithPosition:CLLocationCoordinate2DMake(Lat, Lon) radius:52]; 
circ.fillColor = [UIColor colorWithRed:0.25 green:0 blue:0 alpha:0.05]; 
circ.strokeColor = [UIColor redColor]; 
circ.strokeWidth = 1; 
circ.map = _mapView; 
CLCircularRegion *cir=[[CLCircularRegion alloc]initWithCenter:CLLocationCoordinate2DMake(Lat, Lon) radius:52 identifier:@"hi"]; 
locationManager = [CLLocationManager new]; 
[locationManager requestAlwaysAuthorization]; 
locationManager.delegate = self; 
locationManager.distanceFilter = 10.0; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
[locationManager startMonitoringForRegion:cir]; 
cir.notifyOnEntry = YES; 
cir.notifyOnExit = YES; 
[locationManager startUpdatingLocation]; 
} 
+0

你在模擬器上運行你的代碼嗎? –

+0

沒有..它在iPhone上運行 – Pritam

回答

0

蘋果公司表示,(在Location & Maps PG),對區域的最小距離應假定200米。

具體的閾值距離由當前可用的硬件和位置技術確定。例如,如果Wi-Fi已禁用,則區域監控的精確度會大大降低。但是,出於測試目的,您可以假定最小距離大約爲200米。

我也遇到了與地理圍欄相似的問題。當你將半徑增加到100米時,它可以很好地工作。如果你想監測一個半徑較小的區域,你應該聽取位置更新並檢查該位置是否存在於該點周圍的區域。

相關問題