The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
To create maps from tiles, maptiles
downloads, composes
and displays tiles from a large number of providers (e.g. OpenStreetMap,
Stadia, Esri, CARTO, or Thunderforest).
You can install the released version of maptiles
from CRAN with:
install.packages("maptiles")
You can install the development version of maptiles
from
GitHub with:
# install.packages("remotes")
::install_github("riatelab/maptiles") remotes
This is a basic example which shows you how to dowload and display OpenStreetMap tiles over North Carolina:
library(sf)
#> Linking to GEOS 3.11.1, GDAL 3.6.2, PROJ 9.1.1; sf_use_s2() is TRUE
library(maptiles)
# import North Carolina counties
<- st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
nc_raw # Project to EPSG:3857
<- st_transform(nc_raw, "EPSG:3857")
nc # dowload tiles and compose raster (SpatRaster)
<- get_tiles(nc, crop = TRUE)
nc_osm # display map
plot_tiles(nc_osm)
# add Norh Carolina counties
plot(st_geometry(nc), col = NA, add = TRUE)
# add credit
mtext(text = get_credit("OpenStreetMap"), side = 1, line = -1, adj = .99)
maptiles
gives access to a lot of tiles servers, but it
is possible to add others. The following example demonstrates the
setting of a map tiles server and how to cache the original tiles for
future use:
# define the tile server parameters
<- create_provider(
osmpos name = "CARTO.POSITRON",
url = "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png",
sub = c("a", "b", "c", "d"),
citation = "© OpenStreetMap contributors © CARTO "
)# dowload tiles and compose raster (SpatRaster)
<- get_tiles(
nc_osmpos x = nc, provider = osmpos, crop = TRUE,
cachedir = tempdir(), verbose = TRUE
)#> Zoom: 7
#> Source(s): © OpenStreetMap contributors © CARTO
#> Cache directory: /tmp/RtmpQKpnO9/CARTO.POSITRON
#> 8 tiles
# display map
plot_tiles(nc_osmpos)
# display credits
mtext(text = get_credit(osmpos), side = 1, line = -1, adj = .99)
The following figure shows mini maps for most of the tiles providers available:
Original tiles use a projection known as “Web Mercator”, “WGS84 /
Pseudo Mercator”, “Google Mercator”, “EPSG:3857” or “EPSG:900913”. In
most cases get_tiles()
uses the projection of its
x
argument to reproject the tiles. If you wish to avoid any
deformation induced by the reprojection process, use “EPSG:3857” for
x
projection.
All maps available through maptiles
are offered freely
by various providers. The only counterpart from the user is to properly
display an attribution text on the maps. get_credit()
displays a short attribution text to add on each map using the
downloaded tiles.
There are many alternative packages that pursue the same objective as
maptiles
. Some focus on a specific map tiles provider
(e.g. Mapbox, Google, OpenStreetMap) or on a specific graphics device
(ggplot2
). The goal of maptiles
is to be
flexible enough to allow the use of different providers and to have a
minimal number of robust and modern dependencies. However, depending on
the use case, one of following packages may better suit your needs:
ceramic
ggmap
(ggplot2
focused)ggspatial
(ggplot2
focused, based on rosm
)mapboxapi
(mapbox)mapsapi
(google, based on RgoogleMaps
)OpenStreetMap
(requires Java)RgoogleMaps
(google)rosm
Not to be confused with tilemaps
,
that “implements an algorithm for generating maps, known as tile maps,
in which each region is represented by a single tile of the same shape
and size.”
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.