JavaScript - Location
Add as-you-type location completion to any HTML form. Try it
Example
Install from NPM or CDN
npm install getaddress-location
<script src="https://cdn.getaddress.io/scripts/getaddress-location-1.1.0.min.js"></script>
Usage
<input id="textbox_id" type="text">
<script>
getAddress.location(
'textbox_id',
'API Key or Domain Token'
);
</script>
Events
document.addEventListener("getaddress-location-suggestions", function(e){
console.log(e.suggestions);
})
document.addEventListener("getaddress-location-suggestions-failed", function(e){
console.log(e.status);
console.log(e.message);
})
document.addEventListener("getaddress-location-selected", function(e){
console.log(e.location);
})
document.addEventListener("getaddress-location-selected-failed", function(e){
console.log(e.status);
console.log(e.message);
})
Options
getAddress.location(
'textbox_id',
'API Key',
/*options*/{
output_fields:{
latitude:'latitude', /* The id of the element bound to 'latitude' */
longitude:'longitude', /* The id of the element bound to 'longitude' */
town_or_city:'town_or_city', /* The id of the element bound to 'town_or_city' */
area:'area', /* The id of the element bound to 'area' */
county:'county', /* The id of the element bound to 'county' */
country:'country', /* The id of the element bound to 'country' */
postcode:'postcode', /* The id of the element bound to 'postcode' */
outcode:'outcode' /* The id of the element bound to 'outcode' */
},
id_prefix:'getAddress-location' , /* The id of the textbox and list container */
css_prefix?:'getAddress_location'", /* The class name prefix */
delay:200, /* millisecond delay between keypress and API call */
minimum_characters:2, /* minimum characters to initiate an API call */
clear_list_on_select:true, /* if true, clears list on suggestion selected */
select_on_focus:true, /* if true, highlights textbox characters on focus*/
alt_location_url:undefined, /* alterative local autocomplete URL (when API key is not used) */
alt_get_location_url:undefined, /* alterative local get URL (when API key is not used) */
input_class_names:[], /* textbox class names */
input_show_class_names:[], /* textbox class names on show */
list_class_names:[], /* list class names */
container_class_names:[], /* container class names */
suggestion_class_names:[], /* suggestion class names */
highlight_suggestion:true, /* if true, highlights matched suggestion text */
highlight_suggestion_start_tag:'<b>', /* highlighted suggestion text start tag */
highlight_suggestion_end_tag:'</b>', /* highlighted suggestion text end tag */
list_width:undefined, /* if true, set the list width */
suggestion_count:6, /* number of retreived suggestions (max 20) */
auto_calc_list_height:true, /* if true, calculates the list's height */
suggestion_template:undefined, /* the suggestion template (see Autocomplete API)*/
filter:undefined, /* the suggestion filter (see Autocomplete API)*/
bind_output_fields:true, /* if true, bind the output_fields to the address*/
input_focus_on_select:true, /* if true, sets the focus to the textbox after selecting an address*/
debug:false, /* if true, logs behavior */
enable_get_location:true , /* if true, retreives address on select */
clear_on_select:false /* if true, clears textbox after selecting a location */
}
);
Domain Tokens
To avoid exposing your API key in browser code, Domain Tokens can used in place of your API key.
Domain Tokens can be generated for a specific domain and it's sub-domains. They can also limit the number of look-ups per minute for an IP address.
<script>
getAddress.location
(
'textbox_id',
'dtoken_hEDzcyiWMI1eXXXX'
);
</script>