I have to geocode a huge amount of adresses (> 1m adresses), so I have access to a local nominatim server. But I don't know how to access these service via R.
It is possible to use the R-package "nominatim" to geocode on a local server? And which parameters I have to alter, when using the osm_geocode function?
Many thanks in advance Doro
osm_geocode
function (query, country_codes = NULL, viewbox = NULL, bounded = FALSE,
address_details = TRUE, exclude_place_ids = NULL, limit = 1,
email = getOption("OSM_API_EMAIL", "nominatimrpackage@example.com"),
accept_language = getOption("LANG", "en-US,en;q=0.8"), key = getOption("OSM_API_KEY",
""))
{
if (nchar(key) == 0) {
stop("Please provide a openstreet API key")
}
bind_rows(pblapply(1:length(query), function(i) {
param_base <- sprintf("%s/%s", getOption("NOMINATIM.search_base"),
gsub(" ", "+", query[i]))
params <- "format=json&dedupe=0&debug=0&polygon=0"
if (!is.null(country_codes))
params <- sprintf("%s&country_codes=%s", params,
country_codes)
if (!is.null(viewbox))
params <- sprintf("%s&viewbox=%s", params, viewbox)
if (!is.null(bounded))
params <- sprintf("%s&bounded=%d", params, as.numeric(bounded))
if (!is.null(exclude_place_ids))
params <- sprintf("%s&exclude_place_ids=%s", params,
exclude_place_ids)
if (!is.null(email))
params <- sprintf("%s&email=%s", params, curl::curl_escape(email))
if (!is.null(accept_language))
params <- sprintf("%s&accept-language=%s", params,
curl::curl_escape(accept_language))
params <- sprintf("%s&address_details=%d", params, as.numeric(address_details))
params <- sprintf("%s&limit=%d", params, as.numeric(limit))
params <- sprintf("%s&key=%s", params, key)
if (length(query) > 1 & length(query) != i)
Sys.sleep(getOption("NOMINATIM.DELAY"))
.search(param_base, params)
}))