now you can search openstreetmap.org/postcode/wc1e6bt

This commit is contained in:
Nick Black 2007-05-01 23:31:44 +00:00
parent a4f4714d0e
commit bc01da3ef9

View file

@ -5,12 +5,34 @@ class GeocoderController < ApplicationController
require 'rexml/document'
def search
@postcode_arr = []
if params[:postcode]
unless params[:postcode].empty?
postcode = params[:postcode]
check_postcode(postcode)
return
end
end
if params[:query][:postcode]
unless params[:query][:postcode].empty?
postcode = params[:query][:postcode].upcase
postcode =params[:query][:postcode]
check_postcode(postcode)
return
end
end
if params[:query][:place_name]
@place_name = params[:query][:place_name]
redirect_to :controller => 'geocoder', :action => 'results', :params => {:place_name => @place_name}
end
end
def check_postcode(p)
@postcode_arr = []
postcode = p.upcase
escaped_postcode = postcode.sub(/\s/,'%20')
begin
if postcode.match(/(^\d{5}$)|(^\d{5}-\d{4}$)/)
# Its a zip code - ask geocoder.us
# (They have a non commerical use api)
@ -90,11 +112,9 @@ class GeocoderController < ApplicationController
redirect_to "/index.html?error=unknown_postcode_or_zip"
return
end
end
if params[:query][:place_name]
@place_name = params[:query][:place_name]
redirect_to :controller => 'geocoder', :action => 'results', :params => {:place_name => @place_name}
rescue
#Its likely that an api is down
redirect_to "/index.html?error=api_dpwn"
end
end