Regression testing. Make sure to cover services with API keys since those methods aren't covered in the vignette

library(tibble)
library(dplyr)
library(knitr)
library(tidygeocoder)

sample1 <- tibble(address = c('11 Wall St New York, NY', NA, '',
    '1600 Pennsylvania Ave NW Washington, DC', '11 Wall St New York, NY', 
    'Toronto, Canada'))

sample2 <- tibble(street = c('1600 Pennsylvania Ave NW', '11 Wall Street', ''), 
  city = c('Washington', 'New York', 'Nashville'), state = c('DC', 'NY', 'TN'))

test batch limit

sample1 %>%
  geocode(address, method = 'census', verbose = FALSE, batch_limit = 1)
louisville_check <- louisville %>% 
  geocode(street = street, city = city, state = state, postalcode = zip, verbose = TRUE, full_results = TRUE) %>%
  mutate(lat_diff = lat - latitude, long_diff = long - longitude) %>%
  select(lat_diff, long_diff, everything())

louisville_check
louisville_geocodio <- louisville %>% 
  geocode(street = street, city = city, state = state, postalcode = zip, verbose = TRUE, method = 'geocodio', full_results = TRUE) %>%
   mutate(lat_diff = lat - latitude, long_diff = long - longitude) %>%
  select(lat_diff, long_diff, everything())

louisville_geocodio
geo(street='1449 ST JAMES CT', city =  'Louisville', state = 'KY', postalcode =  '40208', full_results = TRUE, verbose = T) 
geocode_google1 <- sample1 %>% 
  geocode(address = address, method = 'google', full_results = TRUE, verbose = TRUE)
geocode_google1
geocode_google1_notflat <- sample1 %>% slice(1,2,4,5) %>%
  geocode(address = address, method = 'google', full_results = TRUE, verbose = TRUE, flatten = FALSE, unique_only = TRUE)
geocode_google1_notflat
cascade_r1 <- geo(c('', NA, sample_addresses$addr, NA, ''), method = 'cascade', cascade_order = c('census', 'geocodio'), verbose = T)
cascade_r1
gc1 <- geocode_geocodio1 <- sample1 %>% 
  geocode(address = address, method = 'geocodio', verbose = TRUE)
gc1
iq1 <- geocode_geocodio1 <- sample1 %>% 
  geocode(address = address, method = 'iq', full_results = TRUE, verbose = TRUE, unique_only = TRUE)
iq1
gc_c1 <- geo(method = 'geocodio', street = c('1600 Pennsylvania Ave NW', '11 Wall Street', ''), 
  city = c('Washington', 'New York', 'Nashville'), state = c('DC', 'NY', 'TN'), verbose = TRUE, full_results = TRUE)
gc_c1
iq_c1 <- sample2 %>% 
  geocode(street = street, city = city, state = state, method = 'iq', verbose = TRUE, full_results = TRUE)
iq_c1
geo('blank address', method = 'makeanerror')

Check geocodio error catching

geo(' -----', method ='geocodio')

Check mapbox

louisville_mapbox <- louisville %>%
  slice(1:10) %>%
  geocode(
    address = street,
    method = 'mapbox',
    full_results = TRUE,
    custom_query = list(
      proximity = paste0(louisville[1, c("longitude", "latitude")], 
                         collapse = ","))) %>%
  mutate(lat_diff = lat - latitude,
         long_diff = long - longitude) %>%
  select(lat_diff, long_diff, everything())

louisville_mapbox
geocode_mapbox1 <- sample1 %>%
  mutate(addr = address) %>%
  select(-address) %>%
  geocode(
    address = addr,
    method = 'mapbox',
    full_results = TRUE,
    verbose = TRUE
  )
geocode_mapbox1
geocode_mapbox2 <- sample1 %>%
  geocode(
    address = address,
    method = 'mapbox',
    full_results = FALSE,
    verbose = TRUE
  )
geocode_mapbox2

Check mapbox error catching

geo('Testing',
    method = 'mapbox',
    custom_query = list(country = "ERROR"))

Check HERE

# single geocoding

louisville_here <- louisville %>%
  geocode(
    address = street,
    method = 'here',
    full_results = TRUE,
    custom_query = list(at = paste0(louisville[1, c("latitude", "longitude")],
                                    collapse = ","))
  ) %>%
  mutate(lat_diff = lat - latitude,
         long_diff = long - longitude) %>%
  select(lat_diff, long_diff, everything())

louisville_here
# Force batch geocoding

louisville_here2 <- louisville %>%
  mutate(addr = paste(street, city, state, "USA", dlm=", ")) %>%
  select(addr, 
         longitude, latitude) %>%
  geocode(
    address = addr,
    method = 'here',
    mode = 'batch',
    verbose = TRUE,
    full_results = TRUE) %>%
  mutate(lat_diff = lat - latitude,
         long_diff = long - longitude) %>%
  select(lat_diff, long_diff, everything())

louisville_here2
geocode_here1 <- sample1 %>%
  geocode(
    address = address,
    method = 'here',
    full_results = TRUE
  )
geocode_here1

Check tomtom

louisville_tomtom <- louisville %>%
  geocode(
    address = street,
    method = 'tomtom',
    full_results = TRUE,
    custom_query = list(
      lat = louisville[1, c("latitude")],
      lon = louisville[1, c("longitude")]
      )) %>%
  mutate(lat_diff = lat - latitude,
         long_diff = long - longitude) %>%
  select(lat_diff, long_diff, everything())

louisville_tomtom
geocode_tomtom1 <- sample1 %>%
  mutate(addr = address) %>%
  select(-address) %>%
  geocode(
    address = addr,
    method = 'tomtom',
    mode = 'single',
    full_results = TRUE,
    return_input = FALSE,
    verbose = TRUE,
    limit = 3
  )
geocode_tomtom1
geocode_tomtom2 <- sample1 %>%
  geocode(
    address = address,
    method = 'tomtom',
    full_results = FALSE,
    verbose = TRUE
  )
geocode_tomtom2

Check mapquest

louisville_mapquest <- louisville %>%
  mutate(st = street) %>%
  select(st, latitude, longitude) %>%
  geocode(
    address = st,
    method = 'mapquest',
    full_results = TRUE,
    custom_query = list(
      lat = louisville[1, c("latitude")],
      lon = louisville[1, c("longitude")]
      )) %>%
  mutate(lat_diff = lat - latitude,
         long_diff = long - longitude) %>%
  select(lat_diff, long_diff, everything())

louisville_mapquest
geocode_mapquest1 <- sample1 %>%
  mutate(addr = address) %>%
  select(-address) %>%
  geocode(
    address = addr,
    method = 'mapquest',
    mode = 'single',
    return_input = FALSE,
    full_results = TRUE,
    verbose = TRUE,
    limit = 3
  )
geocode_mapquest1
geocode_mapquest2 <- sample1 %>%
  geocode(
    address = address,
    method = 'mapquest',
    full_results = FALSE,
    verbose = TRUE
  )
geocode_mapquest2

Check bing

louisville_bing <- louisville %>%
  slice(1:20) %>%
  geocode(
    address = street,
    method = 'bing',
    full_results = TRUE) %>%
  mutate(lat_diff = lat - latitude,
         long_diff = long - longitude) %>%
  select(lat_diff, long_diff, everything())

louisville_bing
geocode_bing1 <- sample1 %>%
  mutate(addr = address) %>%
  select(-address) %>%
  geocode(
    address = addr,
    method = 'bing',
    mode = 'single',
    return_input = FALSE,
    full_results = TRUE,
    verbose = TRUE,
    limit = 3
  )
geocode_bing1
geocode_bing2 <- sample1 %>%
  geocode(
    address = address,
    method = 'bing',
    full_results = FALSE,
    verbose = TRUE
  )
geocode_bing2

Check arcgis

louisville_arcgis <- louisville %>%
  sample_n(10) %>%
  mutate(full = paste0(street, ", Louisville")) %>%
  geocode(
    address = full,
    method = 'arcgis',
    full_results = TRUE,
    verbose = TRUE,
    custom_query = list(
      outFields = "*"
      )) %>%
  mutate(lat_diff = lat - latitude,
         long_diff = long - longitude) %>%
  select(lat_diff, long_diff, everything())

louisville_arcgis
geocode_arcgis1 <- sample1 %>%
  mutate(addr = address) %>%
  select(-address) %>%
  geocode(
    address = addr,
    method = 'arcgis',
    mode = 'single',
    full_results = TRUE,
    verbose = TRUE,
    limit = 1
  )
geocode_arcgis1


jessecambon/tidygeocoder documentation built on Jan. 26, 2023, 4:03 p.m.