Give the dimension of a map figure to be exported in raster or vector format.
Output dimension are based on a spatial object dimension ratio, margins of the figure, a targeted width or height and a resolution.

getFigDim(x, width = NULL, height = NULL, mar = par("mar"), res = 72)

Arguments

x

an sf object, a simple feature collection or a Spatial*DataFrame.

width

width of the figure (in pixels), either width or height must be set.

height

height of the figure (in pixels), either width or height must be set.

mar

a numerical vector of the form c(bottom, left, top, right) which gives the number of lines of margin to be specified on the four sides of the plot (see par).

res

the nominal resolution in ppi which will be recorded in the bitmap file.

Value

A vector of width and height in pixels is returned.

Details

The function can be used to export vector or raster files (see examples).

Examples

if (FALSE) {
library(sf)
mtq <- st_read(system.file("gpkg/mtq.gpkg", package="cartography"))

## PNG export
# get figure dimension
sizes <- getFigDim(x = mtq, width = 450, mar = c(0,0,1.2,0))
# export the map
png(filename = "mtq.png", width = sizes[1], height = sizes[2])
par(mar = c(0,0,1.2,0))
plot(st_geometry(mtq), col = "#D1914D", border = "white", bg = "#A6CAE0")
title("Madinina")
dev.off()

## PDF export
# get figure dimension
sizes <- getFigDim(x = mtq, width = 450, mar = c(1,1,2.2,1))
# export the map
pdf(file = "mtq.pdf", width = sizes[1]/72, height = sizes[2]/72)
par(mar = c(1,1,2.2,1))
plot(st_geometry(mtq), col = "#D1914D", border = "white", bg = "#A6CAE0")
title("Madinina")
dev.off()
}