Class: GeocoderSimple

Inherits:
Object
  • Object
show all
Defined in:
lib/geocoder_simple.rb,
lib/geocoder_simple/version.rb

Constant Summary collapse

VERSION =
"0.1.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(address = nil) ⇒ GeocoderSimple

Returns a new instance of GeocoderSimple.



10
11
12
13
14
15
# File 'lib/geocoder_simple.rb', line 10

def initialize(address = nil)
  @address = address
  @lng = nil
  @lat = nil
  get_lng_and_lat(@address)
end

Instance Attribute Details

#latObject (readonly)

Returns the value of attribute lat.



8
9
10
# File 'lib/geocoder_simple.rb', line 8

def lat
  @lat
end

#lngObject (readonly)

Returns the value of attribute lng.



7
8
9
# File 'lib/geocoder_simple.rb', line 7

def lng
  @lng
end

Instance Method Details

#addressObject



17
18
19
# File 'lib/geocoder_simple.rb', line 17

def address
  @address
end

#address=(address) ⇒ Object



21
22
23
24
# File 'lib/geocoder_simple.rb', line 21

def address=(address)
  @address = address
  get_lng_and_lat(@address)
end

#get_lng_and_lat(address) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/geocoder_simple.rb', line 26

def get_lng_and_lat(address)
  if !address.to_s.empty?
    url = URI.parse(URI.escape("http://maps.google.com/maps/api/geocode/json?&address=\"#{address}\"&sensor=false"))
    json = Net::HTTP.get(url)
    data = JSON.parse(json)
    @lng = data['results'][0]['geometry']['location']['lng']
    @lat = data['results'][0]['geometry']['location']['lat']
  end
end