1 # frozen_string_literal: true
4 class LatlonQueriesController < QueriesController
6 lat = params[:lat].to_f
7 lon = params[:lon].to_f
9 if params[:latlon_digits]
10 # We've got two nondescript numbers for a query, which can mean both "lat, lon" or "lon, lat".
13 if lat.between?(-90, 90) && lon.between?(-180, 180)
14 @results.push(:lat => params[:lat], :lon => params[:lon],
15 :zoom => params[:zoom],
16 :name => "#{params[:lat]}, #{params[:lon]}")
19 if lon.between?(-90, 90) && lat.between?(-180, 180)
20 @results.push(:lat => params[:lon], :lon => params[:lat],
21 :zoom => params[:zoom],
22 :name => "#{params[:lon]}, #{params[:lat]}")
26 @error = "Latitude or longitude are out of range"
27 render :action => "error"
30 # Coordinates in a query have come with markers for latitude and longitude.
31 if !lat.between?(-90, 90)
32 @error = "Latitude #{lat} out of range"
33 render :action => "error"
34 elsif !lon.between?(-180, 180)
35 @error = "Longitude #{lon} out of range"
36 render :action => "error"
38 @results = [{ :lat => params[:lat], :lon => params[:lon],
39 :zoom => params[:zoom],
40 :name => "#{params[:lat]}, #{params[:lon]}" }]