Restore raw latlon search result
This commit is contained in:
parent
3e985f3ab9
commit
5835350879
4 changed files with 38 additions and 13 deletions
|
@ -13,6 +13,7 @@ class GeocoderController < ApplicationController
|
||||||
|
|
||||||
@sources = []
|
@sources = []
|
||||||
if params[:lat] && params[:lon]
|
if params[:lat] && params[:lon]
|
||||||
|
@sources.push "latlon"
|
||||||
@sources.push "osm_nominatim_reverse"
|
@sources.push "osm_nominatim_reverse"
|
||||||
@sources.push "geonames_reverse"
|
@sources.push "geonames_reverse"
|
||||||
elsif params[:query].match(/^\d{5}(-\d{4})?$/)
|
elsif params[:query].match(/^\d{5}(-\d{4})?$/)
|
||||||
|
@ -30,6 +31,24 @@ class GeocoderController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def search_latlon
|
||||||
|
lat = params[:lat].to_f
|
||||||
|
lon = params[:lon].to_f
|
||||||
|
if lat < -90 or lat > 90
|
||||||
|
@error = "Latitude #{lat} out of range"
|
||||||
|
render :action => "error"
|
||||||
|
elsif lon < -180 or lon > 180
|
||||||
|
@error = "Longitude #{lon} out of range"
|
||||||
|
render :action => "error"
|
||||||
|
else
|
||||||
|
@results = [{:lat => lat, :lon => lon,
|
||||||
|
:zoom => params[:zoom],
|
||||||
|
:name => "#{lat}, #{lon}"}]
|
||||||
|
|
||||||
|
render :action => "results"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def search_us_postcode
|
def search_us_postcode
|
||||||
# get query parameters
|
# get query parameters
|
||||||
query = params[:query]
|
query = params[:query]
|
||||||
|
|
|
@ -462,6 +462,7 @@ en:
|
||||||
geocoder:
|
geocoder:
|
||||||
search:
|
search:
|
||||||
title:
|
title:
|
||||||
|
latlon: 'Results from <a href="http://openstreetmap.org/">Internal</a>'
|
||||||
us_postcode: 'Results from <a href="http://geocoder.us/">Geocoder.us</a>'
|
us_postcode: 'Results from <a href="http://geocoder.us/">Geocoder.us</a>'
|
||||||
uk_postcode: 'Results from <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>'
|
uk_postcode: 'Results from <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>'
|
||||||
ca_postcode: 'Results from <a href="http://geocoder.ca/">Geocoder.CA</a>'
|
ca_postcode: 'Results from <a href="http://geocoder.ca/">Geocoder.CA</a>'
|
||||||
|
|
|
@ -214,6 +214,7 @@ OpenStreetMap::Application.routes.draw do
|
||||||
|
|
||||||
# geocoder
|
# geocoder
|
||||||
match '/geocoder/search' => 'geocoder#search', :via => :post
|
match '/geocoder/search' => 'geocoder#search', :via => :post
|
||||||
|
match '/geocoder/search_latlon' => 'geocoder#search_latlon', :via => :get
|
||||||
match '/geocoder/search_us_postcode' => 'geocoder#search_us_postcode', :via => :get
|
match '/geocoder/search_us_postcode' => 'geocoder#search_us_postcode', :via => :get
|
||||||
match '/geocoder/search_uk_postcode' => 'geocoder#search_uk_postcode', :via => :get
|
match '/geocoder/search_uk_postcode' => 'geocoder#search_uk_postcode', :via => :get
|
||||||
match '/geocoder/search_ca_postcode' => 'geocoder#search_ca_postcode', :via => :get
|
match '/geocoder/search_ca_postcode' => 'geocoder#search_ca_postcode', :via => :get
|
||||||
|
|
|
@ -11,6 +11,10 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
{ :path => "/geocoder/search", :method => :post },
|
{ :path => "/geocoder/search", :method => :post },
|
||||||
{ :controller => "geocoder", :action => "search" }
|
{ :controller => "geocoder", :action => "search" }
|
||||||
)
|
)
|
||||||
|
assert_routing(
|
||||||
|
{ :path => "/geocoder/search_latlon", :method => :get },
|
||||||
|
{ :controller => "geocoder", :action => "search_latlon" }
|
||||||
|
)
|
||||||
assert_routing(
|
assert_routing(
|
||||||
{ :path => "/geocoder/search_us_postcode", :method => :get },
|
{ :path => "/geocoder/search_us_postcode", :method => :get },
|
||||||
{ :controller => "geocoder", :action => "search_us_postcode" }
|
{ :controller => "geocoder", :action => "search_us_postcode" }
|
||||||
|
@ -52,7 +56,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta 50.06773, @controller.params[:lat]
|
assert_in_delta 50.06773, @controller.params[:lat]
|
||||||
assert_in_delta 14.37742, @controller.params[:lon]
|
assert_in_delta 14.37742, @controller.params[:lon]
|
||||||
|
@ -70,7 +74,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta 50.06773, @controller.params[:lat]
|
assert_in_delta 50.06773, @controller.params[:lat]
|
||||||
assert_in_delta 14.37742, @controller.params[:lon]
|
assert_in_delta 14.37742, @controller.params[:lon]
|
||||||
|
@ -88,7 +92,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta 50.06773, @controller.params[:lat]
|
assert_in_delta 50.06773, @controller.params[:lat]
|
||||||
assert_in_delta -14.37742, @controller.params[:lon]
|
assert_in_delta -14.37742, @controller.params[:lon]
|
||||||
|
@ -106,7 +110,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta -50.06773, @controller.params[:lat]
|
assert_in_delta -50.06773, @controller.params[:lat]
|
||||||
assert_in_delta 14.37742, @controller.params[:lon]
|
assert_in_delta 14.37742, @controller.params[:lon]
|
||||||
|
@ -124,7 +128,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta -50.06773, @controller.params[:lat]
|
assert_in_delta -50.06773, @controller.params[:lat]
|
||||||
assert_in_delta -14.37742, @controller.params[:lon]
|
assert_in_delta -14.37742, @controller.params[:lon]
|
||||||
|
@ -145,7 +149,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta 50.06773, @controller.params[:lat]
|
assert_in_delta 50.06773, @controller.params[:lat]
|
||||||
assert_in_delta 14.37742, @controller.params[:lon]
|
assert_in_delta 14.37742, @controller.params[:lon]
|
||||||
|
@ -166,7 +170,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta 50.06773, @controller.params[:lat]
|
assert_in_delta 50.06773, @controller.params[:lat]
|
||||||
assert_in_delta -14.37742, @controller.params[:lon]
|
assert_in_delta -14.37742, @controller.params[:lon]
|
||||||
|
@ -187,7 +191,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta -50.06773, @controller.params[:lat]
|
assert_in_delta -50.06773, @controller.params[:lat]
|
||||||
assert_in_delta 14.37742, @controller.params[:lon]
|
assert_in_delta 14.37742, @controller.params[:lon]
|
||||||
|
@ -208,7 +212,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta -50.06773, @controller.params[:lat]
|
assert_in_delta -50.06773, @controller.params[:lat]
|
||||||
assert_in_delta -14.37742, @controller.params[:lon]
|
assert_in_delta -14.37742, @controller.params[:lon]
|
||||||
|
@ -228,7 +232,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta 50.06773, @controller.params[:lat]
|
assert_in_delta 50.06773, @controller.params[:lat]
|
||||||
assert_in_delta 14.37742, @controller.params[:lon]
|
assert_in_delta 14.37742, @controller.params[:lon]
|
||||||
|
@ -248,7 +252,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta 50.06773, @controller.params[:lat]
|
assert_in_delta 50.06773, @controller.params[:lat]
|
||||||
assert_in_delta -14.37742, @controller.params[:lon]
|
assert_in_delta -14.37742, @controller.params[:lon]
|
||||||
|
@ -268,7 +272,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta -50.06773, @controller.params[:lat]
|
assert_in_delta -50.06773, @controller.params[:lat]
|
||||||
assert_in_delta 14.37742, @controller.params[:lon]
|
assert_in_delta 14.37742, @controller.params[:lon]
|
||||||
|
@ -288,7 +292,7 @@ class GeocoderControllerTest < ActionController::TestCase
|
||||||
].each do |code|
|
].each do |code|
|
||||||
post :search, :query => code
|
post :search, :query => code
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_equal ['osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
|
||||||
assert_nil @controller.params[:query]
|
assert_nil @controller.params[:query]
|
||||||
assert_in_delta -50.06773, @controller.params[:lat]
|
assert_in_delta -50.06773, @controller.params[:lat]
|
||||||
assert_in_delta -14.37742, @controller.params[:lon]
|
assert_in_delta -14.37742, @controller.params[:lon]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue