A drop-in replacement for osmdata::osmdata_sf() that sidesteps
the Overpass server-status check osmdata performs before each
download.fetch_osm() builds the Overpass query
with osmdata's helpers, POSTs it directly with the curl
package, and then hands the raw response back to osmdata for
parsing.
Usage
fetch_osm(
bbox,
key = "highway",
value = NULL,
endpoint = "https://overpass-api.de/api/interpreter",
timeout = 180,
user_agent = "MetricGraph-R-package",
cache_path = NULL,
retries = 2,
...
)Arguments
- bbox
A bounding box, passed to
osmdata::opq(). May be a length-4 numeric vectorc(xmin, ymin, xmax, ymax), ansf::bboxobject, or any other form accepted byosmdata::opq().- key
OSM key to filter on, e.g.
"highway". Passed toosmdata::add_osm_feature(). UseNULLto skip the feature filter and fetch everything in the bbox.- value
Optional character vector of values for
key, e.g.c("motorway", "motorway_link").- endpoint
Overpass endpoint URL, or a character vector of URLs that are tried in order. Defaults to the main
overpass-api.deendpoint. Mirror URLs (e.g.https://overpass.kumi.systems/api/interpreter) work too.- timeout
Server-side query timeout in seconds. Forwarded to both
osmdata::opq()and the HTTP request.- user_agent
String sent as the
User-AgentHTTP header.- cache_path
Optional path. If provided and the file already exists, the download is skipped and the cached response is parsed instead. If provided and the file does not exist, the response is saved there for re-use.
- retries
Number of times a request to each endpoint is retried after a transient failure (HTTP 429 or 5xx, or a connection error), with exponential backoff between attempts.
- ...
Forwarded to
osmdata::add_osm_feature().
Value
An osmdata list with elements $osm_points,
$osm_lines, $osm_polygons, $osm_multilines,
$osm_multipolygons (same structure as osmdata::osmdata_sf()).
Tags appear as columns of each sf data frame.
See also
metric_graph_from_osm() which wraps this and returns a
ready-to-use metric_graph.
