Git Product home page Git Product logo

react-native-google-place-picker's Introduction

react-native-google-place-picker npm version

React Native Wrapper of Google Place Picker for iOS + Android.

iOS Android

Table of contents

Install

npm install react-native-google-place-picker --save

Then you must install the native dependencies. You can use rnpm (now part of react-native core) to add native dependencies automatically:

react-native link

or link manually like so: 

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]

  2. Go to node_modulesreact-native-google-place-picker and add RNGooglePlacePicker.xcodeproj

  3. In XCode, in the project navigator, select your project. Add libRNGooglePlacePicker.a to your project's Build PhasesLink Binary With Libraries

  4. Inside your ios directory add a file named Podfile with the following content

  5. Run pod install --project-directory=ios in the project root path.

  6. At the top of your AppDelegate.m:

    #import <GoogleMaps/GoogleMaps.h>
    #import <GooglePlaces/GooglePlaces.h>

    And then in your AppDelegate implementation, Add the following to your application:didFinishLaunchingWithOptions, replace YOUR_API_KEY:

    NSString *kAPIKey = @"YOUR_API_KEY";
    [GMSPlacesClient provideAPIKey:kAPIKey];
    [GMSServices provideAPIKey:kAPIKey];
    
  7. Run react-native run-ios

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactlibrary.RNGooglePlacePickerPackage; to the imports at the top of the file
  • Add new RNGooglePlacePickerPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
include ':react-native-google-place-picker'
project(':react-native-google-place-picker').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-google-place-picker/android')
  1. Insert the following lines inside the dependencies block in android/app/build.gradle:
compile project(':react-native-google-place-picker')
  1. Add permisson and your YOUR_API_KEY to your manifest file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example"
    android:versionCode="1"
    android:versionName="1.0">

    ...

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    ...

    <application>

      ...

      <meta-data
          android:name="com.google.android.geo.API_KEY"
          android:value="YOUR_API_KEY" />

      ...

    </application>
</manifest>

Usage

import RNGooglePlacePicker from 'react-native-google-place-picker';

RNGooglePlacePicker.show((response) => {
  if (response.didCancel) {
    console.log('User cancelled GooglePlacePicker');
  }
  else if (response.error) {
    console.log('GooglePlacePicker Error: ', response.error);
  }
  else {
    this.setState({
      location: response
    });
  }
})

Example

The Response Object

key | type | Description ------ | ---- | ------- | ---------------------- didCancel | boolean | Informs you if the user cancelled the process error | string | Contains an error message, if there is one address | string/null | The formated address of selected location, null if not available name | string | The name of this Place google_id | string | The unique id of this Place latitude | number | The latitude value of selected location longitude | number | The longitude value of selected location

Credits

Thanks following repositories' inspiration/help:

License

Code in this git repo is licensed MIT.

react-native-google-place-picker's People

Contributors

zhangtaii avatar arthurassuncao avatar

Watchers

James Cloos avatar Satvik avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.