lib/geokit/geocoders.rb in geokit-premier-0.0.5 vs lib/geokit/geocoders.rb in geokit-premier-0.0.7

- old
+ new

@@ -43,13 +43,11 @@ return $+.downcase end def url_escape(s) - s.gsub(/([^ a-zA-Z0-9_.-]+)/nu) do - '%' + $1.unpack('H2' * $1.size).join('%').upcase - end.tr(' ', '+') + URI.escape(s) end def camelize(str) str.split('_').map {|w| w.capitalize}.join end @@ -597,11 +595,11 @@ # Geokit::Geocoders::GoogleGeocoder.geocode('Winnetka', :bias => bounds).state # => 'CA' def self.do_geocode(address, options = {}) res = res = self.call_geocoder_service(self.geocode_url(address,options)) return GeoLoc.new if !res.is_a?(Net::HTTPSuccess) json = res.body - logger.debug "Google geocoding. Address: #{address}. Result: #{json}" +# logger.debug "Google geocoding. Address: #{address}. Result: #{json}" return self.json2GeoLoc(json, address) end # Determine the Google API url based on the google api key, or based on the client / private key for premier users def self.geocode_url(address,options = {}) @@ -705,18 +703,20 @@ end res.lat=addr['geometry']['location']['lat'].to_f res.lng=addr['geometry']['location']['lng'].to_f - ne=Geokit::LatLng.new( - addr['geometry']['viewport']['northeast']['lat'].to_f, - addr['geometry']['viewport']['northeast']['lng'].to_f + if addr['geometry'].include?('viewport') + ne=Geokit::LatLng.new( + addr['geometry']['viewport']['northeast']['lat'].to_f, + addr['geometry']['viewport']['northeast']['lng'].to_f + ) + sw=Geokit::LatLng.new( + addr['geometry']['viewport']['southwest']['lat'].to_f, + addr['geometry']['viewport']['southwest']['lng'].to_f ) - sw=Geokit::LatLng.new( - addr['geometry']['viewport']['southwest']['lat'].to_f, - addr['geometry']['viewport']['southwest']['lng'].to_f - ) - res.suggested_bounds = Geokit::Bounds.new(sw,ne) + res.suggested_bounds = Geokit::Bounds.new(sw,ne) + end if ret ret.all.push(res) else ret=res