Igor Kromin |   Consultant. Coder. Blogger. Tinkerer. Gamer.

NOTE: This article is 3 years or older so its information may no longer be relevant. Read on at your own discretion! Comments for this article have automatically been locked, refer to the FAQ for more details.
Here's a bit of code that I'm using on a personal project of mine. This code uses the Google Maps Places API auto complete feature without having to display a map. This means you get a text input box where you can start typing in Google Maps locations and fit it into your standard HTML forms.

There is a full places auto complete example on Google's pages but it only shows how to do it with a map present.

With my bit of code you turn this...
googlemaps1.png


Into this...
googlemaps2.png




So lets look at some code.

First I load the JavaScript for the API. This is documented here.
 HTML
<script src="https://maps.googleapis.com/maps/api/js?libraries=places"></script>


Then I add an input text field that looks something like this...
 HTML Form Input
<input id="locationName" name="locationName" type="text">


Then I add a bit of JavaScript that initialises the API and adds a listener to the input text box from above.
 JavaScript
function init() {
var input = document.getElementById('locationName');
var autocomplete = new google.maps.places.Autocomplete(input);
}
google.maps.event.addDomListener(window, 'load', init);



That's pretty much it! The input text box will now allow you to start entering locations and will attempt to auto complete them for you.

However, that is probably not that useful, so in my case I also add filtering to make sure that only 'cities' are displayed as valid auto complete options. The JavaScript to do that is below.
 JavaScript
function init() {
var options = {
types: ['(cities)']
};
var input = document.getElementById('locationName');
var autocomplete = new google.maps.places.Autocomplete(input, options);
}
google.maps.event.addDomListener(window, 'load', init);


-i


Skip down to comments...
A quick disclaimer...

Although I put in a great effort into researching all the topics I cover, mistakes can happen. If you spot something out of place, please do let me know.

All content and opinions expressed on this Blog are my own and do not represent the opinions of my employer (Oracle). Use of any information contained in this blog post/article is subject to this disclaimer.
 
comments powered by Disqus
Other posts you may like...