태풍이 오기 때문에 아이폰6로 기압계를 만들었다

8317 단어 SwiftiOS
※ 업데이트 버전태풍이 많아서 스위프트 UI로 기압계를 만들었어요으로 공개(2019.11.23)
아이폰6/6 플러스에 탑재된 M8 프로세서에는 기압 센서가 탑재돼 있다.계단의 승강 등 높이 변화를 감지하기 위한 목적이 주된 것으로 태풍도 근접해 기압계 앱을 제작했다.

그나저나 원래 사용하던 상대적인 높이를 보여줌으로써 복원해 보았다(반대로.
※ 시뮬레이터는 작동하지 않기 때문에 실제 전송이 필요합니다.

이루어지다


• 프로젝트에서 CoreMotion프레임워크를 추가합니다.
· Storyboard는 바로 이런 느낌입니다. 레이블 두 개와 button 한 개.

・ViewController.swift에 코드를 씁니다.CMAltimeter 클래스를 사용합니다.
ViewController.swift
import UIKit
import CoreMotion

class ViewController: UIViewController {

    @IBOutlet weak var pressureLabel: UILabel!
    @IBOutlet weak var altitudeLabel: UILabel!

    let altimeter = CMAltimeter()

    override func viewDidLoad() {
        super.viewDidLoad()
        startUpdate()
    }

    @IBAction func doReset(sender: AnyObject) {
        altimeter.stopRelativeAltitudeUpdates()
        startUpdate()
    }

    func startUpdate(){
        self.pressureLabel.text = "気圧:---- hPa"
        self.altitudeLabel.text = "高さ:-.-- m"
        if (CMAltimeter.isRelativeAltitudeAvailable()) {
            altimeter.startRelativeAltitudeUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler:
                {data, error in
                    if error == nil {
                        let pressure:Double = data.pressure
                        let altitude:Double = data.relativeAltitude
                        self.pressureLabel.text = String(format: "気圧:%.1f hPa",pressure*10)
                        self.altitudeLabel.text = String(format: "高さ:%.2f m",altitude)
                    }
            })
        } else{
            println("not use altimeter")
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

}
별거 아닌 코드니까 github에 안 올려도 돼...
CMAltitude Data 형식의 값은 pressure가 kPa이기 때문에 10배입니다.altitude는 m입니다.
CMAltitudeData Class Reference

기압에 관하여


기상청이 발표한 각 기상대 측정 데이터에서 기압은 해수면 높이에서 줄어든 것으로 보인다.아미다의 수치와 비교하면 5hPa의 차이가 있기 때문에 5*8=40m이다.
도쿄도-아미다스 데이터
http://www.jma.go.jp/jp/amedas_h/today-44132.html
해발과 대기압의 관계
http://members.jcom.home.ne.jp/tetsuom/NOTE/NtPvsH/HdPvsH.htm
현재 있는 곳의 해발은 구글맵에 따르면 20m로 건물의 6F에 있기 때문에 3.5m*6=21m를 합쳐 41m로 대충 계산해도 된다.만약 정말 하려고 한다면 GPS 정보를 사용하는 높이를 잘 수정할 수 있을 것이다.

신사 숙녀


viewDidLoad에서 "let altimeter = CMAltimeter ()"를 만들면view가 초기화되면altimeter가 풀려서 호출이 호출되지 않습니다.주의할 때 시간이 많이 걸렸으니 주의하세요.
data.pressure 값을 직접 사용하면 비트가 너무 많고 계산에 사용하면 정수가 되기 때문에 더블 대입입니다.이 근처는 스위프트의 초보자이기 때문에 더 좋은 작법이 있을 수 있다.
통상적인 기압 변화는 상대적으로 고도에 변화가 발생하기 때문에 나는 짧은 간격으로 경향을 관찰하거나 평균치를 얻는 것이 좋다고 생각한다.

Siri


Siri: "지금 기압은?"이렇게 물어보면 기압이 돌아오지만 얻은 값과는 미묘한 차이가 있다.고도 수정을 넣었는지, 아니면 다른 곳의 기압을 말했는지 모르겠다.

참고 자료


[iOS 8] 아이폰6/아이폰6 플러스에서 사용하는 새로운 기능!CMAltimeter로 높이 조정
http://dev.classmethod.jp/references/ios8-cmaltimeter/
iOS 8용 고도계(기압계)
http://reinforce-lab.github.io/blog/2014/10/03/ios8-barometer/

좋은 웹페이지 즐겨찾기