download map tiles from specified map tile servers such as openstreetmap or Google
Query the server for map tiles, defined uniquely by their
X and Y ID and zoom. For offline usage, these map tiles are stored in a local directory
Example OSM:http://a.tile.openstreetmap.org/10/549/335.png
Also see https://wiki.openstreetmap.org/wiki/Tile_servers
Example Google mobile: http://mt1.google.com/vt/lyrs=m&x=1325&y=3143&z=13
Example Google satellite: http://mt1.google.com/vt/lyrs=s&x=1325&y=3143&z=13
GetMapTiles(center = c(lat = 52.431635, lon = 13.194773), lonR, latR, nTiles = c(3, 3), zoom = 13, type = c("google", "google-m", "google-s", "osm", "osm-hot", "stamen-toner", "stamen-terrain", "stamen-watercolor")[1], urlBase = "http://mt1.google.com/vt/lyrs=m", tileDir = "/tmp/", CheckExistingFiles = TRUE, TotalSleep = NULL, tileExt = ".png", returnTiles = TRUE, verbose = 0)
center |
optional center (lat first,lon second ) |
lonR |
longitude range |
latR |
latitude range |
nTiles |
number of tiles in x and y direction |
zoom |
Google maps zoom level. |
type |
choice of tile server |
urlBase |
tileserver URL, alternatives would be "http://a.tile.openstreetmap.org/", "http://tile.stamen.com/toner/","http://tile.stamen.com/watercolor/" |
tileDir |
map tiles can be stored in a local directory, e.g. "~/mapTiles/Google/" |
CheckExistingFiles |
logical, if TRUE check if files already exist and only download if not! |
TotalSleep |
overall time (in seconds) that one is willing to add in between downloads. This is intended to lower the risk of a server denial. If NULL no call to Sys.sleep is executed |
tileExt |
image type of tile |
returnTiles |
return tiles in a list? |
verbose |
level of verbosity |
list with important information
Note that size is in order (lon, lat)
Markus Loecher
if (0){ #OSM, Ireland xlim = c(-7, -3.5) ylim = c(51.35, 55.35) Dublin = c(lon=-6.266155,lat=53.350140) DublinMerc = geosphere_mercator(Dublin) ir.osm <- GetMapTiles(lonR=xlim, latR=ylim, zoom=7, verbose=1, type = "osm", tileDir= TRUE) map = plotOSM(ir.osm) par("usr")#A vector of the form c(x1, x2, y1, y2) points(map$bbox$upperLeft,col=2,pch=20) points(map$bbox$lowerRight,col=2,pch=20) points(DublinMerc, col =2, pch=1,cex=1.5) ir.stamenToner <- GetMapTiles(lonR=xlim, latR=ylim, zoom=7,verbose=0, type = "stamen", tileDir= TRUE) plotOSM(ir.stamenToner) ir.stamenWater <- GetMapTiles(lonR=xlim, latR=ylim, zoom=7, verbose=1, type = "stamen-watercolor", tileDir= TRUE) plotOSM(ir.stamenWater) ############################################# zoom=5 nTiles = prod(NumTiles(lonR=c(-135,-66), latR=c(25,54) , zoom=zoom)) us_google_5 = GetMapTiles(lonR=c(-135,-66), latR=c(25,54) , zoom=zoom, TotalSleep = 2*nTiles, type = "google", tileDir= TRUE, verbose = TRUE) PlotOnMapTiles(us_google_5) wtc_ll = getGeoCode("World Trade Center, NY") wtc_google_15=GetMapTiles(wtc_ll, zoom=15,nTiles = c(3,3), type = "google", tileDir= TRUE, verbose = 1) PlotOnMapTiles(wtc_google_15) wtc_google_16 =GetMapTiles(wtc_ll, zoom=16,nTiles = c(4,4), type = "google", tileDir= TRUE, verbose=1) PlotOnMapTiles(wtc_google_16) wtc_stamen=GetMapTiles(wtc_ll, zoom=15,nTiles = c(3,3), verbose=1, type = "stamen-toner", tileDir= TRUE) PlotOnMapTiles(wtc_stamen) ###combine with leaflet: #From:http://stackoverflow.com/questions/5050851/ # best-lightweight-web-server-only-static-content-for-windows #To use Python as a simple web server just change your working #directory to the folder with your static content and type #python -m SimpleHTTPServer 8000, everything in the directory #will be available at http:/localhost:8000/ library(leaflet) m = leaflet::leaflet() %>% addTiles( urlTemplate = "http:/localhost:8000/mapTiles/OSM/{z}_{x}_{y}.png") m = leaflet::leaflet() %>% addTiles( urlTemplate = "http:/localhost:8000/mapTiles/Google/{z}_{x}_{y}.png") m = m %>% leaflet::setView(-74.01312, 40.71180, zoom = 16) m = m %>% leaflet::addMarkers(-74.01312, 40.71180) #Quadriga: m = m %>% leaflet::setView(13.39780, 52.51534, zoom = 16) m = m %>% leaflet::addMarkers(13.39780, 52.51534) }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.