lib/geokit/geo_loc.rb in geokit-1.9.0 vs lib/geokit/geo_loc.rb in geokit-1.10.0
- old
+ new
@@ -31,11 +31,12 @@
:neighborhood
# Attributes set upon return from geocoding. Success will be true for
# successful geocode lookups. The provider will be set to the name of the
# providing geocoder. Finally, precision is an indicator of the accuracy of
# the geocoding.
- attr_accessor :success, :provider, :precision, :suggested_bounds
+ attr_accessor :success, :provider, :precision, :suggested_bounds, :place_id,
+ :formatted_address
# accuracy is set for Yahoo and Google geocoders, it is a numeric value of
# the precision. see
# http://code.google.com/apis/maps/documentation/geocoding/#GeocodingAccuracy
attr_accessor :accuracy
# FCC Attributes
@@ -55,22 +56,22 @@
@state_name = h[:state_name]
@zip = h[:zip]
@country_code = h[:country_code]
@province = h[:province]
@success = false
- @precision = 'unknown'
+ @precision = "unknown"
@full_address = nil
super(h[:lat], h[:lng])
end
def state
@state || @state_code || @state_name
end
# Returns true if geocoded to the United States.
def is_us?
- country_code == 'US'
+ country_code == "US"
end
def success?
success == true
end
@@ -92,30 +93,35 @@
def street_name
@street_name ||= street_address[street_number.length, street_address.length].strip if street_address
@street_name
end
+ # Returns Google-supplied normalized address string or concatenation of address parts
+ def formatted_address
+ @formatted_address ||= full_address
+ end
+
# gives you all the important fields as key-value pairs
def hash
res = {}
fields = [:success, :lat, :lng, :country_code, :city, :state, :zip,
:street_address, :province, :district, :provider, :full_address, :is_us?,
:ll, :precision, :district_fips, :state_fips, :block_fips, :sub_premise]
fields.each { |s| res[s] = send(s.to_s) }
res
end
- alias to_hash hash
+ alias_method :to_hash, :hash
# Sets the city after capitalizing each word within the city name.
def city=(city)
@city = Geokit::Inflector.titleize(city) if city
end
# Sets the street address after capitalizing each word within the street
# address.
def street_address=(address)
- @street_address = if address && provider != 'google'
+ @street_address = if address && provider != "google"
Geokit::Inflector.titleize(address)
else
address
end
end
@@ -123,16 +129,16 @@
# Returns a comma-delimited string consisting of the street address, city,
# state, zip, and country code. Only includes those attributes that are
# non-blank.
def to_geocodeable_s
a = [street_address, district, city, province, state, zip, country_code].compact
- a.delete_if { |e| !e || e == '' }
- a.join(', ')
+ a.delete_if { |e| !e || e == "" }
+ a.join(", ")
end
def to_yaml_properties
- (instance_variables - ['@all', :@all]).sort
+ (instance_variables - ["@all", :@all]).sort
end
def encode_with(coder)
to_yaml_properties.each do |name|
coder[name[1..-1].to_s] = instance_variable_get(name.to_s)
@@ -147,10 +153,10 @@
"State: #{state}",
"Zip: #{zip}",
"Latitude: #{lat}",
"Longitude: #{lng}",
"Country: #{country_code}",
- "Success: #{success}"
+ "Success: #{success}",
].join("\n")
end
end
end