Module: Gemish

Defined in:
lib/gemish.rb

Instance Method Summary collapse

Instance Method Details

#geocode(place, sensor = false) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/gemish.rb', line 13

def geocode(place, sensor = false)
  results = geocoder_parse_results("?address=#{URI.encode(place)}&sensor=#{sensor}")
  
  location = results.fetch("geometry").fetch("location")
  lat = location.fetch("lat") # print lang sa ta
  lng = location.fetch("lng") # print lang sa ta
  coordinate = [lat, lng]
  rescue 
    nil
end

#geocoder_parse_results(url) ⇒ Object



6
7
8
9
10
11
# File 'lib/gemish.rb', line 6

def geocoder_parse_results(url)
  base_url = "http://maps.googleapis.com/maps/api/geocode/json"
  response = Net::HTTP.get_response(URI.parse(base_url+url))
  json_result = JSON.parse(response.body)
  json_result.fetch("results")[0]
end

#reverse_geocode(coordinates, sensor = false) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/gemish.rb', line 24

def reverse_geocode(coordinates, sensor = false)
  lat, lng = coordinates
  
  results = geocoder_parse_results("?latlng=#{lat},#{lng}&sensor=#{sensor}")
  address = results.fetch("formatted_address")  # print lang sa ta
  rescue 
    nil
end