Skip to contents

Makes an entire OSM map for the given bbox using the submitted data, or by downloading data if none submitted. This is a convenience function enabling an entire map to be produced according to the graphical format specified with the structures argument.


  structures = osm_structures(),
  dat_prefix = "dat_"



The bounding box for the map. A 2-by-2 matrix of 4 elements with columns of min and max values, and rows of x and y values. If NULL, bbox is taken from the largest extent of OSM objects in osm_data.


A list of OSM objects as returned from extract_osm_objects. These objects may be included in the plot without downloading. These should all be named with the stated dat_prefix and have suffixes as given in structures.


A data.frame specifying types of OSM structures as returned from osm_structures, and potentially modified to alter lists of structures to be plotted, and their associated colours. Objects are overlaid on plot according to the order given in structures.


Prefix for data structures (default dat_). Final data structures are created by appending the suffixes from osm_structures.


List of two components:

  1. List of OSM structures each as Spatial(Points/Lines/Polygons)DataFrame and appended to osm_data (which is NULL by default), and

  2. The map as a ggplot2 object


If osm_data is not given, then data will be downloaded, which can take some time. Progress is dumped to screen.


structures <- c ("highway", "park")
structs <- osm_structures (structures = structures, col_scheme = "light")
# make_osm_map returns potentially modified list of data using the provided
# 'london' data for highways and parks.
dat <- make_osm_map (osm_data = london, structures = structs)
# or download data automatically using a defined bounding boox
bbox <- get_bbox (c (-0.15, 51.5, -0.10, 51.52))
if (FALSE) {
dat <- make_osm_map (bbox = bbox, structures = structs)
print_osm_map (dat$map)