Simple to use React Native library to get native device location for Android and iOS
React-Native Get Location
⚛ Simple to use React Native library to get native device location for Android and iOS.
Requirements
- React Native >= 0.45.0
- iOS >= 8.0
Install
-
Install dependency package
yarn add react-native-get-location
Or
npm i -S react-native-get-location
-
Link the native project
react-native link react-native-get-location
Android post install
For Android API < 23 you need to define the location permissions on AndroidManifest.xml
.
<!-- Define ACCESS_FINE_LOCATION if you will use enableHighAccuracy=true -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- Define ACCESS_COARSE_LOCATION if you will use enableHighAccuracy=false -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
iOS post install
You need to define the permission NSLocationWhenInUseUsageDescription on Info.plist
.
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs to get your location...</string>
Usage
There is only one function that you need to use to get the user's current location.
import GetLocation from 'react-native-get-location'
GetLocation.getCurrentPosition({
enableHighAccuracy: true,
timeout: 15000,
})
.then(location => {
console.log(location);
})
.catch(error => {
const { code, message } = error;
console.warn(code, message);
})
For more details, see the Sample Project.
API
function GetLocation.getCurrentPosition(LocationConfig)
Parameters:
LocationConfig
: Configuration object to determine how to get the user current location.
Return:
Promise<
Location
>
: Promise thats resolve to a Location object.
Object LocationConfig
Properties:
enableHighAccuracy
: Settrue
to use 'fine location' (GPS) ourfalse
to use 'course location' (Wifi, Bluetooth, 3G).timeout
: The max time (in milliseconds) that you want to wait to receive a location.
Object Location
Properties:
latitude
: The latitude, in degrees.longitude
: The longitude, in degrees.altitude
: The altitude if available, in meters above the WGS 84 reference ellipsoid.accuracy
: The estimated horizontal accuracy of this location, radial, in meters.speed
: The speed if it is available, in meters/second over ground.time
: The UTC time of this fix, in milliseconds since January 1, 1970.bearing
: (Android only) The bearing, in degrees.provider
: (Android only) The name of the provider that generated this fix.verticalAccuracy
: (iOS only) The vertical accuracy of the location. Negative if the altitude is invalid.course
: (iOS only) The course of the location in degrees true North. Negative if course is invalid. (0.0 - 359.9 degrees, 0 being true North)
Error codes
Code | Message |
---|---|
CANCELLED |
Location cancelled by user or by another request |
UNAVAILABLE |
Location service is disabled or unavailable |
TIMEOUT |
Location request timed out |
UNAUTHORIZED |
Authorization denied |