Как я могу наложить сетку по широте на GetMap (RgoogleMaps) в R?

Я получил карту для построения точек с помощью пакета (RgoogleMaps), используя следующий Rcode:

library(RgoogleMaps)
lat = c(-30.3022,-30.5000,-33.48569)
lon = c(153.1189,151.6500,145.5316)
center = c(mean(lat), mean(lon))
zoom <- min(MaxZoom(range(lat), range(lon)))
mymap <- GetMap(center=center, zoom=zoom, maptype= "terrain", destfile = "MyTile1.png")

Я также успешно нанес свои 3 точки на эту карту, используя:

NewMap <- PlotOnStaticMap(mymap, lat = c(-30.3022,-30.5000,-32.24300),  
      lon = c(153.1189,151.6500,148.6019), destfile = "MyTile1.png", cex=1.5,pch=20, 
      col=c('red', 'purple', 'green'), add=FALSE)       

Теперь мне нужно наложить сетку значений Lat-long или даже просто сетку любого типа. Любые идеи? Я провел довольно обширное исследование, и оказалось, что (RgoogleMaps) не имеет простого способа сделать это.

Спасибо, Д.А.С.


person DASmith    schedule 23.11.2015    source источник
comment
Возможно, вам потребуется определить объект SpatialGrid. Посмотрите этот хороший ответ: gis.stackexchange.com/questions/88830/   -  person Julian Wittische    schedule 23.11.2015


Ответы (1)


Для этого вы можете использовать dismo::gmap. Он возвращает карту Google в виде RasterLayer, и вы можете использовать его для наложения объектов Spatial * (пакет sp), например. SpatialPolygons или SpatialLines и объекты Raster* (растровые объекты) или просто используйте points или lines

library(dismo)
lat = c(-30.3022,-30.5000,-33.48569)
lon = c(153.1189,151.6500,145.5316)
xy <- cbind(lon, lat)

g <- gmap(xy, lonlat=TRUE, scale=2)
plot(g, interpolate=TRUE)
points(xy, col='red', pch=20)
person Robert Hijmans    schedule 23.11.2015