From ff2b0f81c4145171417962163894cee624ff9f73 Mon Sep 17 00:00:00 2001 From: Nick Black Date: Sat, 14 Apr 2007 12:30:58 +0000 Subject: [PATCH] geocoder controller - handles geocoding --- app/controllers/geocoder_controller.rb | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 app/controllers/geocoder_controller.rb diff --git a/app/controllers/geocoder_controller.rb b/app/controllers/geocoder_controller.rb new file mode 100644 index 000000000..d25a5fa65 --- /dev/null +++ b/app/controllers/geocoder_controller.rb @@ -0,0 +1,36 @@ +class GeocoderController < ApplicationController + + require 'net/http' + require 'rexml/document' + + def search + @res_hash = {} + @postcode_arr = [] + +=begin if params[:geocode][:place] + postcode = params[:geocode][:place] + Net::HTTP.start('ws.geonames.org') do |http| + res = http.get("/search?q=#{query}&maxRows=10") + xml = REXML::Document.new(res.body) + xml.elements.each("/geonames/geoname") do |ele| + ele.elements.each("name"){ |n| @res_hash['name'] = n.text } + ele.elements.each("countryCode"){ |n| @res_hash['country'] = n.text } + ele.elements.each("lat"){ |n| @res_hash['lat'] = n.text } + ele.elements.each("lng"){ |n| @res_hash['lon']= n.text } + end + end + end +=end + + if params[:query][:postcode] + postcode = params[:query][:postcode] + Net::HTTP.start('www.freethepostcode.org') do |http| + resp = http.get("/geocode?postcode=#{postcode}") + lat = resp.body.scan(/[4-6][0-9]\.?[0-9]+/) + lon = resp.body.scan(/[-+][0-9]\.?[0-9]+/) + @postcode_array = [lat, lon] + end + redirect_to "/index.html?lat=#{@postcode_array[0]}&lon=#{@postcode_array[1]}&zoom=14" + end + end +end -- 2.39.5