class Geokit::Geocoders::IpApiGeocoder

Provides geocoding based upon an IP address. The underlying web service is ip-api.com

Private Class Methods

do_geocode(ip, _=nil) click to toggle source
# File lib/geokit/geocoders/ip_api_geocoder.rb, line 7
def self.do_geocode(ip, _=nil)
  process :json, ip
end
parse_json(result) click to toggle source
# File lib/geokit/geocoders/ip_api_geocoder.rb, line 15
def self.parse_json(result)
  loc = new_loc
  return loc unless result['status'] == 'success'

  loc.success = true
  loc.city = result['city']
  loc.state = result['region']
  loc.state_name = result['regionName']
  loc.zip = result['zip']
  loc.lat = result['lat']
  loc.lng = result['lon']
  loc.country_code = result['countryCode']
  loc
end
submit_url(ip) click to toggle source
# File lib/geokit/geocoders/ip_api_geocoder.rb, line 11
def self.submit_url(ip)
  "http://ip-api.com/json/#{ip}"
end