Skip to content

hrbrmstr/rgeocodio

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
R
 
 
man
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

rgeocodio : Tools to Work with the https://geocod.io/ 'API'

NOTE: You need an API key to use this package.

There is a great deal of API documentation in the main pacakge help page. It is highly suggested you do help("rgeocodio-package") after installing the package.

The following functions are implemented:

  • gio_auth: Get or set GEOCODIO_API_KEY value
  • gio_batch_geocode: Geocode up to 10,000 addresses
  • gio_batch_reverse: Reverse geocode up to 10,000 coordinates
  • gio_geocode: Geocode a single address
  • gio_geocode_components: Geocode a single address
  • gio_reverse: Reverse geocode a single lat/lon pair

All functions return tidy tibbles with sane column names.

TODO

  • enable selection of additional fields
  • better return types
  • a tad more error checking (especially processing API status codes
  • more/better tests along with full code coverage
  • Add R examples to the official documentation

Installation

devtools::install_github("hrbrmstr/rgeocodio")

Usage

library(rgeocodio)

# current verison
packageVersion("rgeocodio")
## [1] '0.1.0'
gio_geocode("1109 N Highland St, Arlington, VA")
## # A tibble: 1 × 16
##                         formatted_address accuracy accuracy_type                     source number predirectional
## *                                   <chr>    <int>         <chr>                      <chr>  <chr>          <chr>
## 1 1109 N Highland St, Arlington, VA 22201        1       rooftop Virginia GIS Clearinghouse   1109              N
## # ... with 10 more variables: street <chr>, suffix <chr>, formatted_street <chr>, city <chr>, county <chr>,
## #   state <chr>, zip <chr>, country <chr>, location_lat <dbl>, location_lng <dbl>
gio_geocode_components("1109 N Highland St", "Arlington", "VA")
## # A tibble: 1 × 16
##                         formatted_address accuracy accuracy_type                     source number predirectional
## *                                   <chr>    <int>         <chr>                      <chr>  <chr>          <chr>
## 1 1109 N Highland St, Arlington, VA 22201        1       rooftop Virginia GIS Clearinghouse   1109              N
## # ... with 10 more variables: street <chr>, suffix <chr>, formatted_street <chr>, city <chr>, county <chr>,
## #   state <chr>, zip <chr>, country <chr>, location_lat <dbl>, location_lng <dbl>
gio_reverse(38.9002898, -76.9990361)
## # A tibble: 3 × 16
##                     formatted_address accuracy  accuracy_type                                        source number
## *                               <chr>    <dbl>          <chr>                                         <chr>  <chr>
## 1   500 H St NE, Washington, DC 20002     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau    500
## 2 800 5th St NE, Washington, DC 20002     0.18 nearest_street TIGER/Line® dataset from the US Census Bureau    800
## 3   474 H St NE, Washington, DC 20002     0.18 nearest_street TIGER/Line® dataset from the US Census Bureau    474
## # ... with 11 more variables: street <chr>, suffix <chr>, postdirectional <chr>, formatted_street <chr>, city <chr>,
## #   county <chr>, state <chr>, zip <chr>, country <chr>, location_lat <dbl>, location_lng <dbl>
addresses <- c(
  "1109 N Highland St, Arlington VA",
  "525 University Ave, Toronto, ON, Canada",
  "4410 S Highway 17 92, Casselberry FL",
  "15000 NE 24th Street, Redmond WA",
  "17015 Walnut Grove Drive, Morgan Hill CA"
)

gio_batch_geocode(addresses)
## # A tibble: 5 × 12
##                                      query      response_results                            formatted_address number
## *                                    <chr>                <list>                                        <chr>  <chr>
## 1         1109 N Highland St, Arlington VA <data.frame [1 × 16]>      1109 N Highland St, Arlington, VA 22201   1109
## 2  525 University Ave, Toronto, ON, Canada <data.frame [1 × 13]>              525 University Ave, Toronto, ON    525
## 3     4410 S Highway 17 92, Casselberry FL <data.frame [2 × 14]>     4410 State Rte 17, Casselberry, FL 32707   4410
## 4         15000 NE 24th Street, Redmond WA <data.frame [2 × 16]>          15000 NE 24th St, Redmond, WA 98052  15000
## 5 17015 Walnut Grove Drive, Morgan Hill CA <data.frame [1 × 14]> 17015 Walnut Grove Dr, Morgan Hill, CA 95037  17015
## # ... with 8 more variables: predirectional <chr>, street <chr>, suffix <chr>, formatted_street <chr>, city <chr>,
## #   state <chr>, zip <chr>, country <chr>
data.frame(
  lat = c(35.9746000, 32.8793700, 33.8337100, 35.4171240),
  lon = c(-77.9658000, -96.6303900, -117.8362320, -80.6784760)
) -> to_code

gio_batch_reverse(to_code)
## # A tibble: 12 × 17
##                        formatted_address accuracy  accuracy_type                                        source number
##                                    <chr>    <dbl>          <chr>                                         <chr>  <chr>
## 1  101 State Hwy 58, Nashville, NC 27856     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau    101
## 2   100 N Alston St, Nashville, NC 27856     0.37 nearest_street TIGER/Line® dataset from the US Census Bureau    100
## 3   125 S Alston St, Nashville, NC 27856     0.36 nearest_street TIGER/Line® dataset from the US Census Bureau    125
## 4   100 E Kingsley Rd, Garland, TX 75041     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau    100
## 5       2961 S 1st St, Garland, TX 75041     0.92 nearest_street TIGER/Line® dataset from the US Census Bureau   2961
## 6       3084 S 1st St, Garland, TX 75041     0.87 nearest_street TIGER/Line® dataset from the US Census Bureau   3084
## 7     2700 N Tustin St, Orange, CA 92865     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau   2700
## 8     2566 N Tustin St, Orange, CA 92865     0.00 nearest_street TIGER/Line® dataset from the US Census Bureau   2566
## 9     2790 N Tustin St, Orange, CA 92865     0.00 nearest_street TIGER/Line® dataset from the US Census Bureau   2790
## 10 5968 Village Dr NW, Concord, NC 28027     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau   5968
## 11    5500 York St NW, Concord, NC 28027     0.92 nearest_street TIGER/Line® dataset from the US Census Bureau   5500
## 12   450 Sportsman Dr, Concord, NC 28027     0.89 nearest_street TIGER/Line® dataset from the US Census Bureau    450
## # ... with 12 more variables: street <chr>, formatted_street <chr>, city <chr>, county <chr>, state <chr>, zip <chr>,
## #   country <chr>, predirectional <chr>, suffix <chr>, location_lat <dbl>, location_lng <dbl>, postdirectional <chr>

Extra Fields

gio_geocode("1109 N Highland St, Arlington, VA", fields=c("cd", "stateleg"))
## # A tibble: 1 × 24
##                         formatted_address accuracy accuracy_type                     source number predirectional
## *                                   <chr>    <int>         <chr>                      <chr>  <chr>          <chr>
## 1 1109 N Highland St, Arlington, VA 22201        1       rooftop Virginia GIS Clearinghouse   1109              N
## # ... with 18 more variables: street <chr>, suffix <chr>, formatted_street <chr>, city <chr>, county <chr>,
## #   state <chr>, zip <chr>, country <chr>, location_lat <dbl>, location_lng <dbl>, congressional_district_name <chr>,
## #   congressional_district_district_number <int>, congressional_district_congress_number <chr>,
## #   congressional_district_congress_years <chr>, state_legislative_districts_senate_name <chr>,
## #   state_legislative_districts_senate_district_number <chr>, state_legislative_districts_house_name <chr>,
## #   state_legislative_districts_house_district_number <chr>
gio_geocode_components("1109 N Highland St", "Arlington", "VA",
                      fields=c("census", "stateleg"))
## # A tibble: 1 × 27
##                         formatted_address accuracy accuracy_type                     source number predirectional
## *                                   <chr>    <int>         <chr>                      <chr>  <chr>          <chr>
## 1 1109 N Highland St, Arlington, VA 22201        1       rooftop Virginia GIS Clearinghouse   1109              N
## # ... with 21 more variables: street <chr>, suffix <chr>, formatted_street <chr>, city <chr>, county <chr>,
## #   state <chr>, zip <chr>, country <chr>, location_lat <dbl>, location_lng <dbl>,
## #   state_legislative_districts_senate_name <chr>, state_legislative_districts_senate_district_number <chr>,
## #   state_legislative_districts_house_name <chr>, state_legislative_districts_house_district_number <chr>,
## #   census_census_year <int>, census_state_fips <chr>, census_county_fips <chr>, census_place_fips <chr>,
## #   census_tract_code <chr>, census_block_code <chr>, census_block_group <chr>
gio_reverse(38.9002898, -76.9990361, fields=c("census", "stateleg"))
## # A tibble: 3 × 25
##                     formatted_address accuracy  accuracy_type                                        source number
## *                               <chr>    <dbl>          <chr>                                         <chr>  <chr>
## 1   500 H St NE, Washington, DC 20002     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau    500
## 2 800 5th St NE, Washington, DC 20002     0.18 nearest_street TIGER/Line® dataset from the US Census Bureau    800
## 3   474 H St NE, Washington, DC 20002     0.18 nearest_street TIGER/Line® dataset from the US Census Bureau    474
## # ... with 20 more variables: street <chr>, suffix <chr>, postdirectional <chr>, formatted_street <chr>, city <chr>,
## #   county <chr>, state <chr>, zip <chr>, country <chr>, location_lat <dbl>, location_lng <dbl>,
## #   state_legislative_districts_senate_name <chr>, state_legislative_districts_senate_district_number <chr>,
## #   census_census_year <int>, census_state_fips <chr>, census_county_fips <chr>, census_place_fips <chr>,
## #   census_tract_code <chr>, census_block_code <chr>, census_block_group <chr>
gio_batch_geocode(addresses, fields=c("cd", "stateleg"))
## # A tibble: 5 × 12
##                                      query      response_results                            formatted_address number
## *                                    <chr>                <list>                                        <chr>  <chr>
## 1         1109 N Highland St, Arlington VA <data.frame [1 × 24]>      1109 N Highland St, Arlington, VA 22201   1109
## 2  525 University Ave, Toronto, ON, Canada <data.frame [1 × 13]>              525 University Ave, Toronto, ON    525
## 3     4410 S Highway 17 92, Casselberry FL <data.frame [2 × 22]>     4410 State Rte 17, Casselberry, FL 32707   4410
## 4         15000 NE 24th Street, Redmond WA <data.frame [2 × 24]>          15000 NE 24th St, Redmond, WA 98052  15000
## 5 17015 Walnut Grove Drive, Morgan Hill CA <data.frame [1 × 22]> 17015 Walnut Grove Dr, Morgan Hill, CA 95037  17015
## # ... with 8 more variables: predirectional <chr>, street <chr>, suffix <chr>, formatted_street <chr>, city <chr>,
## #   state <chr>, zip <chr>, country <chr>
gio_batch_reverse(to_code, fields=c("census", "stateleg"))
## # A tibble: 12 × 28
##                        formatted_address accuracy  accuracy_type                                        source number
##                                    <chr>    <dbl>          <chr>                                         <chr>  <chr>
## 1  101 State Hwy 58, Nashville, NC 27856     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau    101
## 2   100 N Alston St, Nashville, NC 27856     0.37 nearest_street TIGER/Line® dataset from the US Census Bureau    100
## 3   125 S Alston St, Nashville, NC 27856     0.36 nearest_street TIGER/Line® dataset from the US Census Bureau    125
## 4   100 E Kingsley Rd, Garland, TX 75041     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau    100
## 5       2961 S 1st St, Garland, TX 75041     0.92 nearest_street TIGER/Line® dataset from the US Census Bureau   2961
## 6       3084 S 1st St, Garland, TX 75041     0.87 nearest_street TIGER/Line® dataset from the US Census Bureau   3084
## 7     2700 N Tustin St, Orange, CA 92865     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau   2700
## 8     2566 N Tustin St, Orange, CA 92865     0.00 nearest_street TIGER/Line® dataset from the US Census Bureau   2566
## 9     2790 N Tustin St, Orange, CA 92865     0.00 nearest_street TIGER/Line® dataset from the US Census Bureau   2790
## 10 5968 Village Dr NW, Concord, NC 28027     1.00 nearest_street TIGER/Line® dataset from the US Census Bureau   5968
## 11    5500 York St NW, Concord, NC 28027     0.92 nearest_street TIGER/Line® dataset from the US Census Bureau   5500
## 12   450 Sportsman Dr, Concord, NC 28027     0.89 nearest_street TIGER/Line® dataset from the US Census Bureau    450
## # ... with 23 more variables: street <chr>, formatted_street <chr>, city <chr>, county <chr>, state <chr>, zip <chr>,
## #   country <chr>, predirectional <chr>, suffix <chr>, location_lat <dbl>, location_lng <dbl>,
## #   state_legislative_districts_senate_name <chr>, state_legislative_districts_senate_district_number <chr>,
## #   state_legislative_districts_house_name <chr>, state_legislative_districts_house_district_number <chr>,
## #   census_census_year <int>, census_state_fips <chr>, census_county_fips <chr>, census_place_fips <chr>,
## #   census_tract_code <chr>, census_block_code <chr>, census_block_group <chr>, postdirectional <chr>

Test Results

library(rgeocodio)
library(testthat)

date()
## [1] "Mon Mar  6 11:44:09 2017"
test_dir("tests/")
## testthat results ========================================================================================================
## OK: 10 SKIPPED: 0 FAILED: 0
## 
## DONE ===================================================================================================================