以前、「@react-native-community/geolocation」ライブラリを使って、現在地の緯度経度を取得する処理についてご紹介しましたが、よくよく確認したところこちらのライブラリが Android だと精度が低く、速度が遅いため非推奨とのこと。
そのため、「react-native-geolocation-service」ライブラリに入れ替えることにしました。
GitHub のページはこちらから。
Agontuk/react-native-geolocation-service: React native geolocation service for iOS and android
https://github.com/Agontuk/react-native-geolocation-service
まず、下記コマンドを使ってライブラリをインストールします。
npm install react-native-geolocation-service --save
で、あとは現在地を取得する処理を記述するページで下記をインポートすれば準備は完了です。
import Geolocation from 'react-native-geolocation-service';
なお、用意されている API は「@react-native-community/geolocation」ライブラリとほぼ一緒なので、インポート文を変更すればそのまま使えるかと思います。
ただし、iOS でのみ使える requestAuthorization()
は引数に "whenInUse"
または "always"
を指定する必要があるので、そこだけご注意ください。
で、実際に Android で getCurrentPosition()
を使って現在の緯度経度を取得したところ、オプションの enableHighAccuracy
を true
にしても緯度経度が無事に取得できました!
@react-native-community/geolocation ライブラリを使っていた時だと、オプションで enableHighAccuracy: true
にすると、タイムアウトしてしまったんですよね…。
iOS ではまだ確認していないので、後日確認したいと思います!
以上、React Native の「react-native-geolocation-service」ライブラリを使って現在の位置情報を取得する方法でした。
ご参考になれば幸いです。