A promise-based wrapper for the Google Places JS SDK for Node (and React Native).
yarn add google-places-web;
npm i google-places-web -S
// ES6
import Places from "google-places-web";
// ES5
const Places = require("google-places-web").default; // instance of GooglePlaces Class;
// Setup
Places.apiKey = "<API_KEY>";
Places.debug = __DEV__; // boolean;
let partialAddress = "1600 Pennsylv";
const radius = 2000;
const language = "en";
// Search with default opts
Places.autocomplete({ input: partialAddress, radius, language })
.then(results => {
// results array of partial matches
})
.catch(e => console.log(e));
const whiteHousePlaceID = "ChIJGVtI4by3t4kRr51d_Qm_x58";
Places.details({ placeid: whiteHousePlaceID })
.then(result => {
// result object
})
.catch(e => console.log(e));
Make sure you have the lib built with npm run build
or yarn build
. That should create your dist/
directory.
> npm run build
> PLACES_API_KEY=<your_key_here> node examples/places-example.js
Feel free to file issues as you see fit, and always looking for collaborators to help make this better.
Invalid API Key
- The instance of theGooglePlaces
object does not have a valid API key from Google. Make sure you are either usingimport Places from...
orimport {GooglePlaces} from...
.GooglePlaces
is the base class so you would need to make an instance of it first.STATUS_MESSAGE
- Google responds with HTTP 200 but JSON contains an "error". This is parsed from the Google API response, ex.ZERO_RESULTS
Missing required params: [<PARAM1>, <PARAM2>]
- Required params PARAM1 & PARAM2 areundefined
ornull
No parameters provided
- A method was called without passing a parameters object to the method, most likely passednull
,undefined
or nothing. ex.Places.autocomplete();
instead ofPlaces.autcomplete({foo: 'barr});
Google states that you can use Place Autocomplete even without a map. If you do show a map, it must be a Google map. When you display predictions from the Place Autocomplete service without a map, you must include the Powered by Google logo.