68 lines
5.0 KiB
Plaintext
Executable File
68 lines
5.0 KiB
Plaintext
Executable File
|
|
-@results = JSON.load(open("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=#{URI.encode(@place)}&types=(regions)&language=fr&key=AIzaSyB4D4IEQ6XL0aeSc06aC9nIn-Bzasr-oB8"))
|
|
|
|
-@results["predictions"].each do |prediction|
|
|
-if prediction["types"][0] == "postal_code" or prediction["types"][0] == "locality" or prediction["types"][0] == "administrative_area_level_2" or prediction["types"][0] == "administrative_area_level_1" #or prediction["types"][0] == "sublocality_level_1"
|
|
|
|
-if prediction["types"][0] == "postal_code"
|
|
|
|
- Geocoder.search(prediction["description"]).each do |result|
|
|
|
|
|
|
-place_detail = JSON.load(open("https://maps.googleapis.com/maps/api/place/details/json?placeid=#{prediction['place_id']}&key=AIzaSyB4D4IEQ6XL0aeSc06aC9nIn-Bzasr-oB8"))
|
|
|
|
-if place_detail
|
|
-result_parsed = {"lat" => place_detail["result"]["geometry"]["location"]["lat"], "lng" => place_detail["result"]["geometry"]["location"]["lng"], "formatted_address" => place_detail["result"]["formatted_address"] }
|
|
|
|
-place_detail["result"]["address_components"].each do |component|
|
|
-result_parsed[component["types"][0]] = component['long_name']
|
|
-result_parsed[component["types"][0]+"_short"] = component['short_name']
|
|
|
|
|
|
|
|
=#debug result_parsed
|
|
|
|
-city = prediction["description"].gsub(result_parsed["postal_code"], "")
|
|
|
|
%li
|
|
=link_to "#", :onclick => "$(this).closest('.place_search').find('#place_city').val('');$(this).closest('.place_search').find('#place_id').val('#{prediction['place_id']}');$(this).closest('.place_search').find('#place_cp').val('#{result_parsed["postal_code"]}');$(this).closest('.place_search').find('#place').val($(this).text());$(this).closest('.place_search').find('#place_type').val(2);$('.autocomp').html('');$('.autocomp').hide();return false;" do
|
|
Code postal :
|
|
=result_parsed["postal_code"]
|
|
|
|
|
|
-result = Geocoder.search(result_parsed["postal_code"]+","+result_parsed["country"], :types => "(regions)", :components => ["country:#{@country}"], :region => "regions")
|
|
|
|
-result.each do |result|
|
|
-if ["administrative_area_level_2","administrative_area_level_1", "locality", "postal_code", "street_address"].include?(result.data["types"][0])
|
|
|
|
|
|
|
|
-if result.data["types"][0] == "postal_code"
|
|
-if result.data["postcode_localities"]
|
|
-result.data["postcode_localities"].each do |locality|
|
|
%li
|
|
=link_to "#", :onclick => "$(this).closest('.place_search').find('#place_city').val('#{locality}');$(this).closest('.place_search').find('#place_id').val('#{prediction['place_id']}');$(this).closest('.place_search').find('#place_cp').val('#{result_parsed["postal_code"]}');$(this).closest('.place_search').find('#place').val($(this).text());$(this).closest('.place_search').find('#place_type').val(1);$('.autocomp').html('');$('.autocomp').hide();return false;" do
|
|
=result.postal_code + " " + locality.strip
|
|
-elsif prediction["types"][0] == "administrative_area_level_1"
|
|
%li
|
|
=link_to "#", :onclick => "$(this).closest('.place_search').find('#place_city').val('');$(this).closest('.place_search').find('#place_id').val('#{prediction['place_id']}');$(this).closest('.place_search').find('#place_city').val('#{prediction["description"]}');$(this).closest('.place_search').find('#place').val($(this).text());$(this).closest('.place_search').find('#place_type').val(4);$('.autocomp').html('');$('.autocomp').hide();return false;" do
|
|
|
|
=prediction["description"]
|
|
-elsif prediction["types"][0] == "administrative_area_level_2"
|
|
%li
|
|
=link_to "#", :onclick => "$(this).closest('.place_search').find('#place_city').val('');$(this).closest('.place_search').find('#place_id').val('#{prediction['place_id']}');$(this).closest('.place_search').find('#place_cp').val('');$(this).closest('.place_search').find('#place_city').val('#{prediction["description"]}');$(this).closest('.place_search').find('#place').val($(this).text());$(this).closest('.place_search').find('#place_type').val(3);$('.autocomp').html('');$('.autocomp').hide();return false;" do
|
|
|
|
=prediction["description"]
|
|
-elsif prediction["types"][0] == "locality"
|
|
%li
|
|
=link_to "#", :onclick => "$(this).closest('.place_search').find('#place_city').val('');$(this).closest('.place_search').find('#place_id').val('#{prediction['place_id']}');$(this).closest('.place_search').find('#place_cp').val('');$(this).closest('.place_search').find('#place_city').val('#{prediction["description"]}');$(this).closest('.place_search').find('#place').val($(this).text());$(this).closest('.place_search').find('#place_type').val(5);$('.autocomp').html('');$('.autocomp').hide();return false;" do
|
|
|
|
=prediction["description"]
|
|
-else
|
|
%p
|
|
=prediction["types"][0]
|
|
=":"
|
|
=prediction["description"]
|
|
|
|
|