Skip to Content

gvisGeoMap {googleVis}

Google Geo Map with R


The gvisGeoMap function reads a data.frame and creates text output referring to the Google Visualisation API, which can be included into a web page, or as a stand-alone page.

A geo map is a map of a country, continent, or region map, with colours and values assigned to specific regions. Values are displayed as a colour scale, and you can specify optional hover-text for regions. The map is rendered in the browser. Note that the map is not scroll-able or drag-gable, but can be configured to allow zooming.


gvisGeoMap(data, locationvar = "", numvar = "", hovervar = "",
  options = list(), chartid)


data.frame. The data has to have at least two columns with location name (locationvar), value to be mapped to location (numvar) and an optional variable to display any text while the mouse hovers over the location (hovervar).
column name of data with the geo locations to be analysed. The locations can be provide in two formats:
Format 1
'latitude:longitude'. See the example below.
Format 2
Address, country name, region name locations, or US metropolitan area codes, see This format works with the dataMode option set to either 'markers' or 'regions'. The following formats are accepted: A specific address (for example, "1600 Pennsylvania Ave"). A country name as a string (for example, "England"), or an uppercase ISO-3166 code or its English text equivalent (for example, "GB" or "United Kingdom"). An uppercase ISO-3166-2 region code name or its English text equivalent (for example, "US-NJ" or "New Jersey").
column name of data with the numeric value displayed when the user hovers over this region.
column name of data with the additional string text displayed when the user hovers over this region.
list of configuration options. The options are documented in detail by Google online:
character. If missing (default) a random chart id will be generated based on chart type and tempfile


returns list of class


Because of Flash security settings the chart might not work correctly when accessed from a file location in the browser (e.g., file:///c:/webhost/myhost/myviz.html) rather than from a web server URL (e.g. See the googleVis package vignette and the Macromedia web site ( for more details.


Google Chart Tools API:


## Please note that by default the googleVis plot command
## will open a browser window and requires Internet
## connection to display the visualisation.
## Regions Example
## The regions style fills entire regions (typically countries) with colors
## corresponding to the values that you assign. Specify the regions style
## by assigning options['dataMode'] = 'regions' in your code.
G1 <- gvisGeoMap(Exports, locationvar='Country', numvar='Profit',
## Markers Example
## The "markers" style displays a circle, sized and colored to indicate
## a value, over the regions that you specify. 
G2 <- gvisGeoMap(CityPopularity, locationvar='City', numvar='Popularity',
                 options=list(region='US', height=350, 
                              colors='[0xFF8747, 0xFFB581, 0xc06000]'))  
## Example showing US data by state 
states <- data.frame(, state.x77)
G3 <- gvisGeoMap(states, "", "Illiteracy",
                 options=list(region="US", dataMode="regions",
                              width=600, height=400))
## Example with latitude and longitude information
## Show Hurricane Andrew (1992) storm track
G4 <- gvisGeoMap(Andrew, locationvar="LatLong", numvar="Speed_kt", 
                 options=list(height=350, region="US", dataMode="markers"))
## World population
                           Rank=paste(Population$Country, "Rank:", Population$Rank))
G5 <- gvisGeoMap(WorldPopulation, "Country", "", "Rank", 
                 options=list(dataMode="regions", width=600, height=300))


Markus Gesmann, Diego de Castillo

Documentation reproduced from package googleVis, version 0.6.0. License: GPL (>= 2)


Joost Keuskamp's picture

You wrote:


One way of enabling zoom in behavior would be to listen for the regionClick event, change the region property to the appropriate region, and reload the map.    


This is exactly the behaviour I would like my map to have. The map displays all countries with a number of markers. I've been experimenting with gvis.listener.jscode but that only seems to triggen an event on clicking a marker, rather than a region.  Could you please be as kind as to elaborate a little on how to listen to the regionClick event?