[swift] 滞在記録を行えるCLVisitの実装
滞在記録を行えるCLVisitの実装
CLLocation機能で場所に滞在しているをその滞在情報を発行してくれるCLVisitを実装する
サンプルコード:
import UIKit
import CoreLocation
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, CLLocationManagerDelegate {
var manager: CLLocationManager!
// MARK: - UIApplicationDelegate
func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
manager = CLLocationManager()
manager.delegate = self;
manager.requestWhenInUseAuthorization() //Location情報取得許可
return true
}
// MARK: - CLLocationManagerDelegate
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
switch status {
case .Authorized, .AuthorizedWhenInUse:
print("位置情報利用可")
// 滞在情報の取得を開始する
manager.startMonitoringVisits()
default:
print("位置情報利用不可")
}
}
func locationManager(manager: CLLocationManager!, didVisit visit: CLVisit!) {
print("latitude : \(visit.coordinate.latitude)")
print("longtitude : \(visit.coordinate.longtitude)")
print("horizontalAccuracy : \(visit.horizontalAccuracy)")
print("verticalAccuracy : \(visit.verticalAccuracy)")
print("arrivalDate: \(visit.arrivalDate)")
print("departureDate : \(visit.departureDate)")
if visit.departureDate.isEqualToDate(NSDate.distantFuture()) {
// 到着時のメソッド
} else {
// その場から離れた時のメソッド
}
}
}