eeft-plugin-googleplaces
Version:
A Cordova plugin to access the native Google Places SDK
189 lines (144 loc) • 5.31 kB
Markdown
# cordova-plugin-googleplace
A Cordova plugin to use the Google Places SDK.
**NOTE: this is a preliminary version, as of now only iOS is supported and Android is in the making**
## Getting Started
This plugin allows to user the Google Places SDK from Cordova, for building autocomplete UIs for locations.
### Installing
```
$ SHELL COMMAND TO INSTALL
$ cordova plugin add cordova-plugin-googleplaces --variable API_KEY_FOR_IOS="XXXX"
```
### Usage
For more details you can generate the Javascript docs with `yarn doc`:
```sh
$ yarn doc
yarn run v1.1.0
$ docco www/GooglePlaces.js
docco: www/GooglePlaces.js -> docs/GooglePlaces.html
```
#### `currentPlace`
You can call the `currentPlace` method to find information on the current locatoin.
This method **requires** that the user has enabled geolocation in the app.
To to so, use cordova-plugin-geolocation (or equivalent) before calling this method.
```javascript
// Authorize access to the current position using cordova-plugin-geolocation
navigator.geolocation.getCurrentPosition(function(pos) {
// retreive the current place
cordova.plugins.GooglePlaces.currentPlace(
// place contains the API result
place => {
console.log(place);
// {
// place: {
// name: "some place name",
// placeID: "XXXXX"
// },
// likehood: 0.87 // <= means 87% accurate
// }
},
err => console.log(err)
);
});
```
#### `autocompleteQuery`
The `autocompleteQuery(query, [bounds], [filter], success, failure)` method find candidates ("predictions") given an input
query string:
```javascript
cordova.plugins.GooglePlaces.autocompleteQuery("22 some random address",
// results contains an array of predictions, the first being the most pobable
results => {
console.log(res);
// {
// fullText: "description of the place",
// primaryText: "partial description of the place",
// secondaryText: "partial description of the place",
// placeID: "XXXXX",
// types: [ "a", "list", "of", "types", "for", "the", "result" ]
// }
},
err => console.log(err),
);
```
This method can take optional arguments:
- `bounds` defines a regions to limit the search to.
It should be defined as a "coordinate region" object such as:
```javascript
{
northEast: {
latitude: 1.234,
longitude: 5,667
},
southWest: {
latitude: 1.234,
longitude: 5,667
}
}
```
- `filter` defines a filter to limit the results to a specific region.
Such a filter is given by a filter type taken from the `GooglePlaces.AutocompleteFilterTypes` and an (optional) country:
```javascript
{
filter: google.plugins.GooglePlaces.AutocompleteFilterTypes.NoFilter,
country: "FR" // <= this is optional
}
```
Several values are available for the filter type:
- `AutocompleteFilterTypes.NoFilter` is an empty filter; all results are returned.
- `AutocompleteFilterTypes.Geocode` returns only autocomplete results with a precise address. Use this type when you know the user is looking for a fully specified address.
- `AutocompleteFilterTypes.Address` returns only places that are businesses.
- `AutocompleteFilterTypes.Establishment` returns only places that are businesses.
- `AutocompleteFilterTypes.Region` returns only places that match one of the following types: `locality`, `sublocality`, `postal_code`, `country`, `administrative_area_level_1`, `administrative_area_level_2`
- `AutocompleteFilterTypes.City` returns only results matching `locality` or `administrative_area_level_3`.
#### `pickPlace`
`pickplace([bounds], success, [failure])` displays the native UI for picking a nearby place.
This method **requires** that the user has enabled geolocation in the app.
To to so, use cordova-plugin-geolocation (or equivalent) before calling this method.
```javascript
cordova.plugins.GooglePlaces.pickPlace(
// place contains complete place information on the selected target
place => {
console.log(res);
// {
// name: "some place name",
// placeID: "XXXXX",
// // and lots of other fields, depending on the place info available
// }
},
err => console.log(err),
);
```
The optional `bounds` argument is defined as explained above:
```javascript
{
northEast: {
latitude: 1.234,
longitude: 5,667
},
southWest: {
latitude: 1.234,
longitude: 5,667
}
}
```
#### `showPlaceAutocomplete`
Displays the native UI for place autocompletion.
```javascript
cordova.plugins.GooglePlaces.showPlaceAutocomplete(
// place contains complete place information on the selected target
place => {
console.log(res);
// {
// name: "some place name",
// placeID: "XXXXX",
// // and lots of other fields, depending on the place info available
// }
},
err => console.log(err),
);
```
## Contributing
Feel free to contribute anytime !
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details
## TODO
* [ ] Add Android support