Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including react-native-geocoder-reborn with all npm packages installed. Try it out:

require("react-native/package.json"); // react-native is a peer dependency. var reactNativeGeocoderReborn = require("react-native-geocoder-reborn")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

react-native-geocoder-reborn v0.7.3

Geocoding for react native.



Geocoding services for react native.

The project is built on top of devfd/react-native-geocoder, due to original project is not likely being maintained. This fork should be a drop-in replacement and some bug fixing and TypeScript support have being added.

Version table

Geocoder VersionRN
>=0.7.0>= 0.56.0

If you're using an older version of react-native, please consider using devfd/react-native-geocoder instead.


yarn add react-native-geocoder-reborn


npm install --save react-native-geocoder-reborn




react-native link react-native-geocoder-reborn


If automatic linking fails you can follow the manual installation steps


  1. In the XCode's "Project navigator", right click on Libraries folder under your project ➜ Add Files to <...>
  2. Go to node_modulesreact-native-geocoder-reborn and add ios/RNGeocoder.xcodeproj file
  3. Add libRNGeocoder.a to "Build Phases" -> "Link Binary With Libraries"


  1. In android/setting.gradle add:
include ':react-native-geocoder-reborn', ':app'
project(':react-native-geocoder-reborn').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-geocoder-reborn/android')
  1. In android/app/build.gradle
dependencies {
    implementation project(':react-native-geocoder-reborn')
  1. register module (in
import com.devfd.RNGeocoder.RNGeocoderPackage; // <--- import

public class MainActivity extends ReactActivity {
  protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new RNGeocoderPackage()     // <------ add this


import Geocoder from 'react-native-geocoder-reborn';

// Position Geocoding
var NY = {
  lat: 40.7809261,
  lng: -73.9637594

Geocoder.geocodePosition(NY).then(res => {
    // res is an Array of geocoding object (see below)
.catch(err => console.log(err))

// Address Geocoding
Geocoder.geocodeAddress('New York').then(res => {
    // res is an Array of geocoding object (see below)
.catch(err => console.log(err))

Fallback to google maps geocoding

Geocoding services might not be included in some Android devices (Kindle, some 4.1 devices, non-google devices). For those special cases the lib can fallback to the online google maps geocoding service

import Geocoder from 'react-native-geocoder-reborn';
// simply add your google key

// use the lib as usual
let ret = await Geocoder.geocodePosition({lat, lng})
// you get the same results

With async / await

try {
    const res = await Geocoder.geocodePosition(NY);
    const res = await Geocoder.geocodeAddress('London');
catch(err) {

Geocoding object format

both iOS and Android will return the following object:

    position: {lat, lng},
    formattedAddress: String, // the full address
    feature: String | null, // ex Yosemite Park, Eiffel Tower
    streetNumber: String | null,
    streetName: String | null,
    postalCode: String | null,
    locality: String | null, // city name
    country: String,
    countryCode: String
    adminArea: String | null
    subAdminArea: String | null,
    subLocality: String | null



iOS does not allow sending multiple geocoding requests simultaneously, hence if you send a second call, the first one will be cancelled.


geocoding may not work on older android devices (4.1) and will not work if Google play services are not available.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free