
Geocode addresses with a multi-field ArcGIS REST API query
Source:R/arc_geo_multi.R
arc_geo_multi.RdGeocodes addresses from specific address components and returns the tibble associated with each query.
For geocoding with a single text string, use arc_geo().
Usage
arc_geo_multi(
address = NULL,
address2 = NULL,
address3 = NULL,
neighborhood = NULL,
city = NULL,
subregion = NULL,
region = NULL,
postal = NULL,
postalext = NULL,
countrycode = NULL,
lat = "lat",
long = "lon",
limit = 1,
full_results = FALSE,
return_addresses = TRUE,
verbose = FALSE,
progressbar = TRUE,
outsr = NULL,
langcode = NULL,
category = NULL,
custom_query = list()
)Arguments
- address, address2, address3, neighborhood, city, subregion
Address components. See Details.
- region, postal, postalext, countrycode
Additional address components. See Details.
- lat
Latitude column name in the output data (default
"lat").- long
Longitude column name in the output data (default
"lon").- limit
Maximum number of results to return per input address. Each query has a hard API limit of 50 results.
- full_results
Logical. If
TRUE, return all available API fields viaoutFields=*. Default isFALSE.- return_addresses
Logical. If
TRUE, keep the input query in the output.- verbose
Logical. If
TRUE, output process messages to the console.- progressbar
Logical. If
TRUE, show a progress bar for multiple points.- outsr
The spatial reference of the
xandycoordinates returned by a geocode request. By default, it isNULL(that is, the argument will not be used in the query). See Details and arc_spatial_references.- langcode
Sets the language in which reverse-geocoded addresses are returned.
- category
Place or address type used as a filter. Multiple values are accepted (e.g.
c("Cinema", "Museum")). See arc_categories.- custom_query
Additional API parameters as named list values.
Value
A tibble object with the results. See output details in ArcGIS REST API service output.
The output also includes the input arguments as columns prefixed with q_
to help track the results.
Details
See the ArcGIS REST docs for more information and valid values.
Address components
This function performs structured queries by different components of an
address. At least one field should be different from NA or NULL.
A vector of values can be provided for each argument for multiple geocoding. When using vectors in different arguments, their lengths must be the same.
The following list provides a brief description of each argument:
address: A string that represents the first line of a street address. In most cases, it is the street name and house number input, but it can also be used to input a building name or place name.address2: A string that represents the second line of a street address. This can include street name/house number, building name, place name or subunit.address3: A string that represents the third line of a street address. This can include street name/house number, building name, place name or subunit.neighborhood: The smallest administrative division associated with an address, typically a neighborhood or a section of a larger populated place.city: The next largest administrative division associated with an address, typically a city or municipality.subregion: The next largest administrative division associated with an address. Depending on the country, a subregion can represent a county, state or province.region: The largest administrative division associated with an address, typically a state or province.postal: The standard postal code for an address, typically a three– to six-digit alphanumeric code.postalext: A postal code extension, such as the United States Postal Service ZIP+4 code.countrycode: A value representing the country. Providing this value increases geocoding speed. Acceptable values include the full country name in English or the official language of the country, the two-character country code or the three-character country code.
outsr
The spatial reference can be specified as a well-known ID (WKID). If not specified, the spatial reference of the output locations is the same as that of the service (WGS84, that is, WKID = 4326).
See arc_spatial_references for values and examples.
See also
Other functions for geocoding:
arc_geo(),
arc_geo_categories(),
arc_reverse_geo()
Examples
# \donttest{
simple <- arc_geo_multi(
address = "Plaza Mayor", limit = 10,
custom_query = list(outFields = c("LongLabel", "CntryName", "Region"))
)
library(dplyr)
simple |>
select(lat, lon, CntryName, Region, LongLabel) |>
slice_head(n = 10)
#> # A tibble: 10 × 5
#> lat lon CntryName Region LongLabel
#> <dbl> <dbl> <chr> <chr> <chr>
#> 1 41.7 -4.73 España Castilla y León Plaza Mayor, Valladolid, Castilla y L…
#> 2 39.5 -6.37 España Extremadura Plaza Mayor, Cáceres, Extremadura, ESP
#> 3 36.7 -4.48 España Andalucía Plaza Mayor, Calle Alfonso Ponce de L…
#> 4 6.24 -75.6 Colombia Antioquia Plaza Mayor, Calle Nueva, Medellín, A…
#> 5 5.63 -73.5 Colombia Boyacá Plaza Mayor, Villa de Leyva, Boyacá, …
#> 6 21.8 -80.0 Cuba Sancti Spíritus Plaza Mayor, Trinidad, Sancti Spíritu…
#> 7 37.1 -2.78 España Andalucía Plaza Mayor, Plaza Mayor 3, 04510, Ab…
#> 8 37.0 -2.95 España Andalucía Plaza Mayor, Plaza Mayor 9, 04479, Pa…
#> 9 37.2 -1.87 España Andalucía Plaza Mayor, Calle de Juan Anglada 5,…
#> 10 38.2 -3.77 España Andalucía Plaza Mayor, Calle de la Conquista 3,…
# Restrict search to Spain.
simple2 <- arc_geo_multi(
address = "Plaza Mayor", countrycode = "ESP",
limit = 10,
custom_query = list(outFields = c("LongLabel", "CntryName", "Region"))
)
simple2 |>
select(lat, lon, CntryName, Region, LongLabel) |>
slice_head(n = 10)
#> # A tibble: 10 × 5
#> lat lon CntryName Region LongLabel
#> <dbl> <dbl> <chr> <chr> <chr>
#> 1 41.7 -4.73 España Castilla y León Plaza Mayor, Valladolid, Castilla y L…
#> 2 39.5 -6.37 España Extremadura Plaza Mayor, Cáceres, Extremadura, ESP
#> 3 36.7 -4.48 España Andalucía Plaza Mayor, Calle Alfonso Ponce de L…
#> 4 37.1 -2.78 España Andalucía Plaza Mayor, Plaza Mayor 3, 04510, Ab…
#> 5 37.0 -2.95 España Andalucía Plaza Mayor, Plaza Mayor 9, 04479, Pa…
#> 6 37.2 -1.87 España Andalucía Plaza Mayor, Calle de Juan Anglada 5,…
#> 7 38.2 -3.77 España Andalucía Plaza Mayor, Calle de la Conquista 3,…
#> 8 42.4 0.139 España Aragón Plaza Mayor, Plaza Mayor 6, 22330, Aí…
#> 9 42.0 0.258 España Aragón Plaza Mayor, 22422, Fonz, Huesca, Ara…
#> 10 42.5 0.135 España Aragón Plaza Mayor, 22360, Labuerda, Huesca,…
# Restrict to a region.
simple3 <- arc_geo_multi(
address = "Plaza Mayor", region = "Segovia",
countrycode = "ESP",
limit = 10,
custom_query = list(outFields = c("LongLabel", "CntryName", "Region"))
)
simple3 |>
select(lat, lon, CntryName, Region, LongLabel) |>
slice_head(n = 10)
#> # A tibble: 10 × 5
#> lat lon CntryName Region LongLabel
#> <dbl> <dbl> <chr> <chr> <chr>
#> 1 41.2 -4.52 España Castilla y León Plaza Mayor, Plaza Mayor 5, 40480, Coc…
#> 2 41.2 -4.56 España Castilla y León Plaza Mayor, Carretera de Estación de …
#> 3 41.4 -4.31 España Castilla y León Plaza Mayor, Calle del Colegio 4, 4020…
#> 4 41.1 -4.38 España Castilla y León Plaza Mayor, Calle Migueláñez 1, 40495…
#> 5 40.9 -4.35 España Castilla y León Plaza Mayor, Camino de Marugán, 40142,…
#> 6 41.0 -4.60 España Castilla y León Plaza Mayor, Plaza Mayor 20, 40446, Ma…
#> 7 41.1 -3.81 España Castilla y León Plaza Mayor, Plaza Mayor 6, 40173, Ped…
#> 8 41.3 -3.34 España Castilla y León Plaza Mayor, Travesía Mayor 1, 40510, …
#> 9 41.0 -4.12 España Castilla y León Plaza Mayor, Plaza Mayor 1, 40001, Seg…
#> 10 41.1 -4.00 España Castilla y León Plaza Mayor, Camino de Turégano, 40181…
# }