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" => http_accept_language.user_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)