Move geocoder constants to application configuration to avoid test warnings.
This commit is contained in:
parent
d58d7e30ea
commit
f7cbff9a5a
2 changed files with 10 additions and 7 deletions
|
@ -3,9 +3,6 @@ class GeocoderController < ApplicationController
|
||||||
require 'net/http'
|
require 'net/http'
|
||||||
require 'rexml/document'
|
require 'rexml/document'
|
||||||
|
|
||||||
POSTCODE_ZOOM = 15
|
|
||||||
GEONAMES_ZOOM = 12
|
|
||||||
|
|
||||||
def search
|
def search
|
||||||
query = params[:query]
|
query = params[:query]
|
||||||
results = Array.new
|
results = Array.new
|
||||||
|
@ -64,7 +61,8 @@ private
|
||||||
# parse the response
|
# parse the response
|
||||||
unless response.match(/couldn't find this zip/)
|
unless response.match(/couldn't find this zip/)
|
||||||
data = response.split(/\s*,\s+/) # lat,long,town,state,zip
|
data = response.split(/\s*,\s+/) # lat,long,town,state,zip
|
||||||
results.push({:lat => data[0], :lon => data[1], :zoom => POSTCODE_ZOOM,
|
results.push({:lat => data[0], :lon => data[1],
|
||||||
|
:zoom => APP_CONFIG['postcode_zoom'],
|
||||||
:prefix => "#{data[2]}, #{data[3]}, ",
|
:prefix => "#{data[2]}, #{data[3]}, ",
|
||||||
:name => data[4]})
|
:name => data[4]})
|
||||||
end
|
end
|
||||||
|
@ -85,7 +83,7 @@ private
|
||||||
dataline = response.split(/\n/)[1]
|
dataline = response.split(/\n/)[1]
|
||||||
data = dataline.split(/,/) # easting,northing,postcode,lat,long
|
data = dataline.split(/,/) # easting,northing,postcode,lat,long
|
||||||
postcode = data[2].gsub(/'/, "")
|
postcode = data[2].gsub(/'/, "")
|
||||||
zoom = POSTCODE_ZOOM - postcode.count("#")
|
zoom = APP_CONFIG['postcode_zoom'] - postcode.count("#")
|
||||||
results.push({:lat => data[3], :lon => data[4], :zoom => zoom,
|
results.push({:lat => data[3], :lon => data[4], :zoom => zoom,
|
||||||
:name => postcode})
|
:name => postcode})
|
||||||
end
|
end
|
||||||
|
@ -105,7 +103,7 @@ private
|
||||||
if response.get_elements("geodata/error").empty?
|
if response.get_elements("geodata/error").empty?
|
||||||
results.push({:lat => response.get_text("geodata/latt").to_s,
|
results.push({:lat => response.get_text("geodata/latt").to_s,
|
||||||
:lon => response.get_text("geodata/longt").to_s,
|
:lon => response.get_text("geodata/longt").to_s,
|
||||||
:zoom => POSTCODE_ZOOM,
|
:zoom => APP_CONFIG['postcode_zoom'],
|
||||||
:name => query.upcase})
|
:name => query.upcase})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -199,7 +197,8 @@ private
|
||||||
lon = geoname.get_text("lng").to_s
|
lon = geoname.get_text("lng").to_s
|
||||||
name = geoname.get_text("name").to_s
|
name = geoname.get_text("name").to_s
|
||||||
country = geoname.get_text("countryName").to_s
|
country = geoname.get_text("countryName").to_s
|
||||||
results.push({:lat => lat, :lon => lon, :zoom => GEONAMES_ZOOM,
|
results.push({:lat => lat, :lon => lon,
|
||||||
|
:zoom => APP_CONFIG['geonames_zoom'],
|
||||||
:name => name,
|
:name => name,
|
||||||
:suffix => ", #{country}"})
|
:suffix => ", #{country}"})
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,6 +7,10 @@ standard_settings: &standard_settings
|
||||||
max_number_of_nodes: 50000
|
max_number_of_nodes: 50000
|
||||||
# Maximum number of nodes that can be in a way (checked on save)
|
# Maximum number of nodes that can be in a way (checked on save)
|
||||||
max_number_of_way_nodes: 2000
|
max_number_of_way_nodes: 2000
|
||||||
|
# Zoom level to use for postcode results from the geocoder
|
||||||
|
postcode_zoom: 15
|
||||||
|
# Zoom level to use for geonames results from the geocoder
|
||||||
|
geonames_zoom: 12
|
||||||
|
|
||||||
development:
|
development:
|
||||||
<<: *standard_settings
|
<<: *standard_settings
|
||||||
|
|
Loading…
Add table
Reference in a new issue