0Accessing Barometer to get relative altitude
suggest changeSwift
Import the Core Motion library:
import CoreMotion
Next, we need to create a CMAltimeter object, but a common pitfall is to create it in the viewDidLoad(). If done that way, the altimeter won’t be accessible when we need to call a method on it. Nevertheless, go ahead and create your CMAltimeter object just before the viewDidLoad():
let altimeter = CMAltimeter()
Now:
- We need to check if
relativeAltitudeis even available with the following method:CMAltimeter.isRelativeAltitudeAvailable. - If that returns
true, you can then begin monitoring altitude change withstartRelativeAltitudeUpdatesToQueue - If there are no errors, you should be able to retrieve data from the
relativeAltitudeand pressure properties.
Given below is the definition of a button action to begin monitoring with our barometer.
@IBAction func start(sender: AnyObject){
if CMAltimeter.isRelativeAltitudeAvailable() {
// 2
altimeter.startRelativeAltitudeUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: { data, error in
// 3
if (error == nil) {
println("Relative Altitude: \(data.relativeAltitude)")
println("Pressure: \(data.pressure)")
}
})
}
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents