Skip to content

Expansive Egret

Compare
Choose a tag to compare
@jessecambon jessecambon released this 15 Jul 14:37
0e6ed87

New Functionality

  • New geocoder services: Support for the Geocodio and Location IQ services has been added.
  • Batch geocoding (geocoding multiple addresses per query) is now available for both the Census and Geocodio services.
  • Full results from the geocoder services can now be returned by using full_results = TRUE. This will return all data provided by the geocoder service instead of just latitude and longitude coordinates. Additionally, the return_type = 'geographies' argument for the Census geocoder will return geography columns.
  • Address component arguments: As an alternative to specifying a single-line address, address component arguments are now supported (street, city, county, postalcode, country).
  • Customizable queries: Geocoding queries can now be customized using the limit and custom_query arguments (see the geo() function for details).
  • Smart address handling: Only unique addresses are passed to geocoder services, but the rows in the original data are preserved.
  • Usage limits: The OSM and IQ services by default are now limited to submitting one query per second (per the min_time argument in geo()) to respect usage limits. This should fix the past issue of users being locked out of the OSM service due to usage limit violations.
  • The cascade method can now be customized by using the cascade_order argument (see geo() documentation)
  • Custom API URLs can now be specified. This will allow users to specify their own local Nominatim server, for instance.
  • The parameters passed to the geocoder service are now displayed to the console when verbose = TRUE

Under the Hood Improvements

  • Reduced dependencies: The package has been overhauled so that the only remaining dependencies are tibble, dplyr, jsonlite, and httr. The package no longer has direct dependencies on tmaptools, stringr, purrr, tidyr, and rlang.
  • All geocoding queries are now directly executed by httr. The inbuilt api_parameter_reference dataset is used to map standard "generic" parameter names to the parameter names used by each specific geocoder service.
  • All geocoding functionality has been centralized in the geo() function. Users can still use geocode(), geo_osm(), and geo_census() as before. However, geo_osm() and geo_census() are now just convenience functions that call geo() and geocode() passes all addresses to geo() for geocoding.