vue-use-places-autocomplete
v0.2.3
Published
๐ Vue composable for Google Maps Places Autocomplete.
Downloads
4,430
Readme
vue-use-places-autocomplete
๐ Vue composable for Google Maps Places Autocomplete.
Installation
npm install vue-use-places-autocomplete
Usage
<!-- Load the library using the script tag -->
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"></script>
<script setup>
import { ref } from 'vue'
import { usePlacesAutocomplete } from 'vue-use-places-autocomplete'
const query = ref('')
const { suggestions } = usePlacesAutocomplete(query, {
debounce: 500,
minLengthAutocomplete: 3
})
</script>
<template>
<input type="text" v-model="query" placeholder="Search a place..." />
<ul>
<li v-for="item in suggestions" :key="item.place_id">{{ item.description }}</li>
</ul>
</template>
API
const {
suggestions,
loading,
sessionToken,
refreshSessionToken
} = usePlacesAutocomplete(query, options)
Options
| Key | Type | Default | Description |
| :----- | :-------- | :---------- | :---------- |
| apiKey
| string | ""
| If this parameter is passed, the component will inject the Google Maps JavaScript API using this apiKey. So there's no need to manually add the script tag to your HTML document. |
| apiOptions
| object | {}
| Object to configure the google script to inject. |
| autocompletionRequest
| object | {}
| Autocompletion request object to add restrictions to the search. |
| debounce
| number | 300
| The number of milliseconds to delay before making a call to Google Maps API. |
| minLengthAutocomplete
| number | 0
| Defines a minimum number of characters needed on the input in order to make requests to the Google's API. |
| onLoadFailed
| function | console.error
| Function to be called when the injection of the Google Maps JavaScript API fails due to network error. |
| withSessionToken
| boolean | false
| If this is set to true, the composable will handle changing the sessionToken on every session. To learn more about how this works refer to Google Places Session Token docs. |
Return object
| Key | Type | Default | Description |
| :----- | :-------- | :---------- | :---------- |
| suggestions
| array | []
| Contains the autocomplete predictions. |
| loading
| boolean | false
| Indicates the status of a request is pending or has completed. |
| sessionToken
| string | undefined | undefined
| Current sessionToken being used. |
| refreshSessionToken
| function | - | This function allows you to refresh the sessionToken being used. |
Utilities
geocodeByPlaceId
This function allows to get result by a place id using Google Maps Geocoder.
import { geocodeByPlaceId } from 'vue-use-places-autocomplete'
const results = await geocodeByPlaceId('ChIJk6_7UFmdqTMRgFAxl4KEnUQ')
geocodeByAddress
This function allows to get results by an address using Google Maps Geocoder.
import { getGeocode } from 'vue-use-places-autocomplete'
const results = await geocodeByAddress('Manila, Philippines')
geocodeByLatLng
This function allows to get results by it's coordinates (latitude and longitude) using Google Maps Geocoder.
import { geocodeByLatLng } from 'vue-use-places-autocomplete'
const results = await geocodeByLatLng({ lat: 14.5995, lng: -120.9842 })
getLatLng
This functions allows to get the latitude and longitude of a geocoder result.
import { geocodeByAddress, getLatLng } from 'vue-use-places-autocomplete'
const results = await geocodeByAddress('Manila, Philippines')
const { lat, lng } = await getLatLng(results[0])
Credits
- react-google-places-autocomplete - React component for Google Places Autocomplete.
- use-places-autocomplete - React hook for Google Maps Places Autocomplete.
License
MIT