iOS8區域定位CLVisit的瞭解

在很多應用,使用位置定位來判斷用戶是不是在某個期望的地理位置。概念上說,你會將這個行爲想成名詞“現場”或者是“訪問”而不是原生的GPS定位。

略一段。。

在iOS8中,大蘋果爲我們解決此類問題提供了CLVisit,一個新的後臺定位監測類型。一個但一個的CLVisit表示用戶花了一段時間在一個單一的地方,包含了同一地理座標以及起始/結束時間戳。

理論上來說,使用訪問監控不會比其他的後臺定位做更多的活兒。簡單得調用manager.startMonitoringVisits()
可以啓動後臺訪問定位,假設用戶已經永久授權。一旦啓動,你的APP將會被後臺激活當有新的更新到來的時候(讓我想到了樂動力這個APP)。與基礎的定位不同,如果系統有一些的訪問更新隊列,你的代理方法locationManager:didReceiveUpdates:將會調用多次,每次都只調用一個訪問,而不是一個CLLocation對象數組。調用manager.stopMonitoringVisits()將會停止定位跟蹤。

訪問處理句柄

每個CLVisit對象包含着一些基礎屬性:平均座標,水平精度,以及數據到達與離開得時間戳。

每次訪問被記錄,CLLocationManagerDelegate會被通知兩次:一旦用戶剛到達一個新地點,一個用戶剛準備離開這個地點。你可以通過departureDate屬性計算出它們哪個是哪個;如果離開時間是NSDate.distantFuture()意味着用戶還在那兒。

func locationManager(manager: CLLocationManager!, didVisit visit: CLVisit!) {
    if visit.departureDate.isEqualToDate(NSDate.distantFuture()) {
        // User has arrived, but not left, the location
    } else {
        // The visit is complete
    }
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章