class Nominatim::Search

Attributes

criteria[R]

Public Class Methods

new() click to toggle source
# File lib/nominatim/search.rb, line 6
def initialize
  @criteria = {}
end

Public Instance Methods

address_details(bool) click to toggle source

Include a breakdown of the address into elements.

@param bool [true, false] @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 125
def address_details(bool)
  @criteria[:addressdetails] = bool ? 1 : 0
  self
end
bounded(bool) click to toggle source

Restrict the results to only items contained with the bounding box.

@param bool [true, false] @see wiki.openstreetmap.org/wiki/Nominatim @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 107
def bounded(bool)
  @criteria[:bounded] = bool ? 1 : 0
  self
end
city(city) click to toggle source

City string to search for.

@param city [String] city string @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 38
def city(city)
  @criteria[:city] = city
  self
end
country(country) click to toggle source

Country string to search for.

@param country [String] country string @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 65
def country(country)
  @criteria[:country] = country
  self
end
country_codes(codes) click to toggle source

Limit search results to a specific country (or a list of countries).

@param codes [Array<String>, String] @see wiki.openstreetmap.org/wiki/Nominatim @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 84
def country_codes(codes)
  if codes.instance_of? Array
    @criteria[:countrycodes] = codes.join(',')
  else
    @criteria[:countrycodes] = codes
  end
  self
end
county(county) click to toggle source

County string to search for.

@param county [String] county string @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 47
def county(county)
  @criteria[:county] = county
  self
end
each(&block) click to toggle source

Iterates over the search results.

# File lib/nominatim/search.rb, line 11
def each(&block)
  @results ||= get(Nominatim.config.search_url, @criteria).body.map! { |attrs| Nominatim::Place.new(attrs) }
  @results.each(&block)
end
exclude_place_ids(ids) click to toggle source

Exclude given place ids from the search result.

@param ids [Array<String>, String] Place ids @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 134
def exclude_place_ids(ids)
  if ids.instance_of? Array
    @criteria[:exclude_place_ids] = ids.join(',')
  else
    @criteria[:exclude_place_ids] = ids
  end
  self
end
featuretype(type) click to toggle source

Limit results to certain type, instead of trying to match all possible matches.

Possible values:

  • settlement

  • country

  • city

  • state

This feature is not in official Nominatim documentation.

@param type Type to restrict to @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 165
def featuretype(type)
  @criteria[:featuretype] = type
  self
end
limit(limit) click to toggle source

Limit the number of returned results.

@param limit [Integer] @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 147
def limit(limit)
  @criteria[:limit] = limit
  self
end
polygon(bool) click to toggle source

Output polygon outlines for items found.

@param bool [true, false] @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 116
def polygon(bool)
  @criteria[:polygon] = bool ? 1 : 0
  self
end
postalcode(postalcode) click to toggle source

Postal code string to search for.

@param postalcode [String] postalcode string @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 74
def postalcode(postalcode)
  @criteria[:postalcode] = postalcode
  self
end
query(q) click to toggle source

Query string to search for.

@param q [String] Query string @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 20
def query(q)
  @criteria[:q] = q
  self
end
state(state) click to toggle source

State string to search for.

@param state [String] state string @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 56
def state(state)
  @criteria[:state] = state
  self
end
street(street) click to toggle source

Street string to search for.

@param street [String] Street string @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 29
def street(street)
  @criteria[:street] = street
  self
end
viewbox(viewbox) click to toggle source

The preferred area to find search results.

@param viewbox [Array<String>] @return [Nominatim::Search]

# File lib/nominatim/search.rb, line 97
def viewbox(viewbox)
  @criteria[:viewbox] = viewbox.join(',')
  self
end