2011-01-30 9 views
6

kimse bu kullanmanın herhangi bir bilgiye biliyor mu:Çekirdek Yer bölge izleme

- (void) startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(CLLocationAccuracy)accuracy

Projemde içine uygulamak çalışıyorum ama: asla

- (void) locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region

çağrıldığını?

Herhangi bir örnek kod veya bunun neden olduğunu biliyor mu?

Kodum aşağıdaki gibidir.

2011-01-30 19: Ben NSLog en alabildiğimin

CLLocationCoordinate2D coordinates = CLLocationCoordinate2DMake(51.116261, -0.853758);  
CLRegion *grRegion = [[CLRegion alloc] initCircularRegionWithCenter:coordinates radius:150 identifier:[NSString stringWithFormat:@"grRegion%i", value]]; 

[locationManager locationManagerStartMonitoringRegion:grRegion withAccuracy:kCLLocationAccuracyBest]; 

:

- (void) locationManagerStartMonitoringRegion:(CLRegion *)region withAccuracy:(CLLocationAccuracy)accuracy { 
    NSLog(@"Start Monitoring"); 
    [locationManager startMonitoringForRegion:region desiredAccuracy:accuracy]; 
    NSLog(@"Monitored Regions: %i", [[locationManager monitoredRegions] count]); 
} 

Sonra bu gibi diyoruz: Kendi LocationManager sınıfında böyle bir yöntemi yarattı : 52: 26.409 TestingLocation [10858: 307] İzlemeye Devam Et

2011-01-30 19: 52: 27.103 TestingLocation [10858: 307] İzlenen Bölgeler:

Ama bir NSLog asla:

- (void) locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region  { 
    NSLog(@"Entered Region"); 
} 

veya

- (void) locationManager:(CLLocationManager *)manager monitoringDidFailForRegion:(CLRegion *)region withError:(NSError *)error { 
    NSLog(@"monitoringDidFailForRegion: %@",error); 
} 

teşekkür

İşe ziyade bölge izleme şeyler için uzun bir yol taşımanız gerekir
+0

Kullandığınız kodu kaydeder misiniz? Bağlam olmadan yardım etmek zor. Yukarıdaki orijinal yayına – Jumhyn

+0

kodu eklendi. – jodm

+0

Jodm hala bu sorunla karşı karşıya. Bunun için bir çözüm buldunuz. didEnterRegion'u tetikleyebiliyor musunuz. Çalışma örneğiyle ilgili yardım –

cevap

5

. Mevcut granülerliği, bir hücre kulesinden diğerine teslim edildiğinde dayanıyor gibi görünüyor - testlerimde, belirlediğim küçük bir bölgeyi kesin olarak terk ettiğimi kaydetmek için bir mili veya daha fazlasını taşımak zorunda kaldım.

+1

Bu sabah ofis yolunda yaklaşık 5 puan kaydettim ve 3 tanesi tetikledi. Bu meydan okurcasına böyle. didEnterRegion sadece hücre kulesi değiştirirken çağrılır VEYA önemli bir yer değişikliği var. Bu, bölge izleme kullanmak istediğim bağlamda yardımcı olmuyor :( – jodm

+0

@jodm, bunun bir yıldan uzun bir süre önce olduğunu biliyorum ama işler daha iyi hale geldi mi? çok geç tetikler. Daha iyi bir yolu olmalı .. –

+0

Bölgesel izlemeye, bazı kapasiteye önemli bir konum kullandığını onaylayabilirim, çerçeveyi ikili olarak parçalara ayırdım ve önemli yerlere yapılan çağrılarla ilgili şeyler buldum. Ama yine de, bu sonuçsuz. –

0

locationManager örneğini nerede kurduğunu görmeliyim. Ancak, @Mark Adams'ın elinden geldiği gibi, şu anki sınıfınızı locationManager için temsilci olarak ayarlamanız gerekir, böylece hangi sınıfa geri gönderileceğini bilir.

locationManager.delegate = self;

1

Doğruluk ios artırıldı 5.

+0

Neyin sabit olduğuna dair bir fikriniz var mı? Eugene Oregon'da (~ 150.000 kişi) hala sorun yaşıyorum ki bu da hücre kulelerine ve WiFi'ye bağlı olduğuna inanmamı sağlıyor. ** bölge izleme ** sadece yoğun kentsel alanlarda yararlı olacak şekilde durum –

+0

ios 5 ve 6 hücre kuleleri ve wifi dayalı çalışır.İyi kentsel alanlarda en iyi çalışır . Benim app hakkında şikayetlerim var sadece yerler çok ıssız alanlarda (bir ada, kuzey Kanada) bulunmaktadır. –

1

Cevap geçerli::

- (void) startMonitoringForRegion:(CLRegion *)region desiredAccuracy:(CLLocationAccuracy)accuracy 

ios 6.o. önerilmiyor gibi bu kadar basittir Bunun yerine `- (void) startMonitoringForRegion: (CLRegion *) bölgesini kullanın.

sayesinde Abdul`

+0

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/instm/CLLocationManager/startMonitoringForRegion:desiredAccuracy: – mcphersonjr

1

Eh Birden bölgeleri takip ve çalışma dışı olup olmadığı kontrol etmek (debugger üzerindeki panelden) Xcode konumunu simüle edebilirsiniz. Test ettim ve oldukça düzgün çalışıyor.