Learn R Programming

RgoogleMaps (version 1.5.1)

GetMapTiles: download map tiles from specified map tile servers such as openstreetmap or Google

Description

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

Usage

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)

Value

list with important information

Arguments

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

Author

Markus Loecher

See Also

GetMap.bbox

Examples

Run this code


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)


}





Run the code above in your browser using DataLab