Learn R Programming

mapmisc (version 2.1.0)

openmap: Download map tiles

Description

Downloads map tiles from Openstreetmap.org and other servers.

Usage

openmap(x, zoom, 
	  path="http://tile.openstreetmap.org/",
	  maxTiles = 9, 
	  crs=ifelse(is.numeric(x), mapmisc::crsLL, terra::crs(x)),   
	  buffer=0, fact=1, 
		verbose=getOption('mapmiscVerbose'),
	  cachePath=getOption('mapmiscCachePath'),
	  suffix=NULL
)

osmTiles(name, xyz, suffix)

openmapAttribution(name, type=c('text','latex','markdown','html', 'auto'), short=FALSE)

Value

openmap returns a SpatRaster with indexed colours or RGB layers.

openmapAttribution returns a character string.

Arguments

x

An a spatial object from which an extent and crs can be obtained.

zoom

the zoom level, when missing it will be determined by maxTiles.

path

Source of map tiles, see http://diseasemapping.r-forge.r-project.org/mapLayers.html.

maxTiles

If zoom is missing, zoom will be chosen such that the number of map tiles is less than or equl to this number.

crs

Projection for the output, defaulting to the same projection as x. If x has no projection, for instance when x is a matrix or extent, crs is also used as the projection of x. If crs is NA or missing and x has no crs, long-lat is used.

buffer

Extend the extent for which the map is requested, in units of x. Can be negative, or a vector of length 2 for different x and y extensions

fact

Passed to increase or decrease resolution, values above 1 help to produce a clearer image.

verbose

Print information about map images being downloaded, defaults to FALSE.

cachePath

Location to store downloaded map images, defaults to tempdir()

name

name of a tile path, if missing a vector of all available tile paths is returned. name can be any of the names of the vector returned when name is unspecified.

type

format for the attribution

short

short or long attribution

xyz

format of xyz coordinates in URL's

suffix

string to append to URL's, i.e. '.png'

Details

These functions download, display, and manipulate map tiles stored in a standard way either on a web server or a local folder.

Map tiles are a set of PNG images that span the world at a set of zoom levels. Zoom level 1 has four 256x256 pixel tiles in a 2x2 pattern over the whole world. In general, zoom level n has \(2^n\) by \(2^n\) tiles. Zoom levels go up to about 17 or 18 depending on the tile server.

See https://mc.bbbike.org/mc/ for a more possible map tiles (not all of which are compatible with openmap)

Be sure to attribute any maps you publish, the osmAttribution function will assist. If type = 'auto' then markdown format will be used unless a variable mdToTex is defined and equal to TRUE.

Examples

Run this code

data("netherlands")
nldTiles = terra::unwrap(nldTiles)
plot(nldTiles)

openmapAttribution('osm', short=TRUE, type='markdown')

openmapAttribution("stamen-watercolor", type='text')


myraster = rast(matrix(1:100,10,10),extent=ext(8, 18, 0, 10), crs=crsLL)

myPoints = as.points(myraster)[seq(1, ncell(myraster), len=12)]

names(osmTiles())


	mytiles = try(openmap(myraster, zoom=5, verbose=TRUE))

oldpar =	map.new(myraster)
	plot(mytiles, add=TRUE)
	points(myPoints,col='red')

	myPoints = project(myPoints, crsMerc)
	map.new(myPoints)
# \donttest{
	mytiles = try(openmap(myPoints,
		path='https://livemap-tiles1.waze.com/tiles', verbose=TRUE, buffer=5))
	plot(mytiles, add=TRUE)
# }
	points(myPoints, col='red')

par(oldpar)


Run the code above in your browser using DataLab