スマホのセンサーの一つに磁気センサーなんてものがあります。
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
サンプルのApp.jsの_angle()
でx軸(スマホ縦にして画面を横切る軸)とy軸(スマホ縦にして画面を縦に通る軸)
でMath.atan2()
でx軸との間の角度を取り、_degree()
で90度向きを変えることでスマホ上部を北にして方位磁石の機能を実現させてるのですね。
勉強になりました。