Learn R Programming

osmplotr (version 0.2.0)

add_osm_objects: add_osm_objects

Description

Adds layers of spatial objects (polygons, lines, or points generated by extract_osm_objects ()) to a graphics object initialised with plot_osm_basemap().

Usage

add_osm_objects(map, obj, col = "gray40", border = NA, size, shape)

Arguments

map
A ggplot2 object to which the objects are to be added
obj
A spatial ('sp') data frame of polygons, lines, or points, typically as returned by extract_osm_objects ()
col
Colour of lines or points; fill colour of polygons
border
Border colour of polygons
size
Size argument passed to ggplot2 (polygon, path, point) functions: determines width of lines for (polygon, line), and sizes of points. Respective defaults are (0, 0.5, 0.5).
shape
Shape of points or lines (the latter passed as 'linetype'): see ?ggplot2::shape

Value

  • modified version of map (a ggplot object) to which objects have been added

See Also

plot_osm_basemap, extract_osm_objects.

Examples

Run this code
bbox <- get_bbox (c (-0.13, 51.5, -0.11, 51.52))
map <- plot_osm_basemap (bbox=bbox, bg="gray20")

# The 'london' data used below were downloaded as:
dat_BNR <- extract_osm_objects (bbox=bbox, key='building',
                                value='!residential')
dat_HP <- extract_osm_objects (bbox=bbox, key='highway',
                               value='primary')
dat_T <- extract_osm_objects (bbox=bbox, key='tree')
map <- add_osm_objects (map, obj=london$dat_BNR, col="gray40", border="yellow") 
map <- add_osm_objects (map, obj=london$dat_HP, col="gray80",
                        size=1, shape=2)
map <- add_osm_objects (map, london$dat_T, col="green", size=2, shape=1)
print (map)

# Polygons with different coloured borders
map <- plot_osm_basemap (bbox=bbox, bg="gray20")
map <- add_osm_objects (map, obj=london$dat_HP, col="gray80")
map <- add_osm_objects (map, london$dat_T, col="green")
map <- add_osm_objects (map, obj=london$dat_BNR, col="gray40", border="yellow", 
                        size=0.5)
print (map)

Run the code above in your browser using DataLab