Google Places API for Node.js, with convenience methods to search by address or phone number
npm install google-locations
Google Places + Google Geocoding API module for node.js. Supports basic functions on the Google Places API -- search, autocomplete, and details -- as well as geocoding and reverse geocoding capabilities with the Google Geocoding API. It also contains two convenience methods, searchByAddress and searchByPhone, that allow users to retrieve Place details by address or phone number.
This module requires a valid Google API key and enabled access for Google Places and/or Google Geocoding. Check out the Google Places API docs or Google Geocoding API docs for more information. Please note that searchByAddress uses the Geocoding API and searchByPhone uses the /place/textsearch endpoint which counts as 10 requests toward your daily quota.
This is a fork of the node-google-places module which appears to no longer be actively maintained. Please feel free to submit pull requests for features and additional test coverage!
```
npm install google-locations
js
var GoogleLocations = require('google-locations');var locations = new GoogleLocations('YOUR_API_KEY');
locations.search({keyword: 'Google', location: [37.42291810, -122.08542120]}, function(err, response) {
console.log("search: ", response.results);
locations.details({placeid: response.results[0].place_id}, function(err, response) {
console.log("search details: ", response.result.name);
// search details: Google
});
});
locations.autocomplete({input: 'Verm', types: "(cities)"}, function(err, response) {
console.log("autocomplete: ", response.predictions);
var success = function(err, response) {
console.log("did you mean: ", response.result.name);
// did you mean: Vermont
// did you mean: Vermont South
// did you mean: Vermilion
// did you mean: Vermillion
};
for(var index in response.predictions) {
locations.details({placeid: response.predictions[index].place_id}, success);
}
});
locations.searchByAddress({address: '1600 Amphitheatre Pkwy, Mountain View, CA', name: 'Goo', maxResults: 2, rankby: "prominence", radius: 5000}, function(err, response){
for (var index in response.details) {
console.log("Potential Match: " + response.details[index].name);
// Potential Match: Google
// Potential Match: Gooey Cookie Factory
}
for (var index in response.errors) {
console.log("Error looking up place details: ", response.errors[index]);
}
});
locations.searchByPhone({phone: "(650) 253-0000"}, maxResults: 2, function(err, response){
// Returns up to 2 matches for this phone number
});
`Test
To test simply install development dependencies and run:
`vows test/* --spec``