Skip to contents

Geocodes addresses already split into components. This function returns the tibble associated with the query, see geo_lite_struct_sf() for retrieving the data as a spatial object (sf format).

This function correspond to the structured query search described in the API endpoint. For performing a free-form search use geo_lite().

Usage

geo_lite_struct(
  amenity = NULL,
  street = NULL,
  city = NULL,
  county = NULL,
  state = NULL,
  country = NULL,
  postalcode = NULL,
  lat = "lat",
  long = "lon",
  limit = 1,
  full_results = FALSE,
  return_addresses = TRUE,
  verbose = FALSE,
  nominatim_server = "https://nominatim.openstreetmap.org/",
  custom_query = list()
)

Arguments

amenity

Name and/or type of POI, see also geo_amenity.

street

House number and street name.

city

City.

county

County.

state

State.

country

Country.

postalcode

Postal Code.

lat

Latitude column name in the output data (default "lat").

long

Longitude column name in the output data (default "long").

limit

Maximum number of results to return per input address. Note that each query returns a maximum of 50 results.

full_results

Returns all available data from the API service. If FALSE (default) only latitude, longitude and address columns are returned. See also return_addresses.

return_addresses

Return input addresses with results if TRUE.

verbose

If TRUE then detailed logs are output to the console.

nominatim_server

The URL of the Nominatim server to use. Defaults to "https://nominatim.openstreetmap.org/".

custom_query

A named list with API-specific parameters to be used (i.e. list(countrycodes = "US")). See Details.

Value

A tibble with the results found by the query.

Details

The structured form of the search query allows to look up up an address that is already split into its components. Each parameter represents a field of the address. All parameters are optional. You should only use the ones that are relevant for the address you want to geocode.

See https://nominatim.org/release-docs/latest/api/Search/ for additional parameters to be passed to custom_query.

Examples

# \donttest{
pl_mayor <- geo_lite_struct(
  street = "Plaza Mayor", country = "Spain",
  limit = 50, full_results = TRUE
)


dplyr::glimpse(pl_mayor)
#> Rows: 44
#> Columns: 45
#> $ q_amenity                 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ q_street                  <chr> "Plaza Mayor", "Plaza Mayor", "Plaza Mayor",…
#> $ q_city                    <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ q_county                  <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ q_state                   <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ q_country                 <chr> "Spain", "Spain", "Spain", "Spain", "Spain",…
#> $ q_postalcode              <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ lat                       <dbl> 40.41539, 40.96503, 41.65206, 40.02982, 41.5…
#> $ lon                       <dbl> -3.7069974, -5.6640558, -4.7285474, -6.09023…
#> $ address                   <chr> "Plaza Mayor, Barrio de los Austrias, Sol, C…
#> $ place_id                  <int> 372872879, 284176853, 283717767, 284092929, …
#> $ licence                   <chr> "Data © OpenStreetMap contributors, ODbL 1.0…
#> $ osm_type                  <chr> "relation", "way", "way", "way", "way", "way…
#> $ osm_id                    <dbl> 16657232, 78180390, 24432960, 184566366, 461…
#> $ category                  <chr> "tourism", "tourism", "tourism", "highway", …
#> $ type                      <chr> "attraction", "attraction", "attraction", "p…
#> $ place_rank                <int> 30, 30, 30, 26, 26, 26, 26, 30, 30, 26, 30, …
#> $ importance                <dbl> 0.4050655, 0.3429547, 0.3023239, 0.1846342, …
#> $ addresstype               <chr> "tourism", "tourism", "tourism", "road", "ro…
#> $ name                      <chr> "Plaza Mayor", "Plaza Mayor", "Plaza Mayor",…
#> $ display_name              <chr> "Plaza Mayor, Barrio de los Austrias, Sol, C…
#> $ address.tourism           <chr> "Plaza Mayor", "Plaza Mayor", "Plaza Mayor",…
#> $ address.road              <chr> "Plaza Mayor", "Plaza Mayor", "Calle de la L…
#> $ address.neighbourhood     <chr> "Barrio de los Austrias", NA, NA, NA, NA, NA…
#> $ address.quarter           <chr> "Sol", NA, NA, "El Berrocal", NA, "San Pablo…
#> $ address.city_district     <chr> "Centro", "Centro", NA, NA, NA, NA, NA, NA, …
#> $ address.city              <chr> "Madrid", "Salamanca", "Valladolid", NA, "Za…
#> $ address.state             <chr> "Comunidad de Madrid", "Castilla y León", "C…
#> $ `address.ISO3166-2-lvl4`  <chr> "ES-MD", "ES-CL", "ES-CL", "ES-EX", "ES-CL",…
#> $ address.postcode          <chr> "28012", "37002", "47001", "10600", NA, NA, …
#> $ address.country           <chr> "España", "España", "España", "España", "Esp…
#> $ address.country_code      <chr> "es", "es", "es", "es", "es", "es", "es", "e…
#> $ address.province          <chr> NA, "Salamanca", "Valladolid", "Cáceres", "Z…
#> $ `address.ISO3166-2-lvl6`  <chr> NA, "ES-SA", "ES-VA", "ES-CC", "ES-ZA", "ES-…
#> $ address.suburb            <chr> NA, NA, "Plaza Mayor", NA, "Barrio La Lana",…
#> $ address.town              <chr> NA, NA, NA, "Plasencia", NA, NA, NA, NA, NA,…
#> $ address.railway           <chr> NA, NA, NA, NA, NA, NA, NA, "Plaza Mayor", "…
#> $ address.retail            <chr> NA, NA, NA, NA, NA, NA, NA, "Plaza Mayor", "…
#> $ address.borough           <chr> NA, NA, NA, NA, NA, NA, NA, "Churriana", "Ch…
#> $ address.county            <chr> NA, NA, NA, NA, NA, NA, NA, "Málaga-Costa de…
#> $ address.region            <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, "l'Alt V…
#> $ address.hamlet            <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ address.village           <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ address.isolated_dwelling <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ boundingbox               <list> <40.414998, 40.415813, -3.708121, -3.706631…
# }