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]}" }]