1 # frozen_string_literal: true
 
   3 module NominatimMethods
 
   4   extend ActiveSupport::Concern
 
   8   def nominatim_url(method, parameters)
 
   9     url = URI.join(Settings.nominatim_url, method)
 
  10     url.query = parameters.merge("accept-language" => preferred_languages.join(",")).to_query
 
  14   def nominatim_query_url(format: nil)
 
  15     # get query parameters
 
  16     query = params[:query]
 
  17     minlon = params[:minlon]
 
  18     minlat = params[:minlat]
 
  19     maxlon = params[:maxlon]
 
  20     maxlat = params[:maxlat]
 
  22     # get nominatim parameters
 
  30     parameters["viewbox"] = "#{minlon},#{maxlat},#{maxlon},#{minlat}" if minlon && minlat && maxlon && maxlat
 
  32     # add any objects to excude
 
  33     parameters["exclude_place_ids"] = params[:exclude] if params[:exclude]
 
  36     nominatim_url("search", parameters)
 
  39   def nominatim_reverse_query_url(format: nil)
 
  40     # get query parameters
 
  45     # get nominatim parameters
 
  54     nominatim_url("reverse", parameters)