57 lines
1.8 KiB
CoffeeScript
57 lines
1.8 KiB
CoffeeScript
initializeAutocomplete = (id) ->
|
|
element = document.getElementById(id)
|
|
if element
|
|
autocomplete = new (google.maps.places.Autocomplete)(element, types: [ '(regions)'])
|
|
google.maps.event.addListener autocomplete, 'place_changed', onPlaceChanged
|
|
return
|
|
|
|
onPlaceChanged = ->
|
|
place = @getPlace()
|
|
console.log(place.geometry.location["D"])
|
|
|
|
latlng = new (google.maps.LatLng)(place.geometry.location["k"], place.geometry.location["D"])
|
|
geocoder = new google.maps.Geocoder()
|
|
geocoder.geocode { 'latLng': latlng }, (results, status) ->
|
|
if status == google.maps.GeocoderStatus.OK
|
|
if results[0]
|
|
|
|
elt = results[0].address_components
|
|
for i of elt
|
|
`i = i`
|
|
if elt[i].types[0] == 'postal_code'
|
|
alert elt[i].long_name
|
|
document.getElementById('cp').value = elt[i].long_name
|
|
if elt[i].types[0] == 'locality'
|
|
document.getElementById('adr').value = elt[i].long_name
|
|
if elt[i].types[0] == 'administrative_area_level_2'
|
|
document.getElementById('dpt').value = elt[i].long_name
|
|
if elt[i].types[0] == 'country'
|
|
document.getElementById('pays').value = elt[i].long_name
|
|
|
|
else
|
|
alert 'Geocoder failed due to: ' + status
|
|
return
|
|
|
|
# ---
|
|
# generated by js2coffee 2.0.3
|
|
|
|
|
|
|
|
for i of place.address_components
|
|
component = place.address_components[i]
|
|
for j of component.types
|
|
# Some types are ["country", "political"]
|
|
|
|
|
|
type_element = document.getElementById(component.types[j])
|
|
if type_element
|
|
|
|
type_element.value = component.long_name
|
|
|
|
alert "tesr"
|
|
|
|
return
|
|
|
|
google.maps.event.addDomListener window, 'load', ->
|
|
initializeAutocomplete 'user_input_autocomplete_address'
|
|
return |