JavaScriptを有効にしてください

【React Native】ExpoのMagnetometerを使った方位磁石アプリのコードを読んでみる

スマホのセンサーの一つに磁気センサーなんてものがあります。

https://developer.android.com/guide/topics/sensors/sensors_position?hl=ja#sensors-pos-mag

地球の磁場の変化を取得するとか。すげー。

近接センサーは使った事ありますが、こんなものもあるんですね。

でもこんなもの何に使うのっていう話です。例えば方位を取得したりするのに使うみたいです。

今回はネイティブのではなくReact NativeとExpoを使ったアプリを通じて磁気センサーを使った方位の計算をしました。
https://docs.expo.io/versions/latest/sdk/magnetometer/

良い感じのサンプルとしてこちらを参考にさせてもらいました。もしよかったらstarしてあげてほしいです。

https://github.com/rahulhaque/compass-react-native-expo

理屈はこちら

https://www.aichi-mi.com/home/%E9%9B%BB%E5%AD%90%E3%82%B3%E3%83%B3%E3%83%91%E3%82%B9/%E6%96%B9%E4%BD%8D%E8%A8%88%E7%AE%97%E3%81%AE%E5%9F%BA%E7%A4%8E/

サンプルのApp.jsの_angle()でx軸(スマホ縦にして画面を横切る軸)とy軸(スマホ縦にして画面を縦に通る軸)

Math.atan2()でx軸との間の角度を取り、_degree()で90度向きを変えることでスマホ上部を北にして方位磁石の機能を実現させてるのですね。

勉強になりました。