intro

OSMscale is an R package to easily handle and project lat-long coordinates, download background maps and add a correct scale bar to 'OpenStreetMap' plots in any map projection. There are some other spatially related miscellaneous functions as well.

installation

OSMscale is available on CRAN: CRAN_Status_Badge downloads Rdoc

It relies on OpenStreetMap to do the actual work, thus rgdal and rjava must be available.

install.packages("OSMscale") 
library(OSMscale)
?OSMscale

# To update to the most recent development version:
berryFunctions::instGit("brry/berryFunctions")
berryFunctions::instGit("brry/OSMscale")

basic usage

Assuming a data.frame with lat-long coordinates:

d <- read.table(sep=",", header=TRUE, text=
"lat, long # could e.g. be copied from googleMaps, rightclick on What's here?
55.685143, 12.580008
52.514464, 13.350137
50.106452, 14.419989
48.847003, 2.337213
51.505364, -0.164752")
png("ExampleMap.png", width=4, height=3, units="in", res=150)

map <- pointsMap(lat, long, data=d, type="maptoolkit-topo", proj=putm(d$long), scale=FALSE)
scaleBar(map, abslen=500, y=0.8, cex=0.8)
lines(projectPoints(d$lat, d$long), col="blue", lwd=3)
points(projectPoints(52.386609, 4.877008, to=putm(zone=32)), cex=3, lwd=2, col="purple")

dev.off()
ExampleMap

ExampleMap

trouble

If direct installation doesn't work, your R version might be too old. In that case, an update is really recommendable: r-project.org. If you can't update R, try installing from source (github) via instGit as mentioned above. If that's not possible either, you might be able to source some functions from the package zip folder

Vectorize(source)(dir("path/you/unzipped/to/OSMscale-master/R", full=T))

This creates all R functions as objects in your globalenv workspace (and overwrites existing objects of the same name!).