(This article was first published on W. Andrew Barr's Paleoecology Blog, and kindly contributed to R-bloggers)
Here is a little code snippet that shows how to do two things
//--> - Use the Google Maps API to resolve place names into lat-long coordinate pairs.
- Plot R dataframes that contain lat-long data (for example from #1) onto Google Maps for quick visualization using the googleVis package. The embedded map looks a little wonky here but it looks perfectly normal when you plot it locally in your browser. (Note: you need an internet connection for these maps to plot properly).
Data: plotData • Chart ID: MapID71b85742e7
R version 2.14.1 (2011-12-22) • googleVis-0.2.15• Google Terms of Use • Data Policy
R version 2.14.1 (2011-12-22) • googleVis-0.2.15• Google Terms of Use • Data Policy
require(XML)
require(googleVis)
####functions borrwed from http://statisfaction.wordpress.com/2011/10/05/calling-google-maps-api-from-r/
getDocNodeVal=function(doc, path)
{
sapply(getNodeSet(doc, path), function(el) xmlValue(el))
}
gGeoCode=function(str)
{
library(XML)
u=paste('http://maps.google.com/maps/api/geocode/xml?sensor=false&address=',str)
doc = xmlTreeParse(u, useInternal=TRUE)
str=gsub(' ','%20',str)
lat=getDocNodeVal(doc, "/GeocodeResponse/result/geometry/location/lat")
lng=getDocNodeVal(doc, "/GeocodeResponse/result/geometry/location/lng")
list(lat = lat, lng = lng)
}
#### End functions borrowed from http://statisfaction.wordpress.com/2011/10/05/calling-google-maps-api-from-r/
# get some names of paleoanthropological sites in France.
placeNames<-c("Cro Magnon","La Ferrassie","Chauvet Cave","La Chapelle aux Saints", "Le Moustier")
#resolve the placenames into latlong
latLong<-lapply(placeNames, FUN=gGeoCode)
#format the latlong coordinates into the proper format lat:long
latLongFormatted<-lapply(latLong,FUN=function(x){
paste(x$lat[1],x$lng[1],sep=":")
})
#create a dataframe, formatting the place name string first and making the latlong a vector, not list
plotData<-data.frame(name=placeNames,latlong=unlist(latLongFormatted))
sites<-gvisMap(plotData,locationvar="latlong",tipvar="name", options=list(mapType='normal'))
plot(sites)
To leave a comment for the author, please follow the link and comment on his blog: W. Andrew Barr's Paleoecology Blog.
R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series,ecdf, trading) and more...

Zero Inflated Models and Generalized Linear Mixed Models with R.
Zuur, Saveliev, Ieno (2012).