createMap(data, maptype = "terrain",
mapColor = c("color", "bw"),
source = c("google", "osm", "stamen", "cloudmade"),
location = NULL, locator = "center",
boxBorderMargin = 10, zoom = NULL, locationName = NULL,
lonName = "LONGITUDE", latName = "LATITUDE",
metricName = NULL, labelName = NULL,
scaleRange = c(1, 6), shapeColour = "red",
textColour = "black", textFamily = "mono",
textFace = "plain", textSize = 4, facet = NULL,
ncol = 1, facetScales = "fixed",
geocodeFun = memoise(geocode), getmapFun = get_map,
urlonly = FALSE, api_key = NULL, baseSize = 12,
baseFamily = "sans", title = NULL,
legendPosition = "right",
defaultTheme = theme_bw(base_size = baseSize),
themeExtra = NULL)locationName) then it is used to
gecode artifacts first. If not location then longitude
and latitude must be pget_map. options available are 'terrain',
'satellite', 'roadmap', and 'hybrid''color') or black-and-white
('bw')location specifies
how to use data to determine map location: when 'center'
then function averages out data point longitude and
latitude values to get approximate cneter for the map;
when 'box' it will use min/max ofget_map:
an integer from 3 (continent) to 21 (building), default
value 10 (city). Properly setting zoom for each
map is responsibility of a caller. Zoom is optiolonName and latName are ignored.latName) is used to place each data point on the
map. This parameter is ignored if locationName is
defined.lonName) is used to place each data point on the
map. This parameter is ignored if locationName is
defined.range
of scale_size).facet_wrap), otherwise facet grid (see
facet).facet_wrap parameter scalesgeocode but due to Google API restrictions
use memoised version, e.g. memoise(geocode),
instead (see package get_map but due to map APIs restrictions
use memoised version, e.g. memose(get_map),
instead (see package theme_bw.ggplot2 theme
attributes to add.locationName is missing
then no geocoding is possible. In that case parameters
lonName and latName must contain names of
columns with longitude and latitude information assigned
to each data artifact (data point). If parameter
locationName is defined then geocoding attempts to
use values from the column with this name. Function
geocodeFun specifies geocoding function (with
default geocode from ggmap package).
To speed up processing and avoid hitting global limit on
Google Map API use memoised version of this function:
memoise(geocode) (see
memoise).
Map Locating: Function operates in 2 modes: explicit map
location mode and implicit mode. In explicit mode value
location locates the map using one of two
supported formats. If it is a 2-value vector then it
contains a center of the map. If it is 4-value vector
then it contains bounding box coordinates:
left/bottom/right/top. In implicit mode, when
location is missing, fuction uses parameters
locator and data to locate the map. If
locator is equal to 'center' then it
centers map by averaging longitude and latitude values of
all data artifacts. If locator is equal to
'box' then it determines min/max values of
longitutude and latitude of all data artifacts and
locates the map by corresponding bounding box. Note that
both modes support require explicit parameter zoom
if applicable.
Map Types: variety of map avaiable are from several
public sources: google, OpenStreetMap, Stamen, and
CloudMade maps. The options and terms for each are
different. For example, not all sources support both
color and black-and-white options, or map types terrain,
satellite, roadmap or hybrid. Note that in most cases by
using Google source you are agreeing to the Google Maps
API Terms of Service at
https://developers.google.com/maps/terms.
Shapes: data artifacts are shapes placed over the map.
Their size is scaled using values in metricName
column and their location is determined either by
geocoding values from locationName column or with
longitude and latitude values stored in lonName
and latName columns.
Labels: If labelName is specified then column with
such name contains text labels to place on the map (using
the same locations as for the shapes).data = computeAggregates(asterConn, "pitching",
columns = c("name || ', ' || park teamname", "lgid", "teamid", "decadeid"),
aggregates = c("min(name) name", "min(park) park", "avg(rank) rank",
"avg(attendance) attendance")
)
geocodeMem = memoise(geocode)
createMap(data=data[data$decadeid>=2000,],
source = "stamen", maptype = "watercolor", zoom=4,
facet=c("lgid", "decadeid"),
locationName='teamname', locationNameBak='park', metricName='attendance',
labelName='name', shapeColour="blue", scaleRange = c(2,12), textColour="black",
title='Game Attendance by Decade and League (yearly, 2000-2012)',
geocodeFun=geocodeMem)Run the code above in your browser using DataLab