class Geocoder::Result::Photon

Public Instance Methods

address(_format = :full) click to toggle source
# File lib/geocoder/results/photon.rb, line 9
def address(_format = :full)
  parts = []
  parts << name if name
  parts << street_address if street_address
  parts << city
  parts << state if state
  parts << postal_code
  parts << country

  parts.join(', ')
end
bounds() click to toggle source
# File lib/geocoder/results/photon.rb, line 73
def bounds
  properties['extent']
end
city() click to toggle source
# File lib/geocoder/results/photon.rb, line 40
def city
  properties['city']
end
coordinates() click to toggle source
# File lib/geocoder/results/photon.rb, line 60
def coordinates
  return unless geometry
  return unless geometry[:coordinates]

  geometry[:coordinates].reverse
end
country() click to toggle source
# File lib/geocoder/results/photon.rb, line 52
def country
  properties['country']
end
country_code() click to toggle source
# File lib/geocoder/results/photon.rb, line 56
def country_code
  ''
end
geometry() click to toggle source
# File lib/geocoder/results/photon.rb, line 67
def geometry
  return unless data['geometry']

  symbol_hash data['geometry']
end
house_number() click to toggle source
# File lib/geocoder/results/photon.rb, line 28
def house_number
  properties['housenumber']
end
name() click to toggle source
# File lib/geocoder/results/photon.rb, line 5
def name
  properties['name']
end
osm_id() click to toggle source
# File lib/geocoder/results/photon.rb, line 91
def osm_id
  properties['osm_id']
end
osm_tag() click to toggle source

See: wiki.openstreetmap.org/wiki/Tags

# File lib/geocoder/results/photon.rb, line 96
def osm_tag
  return unless properties['osm_key']
  return properties['osm_key'] unless properties['osm_value']

  "#{properties['osm_key']}=#{properties['osm_value']}"
end
postal_code() click to toggle source
# File lib/geocoder/results/photon.rb, line 36
def postal_code
  properties['postcode']
end
state() click to toggle source
# File lib/geocoder/results/photon.rb, line 44
def state
  properties['state']
end
state_code() click to toggle source
# File lib/geocoder/results/photon.rb, line 48
def state_code
  ''
end
street() click to toggle source
# File lib/geocoder/results/photon.rb, line 32
def street
  properties['street']
end
street_address() click to toggle source
# File lib/geocoder/results/photon.rb, line 21
def street_address
  return unless street
  return street unless house_number

  "#{house_number} #{street}"
end
type() click to toggle source

Type of the result (OSM object type), one of:

:node
:way
:relation
# File lib/geocoder/results/photon.rb, line 83
def type
  {
    'N' => :node,
    'W' => :way,
    'R' => :relation
  }[properties['osm_type']]
end

Private Instance Methods

properties() click to toggle source
# File lib/geocoder/results/photon.rb, line 105
def properties
  @properties ||= data['properties'] || {}
end
symbol_hash(orig_hash) click to toggle source
# File lib/geocoder/results/photon.rb, line 109
def symbol_hash(orig_hash)
  {}.tap do |result|
    orig_hash.each_key do |key|
      next unless orig_hash[key]

      result[key.to_sym] = orig_hash[key]
    end
  end
end