2012-03-30 65 views
2

我的問題是關於在iOS 5中創建regionMonitoring的區域。是否可以根據應用程序當前位置的用戶創建新區域?或者是否需要開發人員在應用程序二進制文件中預定義所有區域?iOS 5區域監控:可以根據用戶當前的coreLocation座標創建新區域嗎?

我知道你可以根據用戶當前位置註冊某些區域,因爲os會限制手機/應用程序一次可以監視的區域數量,並且您應該只在區域內註冊區域靠近用戶當前位置......但是可以基於用戶位置即時創建一個區域(以前未定義)?

使用情況實例:

用戶應用旋轉起來coreLocation得到一個組座標準確的,一旦我們有準確COORDS,corelocation關閉以節省電池。當用戶離開該區域時需要發生事件,以便我們想知道用戶何時移動x個距離單位。可以在此用戶當前位置周圍創建x個距離單位的區域,因此我們可以開始監控退出區域嗎?

我把大量的研究,但無法找到答案......不幸的是,我不是很熟悉regionMonitoring。

謝謝:)

回答

2

從理論上講,您可以監控任何地區任何時間,這些區域並不需要是預定義的,你可以使用下面的代碼來創建和務實地監控你需要的區域,

CLLocationCoordinate2D center = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude); 
CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:center radius:50.0f identifier:identifier]; 
[self.locationManager startMonitoringForRegion:region desiredAccuracy:kCLLocationAccuracyBest]; 

PS:區域監控的實現並沒有蘋果廣告那麼有用,根據我的理解它依賴於單元更改事件(再次保存電池)。即使iPhone 4和4s的默認提醒應用程序(基於位置的提醒)的結果,我也不高興。

+1

我在iOS7中做同樣的事情。但是,現在我堅持一個新問題。我認爲我們可以監控的區域數量最多的是15個。現在我的問題是,如果我想用用戶當前的位置監控區域,並且一個接一個的數量達到15,那麼我該如何處理這種情況。或者我不必擔心區域的數量,因爲我總是根據用戶當前的位置監視區域,這是一個區域。如果您有任何解決方案,請與我分享。先謝謝了。祝你今天愉快。 – Tulon 2014-02-18 09:50:29

+1

如果您檢查文檔,最大限制爲20.請確保您保持半徑小於maximumRegionMonitoringDistance。現在我的理解是,如果你超過這個數字,iOS將會釋放對最早區域的監控。https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#// apple_ref/occ/instm/CLLocationManager/startMonitoringForRegion: – Zee 2014-02-18 11:59:13

+0

是的,我當然是。但那不是我的問題。如果你可以請看看我的這個問題 http://stackoverflow.com/questions/21850536/number-of-region-monitored-by-regionmonitoring-based-on-users-current-locatio 謝謝 – Tulon 2014-02-18 12:01:54