Major changes to Geocoder for each release. Please see the Git log for complete list of changes.
- Add support for IPInfo Lite lookup (thanks github.com/iltempo).
- Various minor fixes and improvements.
- Fix bug when working with IPAddr objects (thanks github.com/ledermann and github.com/mattlemx).
- Add support for Azure lookup (thanks github.com/AhlOct).
- Several fixes for Mapbox and Bing lookups (thanks github.com/tmh-dev and github.com/iBlackShadow).
- Add support for IP2Location LITE lookup (thanks github.com/ip2location).
- Add support for PDOK NL lookup (thanks github.com/opensourceame).
- Remove support for Data Science Toolkit lookup (defunct).
- Add support for PC Miler lookup (thanks github.com/alexdean).
- Minor fixes for :maxmind_local, :esri, and :ban_data_gouv_fr lookups.
- Add support for IPBase lookup (thanks github.com/jonallured).
- Test cleanup (thanks github.com/jonallured).
- Prevent errors when existing constant name shadows a lookup class (thanks github.com/avram-twitch).
- Add support for 2GIS lookup (thanks github.com/ggrikgg).
- Change cache configuration structure and add an expiration option. Cache prefix is now set via {cache_options: {prefix: ...}} instead of {cache_prefix: ...}. See README for details.
- Add
:fieldsparameter for :google_places_details and :google_places_search lookups. If you haven't been requesting specific fields, you may start getting different data (defaults are now the APIs' defaults). See for details: #1572 (thanks github.com/czlee). - Update :here lookup to use API version 7. Query options are different, API key must be a string (not an array). See API docs at https://developer.here.com/documentation/geocoding-search-api/api-reference-swagger.html (thanks github.com/Pritilender).
- Avoid lookup naming collisions in some environments.
- Add ability to use app-defined lookups (thanks github.com/januszm).
- Updates to LocationIQ and FreeGeoIP lookups.
- Get rid of unnecessary cache_prefix deprecation warnings.
- Fix uninitialized constant error (occurring on some systems with v1.7.1).
- Various bugfixes and refactorings.
- Add support for Geoapify and Photo lookups (thanks github.com/ahukkanen).
- Add support for IPQualityScore IP lookup (thanks github.com/jamesbebbington).
- Add support for Amazon Location Service lookup (thanks github.com/mplewis).
- Add support for Melissa lookup (thanks github.com/ALacker).
- Drop official support for Ruby 2.0.x and Rails 4.x.
- Add support for Abstract API lookup (thanks github.com/randoum).
- Rescue from exception on cache read/write error. Issue warning instead.
- Fix backward coordinates bug in NationaalregisterNl lookup (thanks github.com/Marthyn).
- Allow removal of single stubs in test mode (thanks github.com/jmmastey).
- Improve results for :ban_data_gouv_fr lookup (thanks github.com/Intrepidd).
- Various updates in response to geocoding API changes.
- Refactor of Google Places Search lookup (thanks github.com/maximilientyc).
- Update URL for :telize lookup (thanks github.com/alexwalling).
- Fix bug parsing IPv6 with port (thanks github.com/gdomingu).
- Add support for :nationaal_georegister_nl lookup (thanks github.com/opensourceame).
- Add support for :uk_ordnance_survey_names lookup (thanks github.com/pezholio).
- Refactor and fix bugs in Yandex lookup (thanks github.com/iarie and stereodenis).
- Sanitize lat/lon values passed to within_bounding_box to prevent SQL injection.
- Drop support for Rails 3.x.
- Add support for :osmnames lookup (thanks github.com/zacviandier).
- Add support for :ipgeolocation IP lookup (thanks github.com/ahsannawaz111).
- Add support for :ipregistry lookup (thanks github.com/ipregistry).
- Various fixes for Yandex lookup.
- Add support for :tencent lookup (thanks github.com/Anders-E).
- Add support for :smarty_streets international API (thanks github.com/ankane).
- Remove :mapzen lookup.
- Drop support for Ruby <2.0.
- Change default street address lookup from :google to :nominatim.
- Cache keys no longer include API credentials. This means many entries in existing cache implementations will be invalidated.
- Test lookup fixtures should now return
coordinatesand NOTlatitude/longitudeattributes (see #1258). This may break some people's tests. - Add support for :ip2location lookup (thanks github.com/ip2location).
- Remove :ovi and :okf lookups.
- Fix regression in :geoip2 lookup.
- Add support for Postcodes.io lookup (thanks github.com/sledge909).
- Change default IP address lookup from :freegeoip to :ipinfo_io.
- Add support for :ipstack lookup (thanks github.com/Heath101).
- Fix incompatibility with redis-rb gem v4.0.
- Allow HTTP protocol for Nominatim.
- Add support for :ipdata_co lookup (thanks github.com/roschaefer).
- Update for Rails 5.2 compatibility (thanks github.com/stevenharman).
- Add support for :pickpoint lookup (thanks github.com/cylon-v).
- Add support for :db_ip_com lookup (thanks github.com/cv).
- Change FreeGeoIP host to freegeoip.net.
- Allow search radius to be a symbol representing a column in DB (thanks github.com/leonelgalan).
- Add support for new parameters and improved error handling for several lookups.
- Fix bug in SQL when searching for objects across 180th meridian.
- Use HTTPS by default for :freegeoip (thanks github.com/mehanoid).
- Add support for :amap lookup (thanks github.com/pzgz).
- Add :google_places_search lookup (thanks github.com/waruboy).
- Fix bug that caused Model.near to return an incorrect query in some cases.
- Add :location_iq lookup (thanks github.com/aleemuddin13 and glsignal).
- Add :ban_data_gouv_fr lookup (thanks github.com/JulianNacci).
- Fix :mapbox results when server returns no context (thanks github.com/jcmuller).
- Deprecate methods in Geocoder::Calculations: to_kilometers, to_miles, to_nautical_miles, mi_in_km, km_in_mi, km_in_nm, nm_in_km.
- Only consider an object geocoded if both lat and lon are present (previously was sufficient to have only one of the two) (thanks github.com/mltsy).
- Add support in :geocodio lookup for Canadian addresses (thanks github.com/bolandrm).
- Add support for SQLite extensions, if present (thanks github.com/stevecj).
- Always include Geocoder in Rack::Request, if defined (thanks github.com/wjordan).
- Fix Ruby 1.9, 2.0 incompatibility (thanks github.com/ebouchut).
- Update SmartyStreets zipcode API endpoint (thanks github.com/jeffects).
- Catch network errors (thanks github.com/sas1ni69).
- Fix Sinatra support broken in 1.3.5.
- Fix Rails 5 ActionDispatch include issue (thanks github.com/alepore).
- Fix bug that caused :esri lookup to ignore certain configured parameters (thanks github.com/aaronpk).
- Add reverse geocoding support to :pelias/:mapzen (thanks github.com/shinyaK14).
- Add support for custom host with :telize (thanks github.com/jwaldrip).
- Change the way :esri lookup generates cache keys for improved performance (thanks github.com/aaronpk).
- Improve HTTPS connections with :google (thanks github.com/jlhonora).
- Update :freegeoip host (old one is down).
- Add IP lookup :ipapi_com (thanks github.com/piotrgorecki).
- Fix incorrect gem version number.
- Remove :yahoo lookup (service was discontinued Mar 31) (thanks github.com/galiat).
- Add support for LatLon.io service (thanks github.com/evanmarks).
- Add support for IpInfo.io service (thanks github.com/rehan, akostyuk).
- Add support for Pelias/Mapzen service (thanks github.com/RealScout).
- Warn about upcoming discontinuation of :yahoo lookup (thanks github.com/galiat).
- Add #viewport method to results that return viewport data (thanks github.com/lime).
- Lazy load lookups to reduce memory footprint (thanks github.com/TrangPham).
- Add :geoportail_lu lookup (Luxembourg only) (thanks github.com/mdebo).
- Maxmind local query performance improvement (thanks github.com/vojtad).
- Remove deprecated Mongo near query methods (please use Mongo-native methods instead).
- Fix bug in :geoip2 lookup (thanks github.com/mromulus).
- Update :telize IP lookup to reflect new URL (thanks github.com/jfredrickson).
- Add reverse geocode rake task (thanks github.com/FanaHOVA).
- Fix reversed coordinates array with Mapbox (thanks github.com/marcusat).
- Fix missing city name in some cases with ESRI (thanks github.com/roybotnik).
- Prevent re-opening of DB file on every read with :geoip2 (thanks github.com/oogali).
- Fix Ruby 1.9.3 incompatibility (remove non-existent timeout classes) (thanks github.com/roychri).
- Fix load issue on Ruby 1.9.3.
- Force Yandex to use HTTPS (thanks github.com/donbobka).
- Force :google to use HTTPS if API key set.
- Fix out-of-the-box verbosity issues (GH #881).
- Improve timeout mechanism and add exception Geocoder::LookupTimeout (thanks github.com/ankane).
- Deprecate .near and #nearbys for MongoDB-backed models.
- Don't cache unsuccessful responses from Bing (thanks github.com/peteb).
- Show API response when not valid JSON.
- Log each API request.
- Force all SmartyStreets requests to use HTTPS.
- Add :maxmind_geoip2 lookup (thanks github.com/TrangPham).
- Add ability to force/specify query type (street or IP address) (thanks github.com/TrangPham).
- Add :basic_auth configuration (thanks github.com/TrangPham).
- Add
safe_locationmethod for Rails controllers (thanks github.com/edslocomb). - Add :logger configuration (thanks github.com/TrangPham).
- Improve error condition handling with Bing (thanks github.com/TrangPham).
- DROP SUPPORT for Ruby 1.9.2.
- Use UTF-8 encoding for maxmind_local results (thanks github.com/ellmo).
- Update freegeoip response handling (thanks github.com/hosamaly).
- Update nominatim response handling (thanks github.com/jsantos).
- Update yandex response handling (thanks github.com/wfleming).
- Update geocodio response handling (thanks github.com/getsidewalk).
- Add ability to raise exception when response parsing fails (thanks github.com/spiderpug).
- Fix double-loading of Railtie (thanks github.com/wfleming and zhouguangming).
- Add :geoip2 lookup (thanks github.com/ChristianHoj).
- Add :okf lookup (thanks github.com/kakoni).
- Add :postcode_anywhere_uk lookup (thanks github.com/rob-murray).
- Properly detect IPv6 addresses (thanks github.com/sethherr and github.com/ignatiusreza).
- Fix bugs in :opencagedata lookup (thanks github.com/duboff and kayakyakr).
- Allow language to be set in model configuration (thanks github.com/viniciusnz).
- Optimize lookup queries when using MaxMind Local (thanks github.com/gersmann).
- Add ability to specify lat/lon column names with .near scope (thanks github.com/switzersc).
- Add OpenCageData geocoder (thanks github.com/mtmail).
- Remove CloudMade geocoder.
- Add Telize IP address lookup (thanks github.com/lukeroberts1990).
- Fix bug in Bing reverse geocoding (thanks github.com/nickelser).
- Add ability to specify language per query (thanks github.com/mkristian).
- Handle Errno::ECONNREFUSED exceptions like TimeoutError exceptions.
- Switch to 'unstructured' query format for Bing API (thanks github.com/lukewendling).
- Fix: correctly handle encoding of MaxMind API responses (thanks github.com/hydrozen, gonzoyumo).
- Fixes to :maxmind_local database structure (thanks github.com/krakatoa).
- DROP SUPPORT for Ruby 1.8.x.
- Add :here lookup (thanks github.com/christoph-buente).
- Add :cloudmade lookup (thanks github.com/spoptchev).
- Add :smarty_streets lookup (thanks github.com/drinks).
- Add :maxmind_local IP lookup (thanks github.com/fernandomm).
- Add :baidu_ip lookup (thanks github.com/yonggu).
- Add :geocodio lookup (thanks github.com/dblock).
- Add :lookup option to
Geocoder.searchandgeocoded_by(thanks github.com/Bonias). - Add support for :maxmind_local on JRuby via jgeoip gem (thanks github.com/gxbe).
- Add support for using :maxmind_local with an SQL database, including Rake tasks for downloading CSV data and populating a local DB.
- Add support for character encodings based on Content-type header (thanks github.com/timaro).
- Add :min_radius option to
nearscope (thanks github.com/phallstrom). - Fix: Yandex city attribute caused exception with certain responses (thanks github.com/dblock).
- Change name of MapQuest config option from :licensed to :open and revert default behavior to be MapQuest data (not OpenStreetMaps).
- Reduce number of Ruby warnings (thanks github.com/exviva).
- DEPRECATED support for Ruby 1.8.x. Will be dropped in a future version.
- Require API key for MapQuest (thanks github.com/robdiciuccio).
- Add support for geocoder.us and HTTP basic auth (thanks github.com/komba).
- Add support for Data Science Toolkit lookup (thanks github.com/ejhayes).
- Add support for Baidu (thanks github.com/mclee).
- Add Geocoder::Calculations.random_point_near method (thanks github.com/adambray).
- Fix: #nearbys method with Mongoid (thanks github.com/pascalbetz).
- Fix: bug in FreeGeoIp lookup that was preventing exception from being raised when configured cache was unavailable.
- Fix bug in ESRI lookup that caused an exception on load in environments without rack/utils.
- Add support for Ovi/Nokia API (thanks github.com/datenimperator).
- Add support for ESRI API (thanks github.com/rpepato).
- Add ability to omit distance and bearing from SQL select clause (thanks github.com/nicolasdespres).
- Add support for caches that use read/write methods (thanks github.com/eskil).
- Add support for nautical miles (thanks github.com/vanboom).
- Fix: bug in parsing of MaxMind responses.
- Fix: bugs in query regular expressions (thanks github.com/boone).
- Fix: various bugs in MaxMind implementation.
- Fix: don't require a key for MapQuest.
- Fix: bug in handling of HTTP_X_FORWARDED_FOR header (thanks github.com/robdimarco).
- Major changes to configuration syntax which allow for API-specific config options. Old config syntax is now DEPRECATED.
- Add support for MaxMind API (thanks github.com/gonzoyumo).
- Add optional Geocoder::InvalidApiKey exception for bad API credentials (Yahoo, Yandex, Bing, and Maxmind). Warn when bad key and exception not set in Geocoder.configure(:always_raise => [...]).
- Add support for X-Real-IP and X-Forwarded-For headers (thanks github.com/konsti).
- Add support for custom Nominatim host config: Geocoder.configure(:nominatim => {:host => "..."}).
- Raise exception when required API key is missing or incorrect format.
- Add support for Google's :region and :components parameters (thanks to github.com/tomlion).
- Fix: string escaping bug in OAuth lib (thanks github.com/m0thman).
- Fix: configured units were not always respected in SQL queries.
- Fix: in #nearbys, don't try to exclude self if not yet persisted.
- Fix: bug with cache stores that provided #delete but not #del.
- Change #nearbys so that it returns nil instead of [] when object is not geocoded.
- Replace support for old Yahoo Placefinder with Yahoo BOSS (thanks github.com/pwoltman).
- Add support for actual Mapquest API (was previously just a proxy for Nominatim), including the paid service (thanks github.com/jedschneider).
- Add support for :select => :id_only option to near scope.
- Treat a given query as blank (don't do a lookup) if coordinates are given but latitude or longitude is nil.
- Speed up 'near' queries by adding bounding box condition (thanks github.com/mlandauer).
- Fix: don't redefine Object#hash in Yahoo result object (thanks github.com/m0thman).
- Deprecate Geocoder::Result::Nominatim#class and #type methods. Use #place_class and #place_type instead.
- Add support for setting arbitrary parameters in geocoding request URL.
- Add support for Google's :bounds parameter (thanks to github.com/rosscooperman and github.com/peterjm for submitting suggestions).
- Add support for :select => :geo_only option to near scope (thanks github.com/gugl).
- Add ability to omit ORDER BY clause from .near scope (pass option :order => false).
- Fix: error on Yahoo lookup due to API change (thanks github.com/kynesun).
- Fix: problem with Mongoid field aliases not being respected.
- Fix: :exclude option to .near scope when primary key != :id (thanks github.com/smisml).
- Much code refactoring (added Geocoder::Query class and Geocoder::Sql module).
- Add support for Mapquest geocoding service (thanks github.com/razorinc).
- Add :test lookup for easy testing of apps using Geocoder (thanks github.com/mguterl).
- Add #precision method to Yandex results (thanks github.com/gemaker).
- Add support for raising :all exceptions (thanks github.com/andyvb).
- Add exceptions for certain Google geocoder responses (thanks github.com/andyvb).
- Add Travis-CI integration (thanks github.com/petergoldstein).
- Fix: unit config was not working with SQLite (thanks github.com/balvig).
- Fix: get tests to pass under Jruby (thanks github.com/petergoldstein).
- Fix: bug in distance_from_sql method (error occurred when coordinates not found).
- Fix: incompatibility with Mongoid 3.0.x (thanks github.com/petergoldstein).
- Add ability to specify default units and distance calculation method (thanks github.com/abravalheri).
- Add new (optional) configuration syntax (thanks github.com/abravalheri).
- Add support for cache stores that provide :get and :set methods.
- Add support for custom HTTP request headers (thanks github.com/robotmay).
- Add Result#cache_hit attribute (thanks github.com/s01ipsist).
- Fix: rake geocode:all wasn't properly loading namespaced classes.
- Fix: properly recognize IP addresses with ::ffff: prefix (thanks github.com/brian-ewell).
- Fix: avoid exception during calculations when coordinates not known (thanks github.com/flori).
- Add distance_from_sql class method to geocoded class (thanks github.com/dwilkie).
- Add OverQueryLimitError and raise when relevant for Google lookup.
- Fix: don't cache API data if response indicates an error.
- Fix: within_bounding_box now uses correct lat/lon DB columns (thanks github.com/kongo).
- Fix: error accessing city in some cases with Yandex result (thanks github.com/kor6n and sld).
- A block passed to geocoded_by is now always executed, even if the geocoding service returns no results. This means you need to make sure you have results before trying to assign data to your object.
- Fix issues with joins and row counts (issues #49, 86, and 108) by not using GROUP BY clause with ActiveRecord scopes.
- Fix incorrect object ID when join used (fixes issue #140).
- Fix calculation of bounding box which spans 180th meridian (thanks github.com/hwuethrich).
- Add within_bounding_box scope for ActiveRecord-based models (thanks github.com/gavinhughes and dbloete).
- Add option to raise Geocoder::OverQueryLimitError for Google geocoding service.
- Add support for Nominatim geocoding service (thanks github.com/wranglerdriver).
- Add support for API key to Geocoder.ca geocoding service (thanks github.com/ryanLonac).
- Add support for state to Yandex results (thanks github.com/tipugin).
- Fix error with
rake assets:precompile(thanks github.com/Sush). - Fix HTTPS support (thanks github.com/rsanheim).
- Improve cache interface.
- Remove klass method from rake task, which could conflict with app methods (thanks github.com/mguterl).
- Add support for Google Premier geocoding service (thanks github.com/steveh).
- Update Google API URL (thanks github.com/soorajb).
- Allow rescue from timeout with FreeGeoIP (thanks github.com/lukeledet).
- Fix: rake assets:precompile (Rails 3.1) not working in some situations.
- Fix: stop double-adjusting units when using kilometers (thanks github.com/hairyheron).
- Add support for MongoMapper (thanks github.com/spagalloco).
- Fix: user-specified coordinates field wasn't working with Mongoid (thanks github.com/thisduck).
- Fix: invalid location given to near scope was returning all results (Active Record) or error (Mongoid) (thanks github.com/ogennadi).
- Add option to not rescue from certain exceptions (thanks github.com/ahmedrb).
- Fix STI child/parent geocoding bug (thanks github.com/ogennadi).
- Other bugfixes.
- Add command line interface.
- Add support for local proxy (thanks github.com/Olivier).
- Add support for Yandex.ru geocoding service.
- Add support for Bing geocoding service (thanks github.com/astevens).
- Fix single table inheritance bug (reported by github.com/enrico).
- Fix bug when Google result supplies no city (thanks github.com/jkeen).
- Fix "can't find special index: 2d" error when using Mongoid with Ruby 1.8.
- Add support for Mongoid.
- Add bearing_to/from methods to geocoded objects.
- Improve SQLite's distance calculation heuristic.
- Fix: Geocoder::Calculations.geographic_center was modifying its argument in-place (reported by github.com/joelmats).
- Fix: sort 'near' query results by distance when using SQLite.
- Clean up input: search for coordinates as a string with space after comma yields zero results from Google. Now we get rid of any such space before sending the query.
- DEPRECATION: Geocoder.near should not take :limit or :offset options.
- DEPRECATION: Change argument format of all methods that take lat/lon as separate arguments. Now you must pass the coordinates as an array [lat,lon], but you may alternatively pass a address string (will look up coordinates) or a geocoded object (or any object that implements a to_coordinates method which returns a [lat,lon] array).
- Add support for result caching.
- Add support for Geocoder.ca geocoding service.
- Add +bearing+ attribute to objects returned by geo-aware queries (thanks github.com/matellis).
- Add config setting: language.
- Add config settings: +use_https+, +google_api_key+ (thanks github.com/svesely).
- DEPRECATION: Geocoder.search now returns an array instead of a single result.
- DEPRECATION: obj.nearbys second argument is now an options hash (instead of units). Please change obj.nearbys(20, :km) to: obj.nearbys(20, :units => :km).
- Fix broken scopes (github.com/mikepinde).
- Fix broken Ruby 1.9 and JRuby compatibility (don't require json gem).
- Add support for IP address geocoding via FreeGeoIp.net.
- Add support for Yahoo PlaceFinder geocoding API.
- Add support for custom geocoder data handling by passing a block to geocoded_by or reverse_geocoded_by.
- Add Rack::Request#location method for geocoding user's IP address.
- Change gem name to geocoder (no more rails-geocoder).
- Gem now works outside of Rails.
- DEPRECATION: +fetch_coordinates+ no longer takes an argument.
- DEPRECATION: +fetch_address+ no longer takes an argument.
- DEPRECATION: Geocoder.search now returns a single result instead of an array.
- DEPRECATION: fetch_coordinates! has been superceded by +geocode+ (then save your object manually).
- DEPRECATION: fetch_address! has been superceded by +reverse_geocode+ (then save your object manually).
- Fix: don't die when trying to get coordinates with a nil address (github.com/zmack).
- Include geocode:all Rake task in gem (was missing!).
- Add Geocoder.search for access to Google's full response.
- Add ability to configure Google connection timeout.
- Emit warnings on Google connection problems and errors.
- Refactor: insert Geocoder into ActiveRecord via Railtie.
- Add reverse geocoding (+reverse_geocoded_by+).
- Prevent exception (uninitialized constant Geocoder::Net) when net/http not already required (github.com/sleepycat).
- Refactor: split monolithic Geocoder module into several smaller ones.
- Fix incompatibility with will_paginate gem.
- Include table names in GROUP BY clause of nearby scope to avoid ambiguity in joins (github.com/matchu).
- Fix broken PostgreSQL compatibility (now 100% compatible).
- Switch from Google's XML to JSON geocoding API.
- Separate Rails 2 and Rails 3-compatible branches.
- Don't allow :conditions hash in 'options' argument to 'nearbys' method (was deprecated in 0.9.3).
- Google Maps API key no longer required (uses geocoder v3).
- Fix incompatibility with Rails 3 RC 1.
- Deprecate 'options' argument to 'nearbys' method.
- Allow inclusion of 'nearbys' in Arel method chains.
- Fix LIMIT clause bug in PostgreSQL (reported by github.com/kenzie).
- Use scope instead of named_scope in Rails 3.
- Fix bug in PostgreSQL support (caused "PGError: ERROR: column "distance" does not exist"), reported by github.com/developish.
- Add Rails 3 compatibility.
- Avoid querying Google when query would be an empty string.
- Automatically select a less accurate but compatible distance algorithm when SQLite database detected (fixes SQLite incompatibility).
- Added Geocoder.geographic_center method.
- Replaced _get_coordinates class method with read_coordinates instance method.
- The fetch_coordinates method now assigns coordinates to attributes (behaves like fetch_coordinates! used to) and fetch_coordinates! both assigns and saves the attributes.
- Added geocode:all rake task.
- Avoid calling deprecated method from within Geocoder itself.
- Deprecate find_near class method in favor of +near+ named scope.
- Update Google URL query string parameter to reflect recent changes in Google's API.
- Allow a model's geocoder search string method to be something other than an ActiveRecord attribute.
- Clean up documentation.
- Extract XML-fetching code from Geocoder.search and place in Geocoder._fetch_xml (for ease of mocking).
- Add tests for coordinate-fetching instance methods.
First release.