
The goal of nominatimlite is to provide a
lightweight interface for geocoding addresses with the Nominatim API. It
also allows you to return results as sf objects using the
sf package.
The full site with examples and vignettes is available at https://dieghernan.github.io/nominatimlite/
Nominatim is a tool for searching OpenStreetMap data by name and address (geocoding) and generating synthetic addresses for OSM points (reverse geocoding).
nominatimlite accesses the Nominatim API without depending on curl. In some situations, curl may not be available or accessible, so nominatimlite uses base R functions instead.
Other packages are more complete and mature than nominatimlite and provide similar features:
Install nominatimlite from CRAN:
install.packages("nominatimlite")See the documentation for the development version at https://dieghernan.github.io/nominatimlite/dev/.
You can install the development version of nominatimlite with:
pak::pak("dieghernan/nominatimlite")Alternatively, you can install nominatimlite using the r-universe:
# Install nominatimlite in R:
install.packages(
"nominatimlite",
repos = c(
"https://dieghernan.r-universe.dev",
"https://cloud.r-project.org"
)
)sf objectsWith nominatimlite you can return sf
objects:
library(nominatimlite)
# Search for Pizza Hut locations in California.
CA <- geo_lite_sf("California", points_only = FALSE)
pizzahut <- geo_lite_sf(
"Pizza Hut, California",
limit = 50,
custom_query = list(countrycodes = "us")
)
library(ggplot2)
ggplot(CA) +
geom_sf() +
geom_sf(data = pizzahut, col = "red")
You can also return polygon and line objects when the Nominatim API
provides them, using the option points_only = FALSE:
# A building, returned as a polygon.
sol_poly <- geo_lite_sf("Statue of Liberty, NY, USA", points_only = FALSE)
ggplot(sol_poly) +
geom_sf()
# Default, returned as a point.
dayton <- geo_lite_sf("Dayton, OH")
# A US state, returned as a polygon.
ohio_state <- geo_lite_sf("Ohio, USA", points_only = FALSE)
# A river, returned as a line.
ohio_river <- geo_lite_sf("Ohio river", points_only = FALSE)
ggplot() +
geom_sf(data = ohio_state) +
geom_sf(data = dayton, color = "red", pch = 4) +
geom_sf(data = ohio_river, color = "blue")
Note: examples are adapted from the tidygeocoder package.
In this first example, we geocode a few addresses with
geo_lite():
library(tibble)
# Create a data frame with addresses.
some_addresses <- tribble(
~name, ~addr,
"White House", "1600 Pennsylvania Ave NW, Washington, DC",
"Transamerica Pyramid", "600 Montgomery St, San Francisco, CA 94111",
"Willis Tower", "233 S Wacker Dr, Chicago, IL 60606"
)
# Geocode the addresses.
lat_longs <- geo_lite(
some_addresses$addr,
lat = "latitude",
long = "longitude",
progressbar = FALSE
)This example returns only latitude, longitude and address columns
from the Nominatim API. Use full_results = TRUE to return
all available data from the Nominatim API.
| query | latitude | longitude | address |
|---|---|---|---|
| 1600 Pennsylvania Ave NW, Washington, DC | 38.89764 | -77.03655 | White House, 1600, Pennsylvania Avenue Northwest, Ward 2, Washington, District of Columbia, 20500, United States |
| 600 Montgomery St, San Francisco, CA 94111 | 37.79519 | -122.40279 | Transamerica Pyramid, 600, Montgomery Street, Financial District, South of Market, San Francisco, California, 94111, United States |
| 233 S Wacker Dr, Chicago, IL 60606 | 41.87874 | -87.63596 | Willis Tower, 233, South Wacker Drive, Financial District, Loop, Chicago, South Chicago Township, Cook County, Illinois, 60606, United States |
Table 1: Example: geocoding addresses.
To perform reverse geocoding, use reverse_geo_lite() to
obtain addresses from geographic coordinates. The arguments are similar
to geo_lite(), but now we provide coordinate values with
the lat and long arguments. The dataset used
here is from the geocoding query above. The single-line address is
returned in a column named with the address argument.
reverse <- reverse_geo_lite(
lat = lat_longs$latitude,
long = lat_longs$longitude,
address = "address_found",
progressbar = FALSE
)| address_found | lat | lon |
|---|---|---|
| White House, 1600, Pennsylvania Avenue Northwest, Downtown, Ward 2, Washington, District of Columbia, 20500, United States | 38.89764 | -77.03655 |
| Sky Bar, Mark Twain Place, Financial District, South of Market, San Francisco, California, 94111, United States | 37.79519 | -122.40254 |
| West Adams Street, Financial District, Loop, Chicago, South Chicago Township, Cook County, Illinois, 60675, United States | 41.87874 | -87.63589 |
Table 2: Example: reverse geocoding addresses.
For more advanced users, see the Nominatim documentation for the available parameters.
Hernangómez D (2026). nominatimlite: Interface to the Nominatim API. doi:10.32614/CRAN.package.nominatimlite. https://dieghernan.github.io/nominatimlite/.
A BibTeX entry for LaTeX users is
@Manual{R-nominatimlite,
title = {{nominatimlite}: Interface to the {Nominatim} {API}},
doi = {10.32614/CRAN.package.nominatimlite},
author = {Diego Hernangómez},
year = {2026},
version = {0.6.0},
url = {https://dieghernan.github.io/nominatimlite/},
abstract = {Lightweight interface to the OpenStreetMap Nominatim API <https://nominatim.org/release-docs/latest/>. Extract coordinates from addresses, retrieve addresses from coordinates, look up amenities and addresses, and return results as tibble or sf objects.},
}