geeo_code 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/geeo_code/version.rb +2 -1
- data/lib/geeo_code.rb +34 -6
- metadata +2 -2
data/lib/geeo_code/version.rb
CHANGED
data/lib/geeo_code.rb
CHANGED
@@ -3,7 +3,22 @@ require 'open-uri'
|
|
3
3
|
require 'cgi'
|
4
4
|
|
5
5
|
require 'geeo_code/version'
|
6
|
-
|
6
|
+
# GeeoCode is a super simple reverse geocoding wrapper for the Google geocoding apis.
|
7
|
+
#
|
8
|
+
# Currently it only supports the JSON encoding, but this will probably change in the future
|
9
|
+
# in case, for whatever reason, people would rather have it fetched via XML. It really shouln't
|
10
|
+
# make any difference since all you get back is a hash of the values.
|
11
|
+
#
|
12
|
+
# There is only one method you really need to worry about is reverse. This simply takes an address
|
13
|
+
# and returns the reverse geocoded data.
|
14
|
+
#
|
15
|
+
# Simple example:
|
16
|
+
#
|
17
|
+
# coder = Geeocode.new
|
18
|
+
# coder.reverse("6 Woodward Ave, Hilton Head Island, SC")
|
19
|
+
#
|
20
|
+
# Will return the geocode info for the given address.
|
21
|
+
#
|
7
22
|
class GeeoCode
|
8
23
|
GOOGLE_ENDPOINT = "http://maps.googleapis.com/maps/api/geocode/".freeze
|
9
24
|
|
@@ -11,14 +26,27 @@ class GeeoCode
|
|
11
26
|
|
12
27
|
attr_accessor *VALID_OPTIONS
|
13
28
|
|
14
|
-
|
29
|
+
# Valid options are
|
30
|
+
# :proxy => true|false
|
31
|
+
# :sensor => true|false
|
32
|
+
# :format => "json"|"xml"
|
33
|
+
#
|
34
|
+
# The proxy lets you ignore any environmental `http_proxy` settings.
|
35
|
+
# The sensor alerts google to whether or not this is a gps enabled device.
|
36
|
+
# The format specifies whether or not we want the results to be parsed from JSON or XML.
|
37
|
+
#
|
38
|
+
def initialize( args={} )
|
39
|
+
options = {:proxy => false, :sensor => false, :format => 'json' }
|
40
|
+
options.merge! args
|
15
41
|
options.map {|k,v| send("#{k}=".to_sym, v)}
|
16
42
|
end
|
17
43
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
44
|
+
# Takes an address, returns a hash with the following:
|
45
|
+
#
|
46
|
+
# :address => The address info
|
47
|
+
# :geometry => Geometry info (lat/long, etc.)
|
48
|
+
# :match_type => "Exact or partial match.
|
49
|
+
#
|
22
50
|
def reverse(address)
|
23
51
|
begin
|
24
52
|
url = URI.parse("#{GOOGLE_ENDPOINT}#{format}?address=#{CGI::escape(address)}&sensor=#{sensor}")
|