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