Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
typeahead-addresspicker
Advanced tools
Example of adding google map API to typeahead jquery plugin to display address autocomplete suggestions.
It's not an extension of typeahead plugin itself, but a new data source for twitter typeahead (version > 0.10.0)
The AddressPicker
is a subclass of a Bloodhound class. It connects suggestions to Google Map AutocompleteService.
But it's much more than a simple suggestion engine because it can be linked to a google map to display/edit location.
The simplest usage is to use it as suggestion engine, without displaying results on google map.
<script src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="../dist/typeahead.js"></script>
<script src="../dist/typeahead-addresspicker.js"></script>
<input id="address" type="text" placeholder="Enter an address">
AddressPicker
and a typeahead
var addressPicker = new AddressPicker();
$('#address').typeahead(null, {
displayKey: 'description',
source: addressPicker.ttAdapter()
});
For a better user experience, you can connect it to a google map to display results.
You just need to add a div as for a google map place holder and connect it to the AddressPicker
As before
Add a div
<input id="address" type="text" placeholder="Enter an address">
<div id="map"></div>
AddressPicker
with the google map div element or ID and connect typeahead events.// instantiate the addressPicker suggestion engine (based on bloodhound)
var addressPicker = new AddressPicker({
map: {
id: '#map'
}
});
// instantiate the typeahead UI
$('#address').typeahead(null, {
displayKey: 'description',
source: addressPicker.ttAdapter()
});
// Bind some event to update map on autocomplete selection
$('#address').bind('typeahead:selected', addressPicker.updateMap);
$('#address').bind('typeahead:cursorchanged', addressPicker.updateMap);
When you instantiate a new AddressPicker
you can pass a list of options new AddressPicker(options)
Available Options:
map
(Hash): Map id and options to link typeahead to a goggle map (default: none).
id
(String/Element) DOM map element or CSS selector{
zoom: 3,
center: new google.maps.LatLng(0, 0),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
marker
(Hash): Marker options display on the map.
{
draggable: true,
visible: false,
position: MAP_CENTER
}
autocompleteService
(Hash) : options passed to google.maps.places.AutocompleteService#getPlacePredictions (default: {types: ['geocode']}
)
For more details read Google documentation. You can add a lot of options, like get only address for a country, or get only cities.
Example To get only cities in United States:
{
autocompleteService: {
types: ['(cities)'],
componentRestrictions: { country: 'US' }
}
}
zoomForLocation
(Number): Zoom value when an accurate address is selected (default: 16).
reverseGeocoding
(Boolean): Reverse geocoding when marker is dragged on map (default: false).
placeDetails
(Boolean): If not using with a map, you can skip the getDetails
portion to speed up the query (default: false).
Only one event is trigger by AddressPicker
object: addresspicker:selected
.
The event is fired when an address is selected or when the marker is dragged. If reverseGeocoding is activated, a full response is trigger, otherwise only lat/lng.
To simplify google response parsing, we fire an object of type AddressPickerResult
with some accessors:
lat()
lng()
addressTypes()
addressComponents()
nameForType: (type, shortName = false)
Listen that event to get values you need and store them in your form. Here is an example:
// Proxy inputs typeahead events to addressPicker
addressPicker.bindDefaultTypeaheadEvent($('#address'))
// Listen for selected places result
$(addressPicker).on('addresspicker:selected', function (event, result) {
$('#your_lat_input').val(result.lat());
$('#your_lng_input').val(result.lng());
$('#your_city_input').val(result.nameForType('locality'));
});
The code is tested as much as possible. If you want to add features, please add spec in your pull request.
A demo is included in the github repository, and is available here: http://sgruhier.github.io/typeahead-addresspicker
Quick example to show how to use twitter typeahead autocomplete and google map API to make an address picker.
This example is just a first try and could be enhanced to fully replace my previous address picker: http://xilinus.com/jquery-addresspicker/demos/
Any suggestions (using issues) or pull requests are welcome.
@copyright Sébastien Gruhier / Xilinus (http://xilinus.com - http://v3.maptimize.com - http://buy.maptmize.com)
FAQs
Example of adding google map API to typeahead jquery plugin to display address autocomplete suggestions.
The npm package typeahead-addresspicker receives a total of 0 weekly downloads. As such, typeahead-addresspicker popularity was classified as not popular.
We found that typeahead-addresspicker demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.