Overview
A geomap is a map of a country, continent, or region map, with colors and values assigned to specific regions. Values are displayed as a color scale, and you can specify optional hovertext for regions. The map is rendered in the browser using an embedded Flash player. Note that the map is not scrollable or draggable, but can be configured to allow zooming.
Examples
We have two examples here: one that uses the regions display style , and another that uses the markers display style .
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.
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', { 'packages':['geomap'], // Note: you will need to get a mapsApiKey for your project. // See: https://developers.google.com/chart/interactive/docs/basic_load_libs#load-settings 'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY' }); google.charts.setOnLoadCallback(drawMap); function drawMap() { var data = google.visualization.arrayToDataTable([ ['Country', 'Popularity'], ['Germany', 200], ['United States', 300], ['Brazil', 400], ['Canada', 500], ['France', 600], ['RU', 700] ]); var options = {}; options['dataMode'] = 'regions'; var container = document.getElementById('regions_div'); var geomap = new google.visualization.GeoMap(container); geomap.draw(data, options); }; </script> </head> <body> <div id="regions_div" style="width: 900px; height: 500px;"></div> </body> </html>
Markers Example
The "markers" style displays a circle, sized and colored to indicate a value, over the regions that you specify.
<html> <head> <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script> <script type='text/javascript'> google.charts.load('current', {'packages': ['geomap']}); google.charts.setOnLoadCallback(drawMap); function drawMap() { var data = google.visualization.arrayToDataTable([ ['City', 'Popularity'], ['New York', 200], ['Boston', 300], ['Miami', 400], ['Chicago', 500], ['Los Angeles', 600], ['Houston', 700] ]); var options = {}; options['region'] = 'US'; options['colors'] = [0xFF8747, 0xFFB581, 0xc06000]; //orange colors options['dataMode'] = 'markers'; var container = document.getElementById('map_canvas'); var geomap = new google.visualization.GeoMap(container); geomap.draw(data, options); }; </script> </head> <body> <div id='map_canvas'></div> </body> </html>
Loading
The google.charts.load
package name is "geomap"
google . charts . load ( 'current' , { 'packages' : [ 'geomap' ]});
The geomap visualization class name is google.visualization.GeoMap
var visualization = new google . visualization . GeoMap ( container );
Data Format
Two address formats are supported, each of which supports a different number of columns, and different data types for each column. All addresses in the table must use one or the other; you cannot mix types.
- Format 1: Latitude/Longitude locations.This format works only when the
dataMode
option is 'markers'. If this format is used, you do not need to include the Google Map Javascript. The location is entered in two columns, plus two optional columns:- [ Number, Required ] A latitude. Positive numbers are north, negative numbers are south.
- [ Number, Required ] A longitude. Positive numbers are east, negative numbers are west.
- [ Number, Optional ] A numeric value displayed when the user hovers over this region. If column 4 is used, this column is required.
- [ String, Optional ] Additional string text displayed when the user hovers over this region.
- Format 2: Address, country name, region name locations, or US metropolitan
area codes.This format works with the
dataMode
option set to either 'markers' or 'regions'. The location is entered in one column, plus two optional columns:- [ String, Required
] A map location. 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"). Note: Regions can only be specified when the dataMode option is set to 'regions'.
- A metropolitan area code . These are three-digit metro codes used to designate various regions; US codes only supported. Note that these are not the same as telephone area codes.
- [ Number, Optional ] A numeric value displayed when the user hovers over this region. If column 3 is used, this column is required.
- [ String, Optional ] Additional string text displayed when the user hovers over this region.
- [ String, Required
] A map location. The following formats are
accepted:
Note:A map can display a maximum of 400 entries;
if your DataTable or DataView holds more than 400 rows, only the first 400
will be shown. The fastest modes are dataMode='regions'
with locations
specified as ISO codes, and dataMode='markers'
with lat/long
enties. The slowest mode is dataMode='markers'
with a string address.
Important:Your DataTable
must
include every optional
column preceding any column that you want to use. So, for example, if you want
to specify a lat/long table, and only wanted to use columns 1, 2, and 4, your DataTable
must
still define column 3 (though you don't need to add any values to it):
dataTable = new google.visualization.DataTable(); dataTable.addRows(1); dataTable.addColumn('number', 'LATITUDE', 'Latitude'); dataTable.addColumn('number', 'LONGITUDE', 'Longitude'); dataTable.addColumn('number', 'VALUE', 'Value'); // Won't use this column, but still must define it. dataTable.addColumn('string', 'HOVER', 'HoverText'); dataTable.setValue(0,0,47.00); dataTable.setValue(0,1,-122.00); dataTable.setValue(0,3,"Hello World!");
Configuration Options
region
The area to display on the map. (Surrounding areas will be displayed as well.) Can be either a country code (in uppercase ISO-3166 format), or a one of the following strings:
-
world
- (Whole world) -
us_metro
- (United States, metro areas) -
005
- (South America) -
013
- (Central America) -
021
- (North America) -
002
- (All of Africa) -
017
- (Central Africa) -
015
- (Northern Africa) -
018
- (Southern Africa) -
030
- (Eastern Asia) -
034
- (Southern Asia) -
035
- (Asia/Pacific region) -
009
- (Oceania) -
145
- (Middle East) -
143
- (Central Asia) -
151
- (Northern Asia) -
154
- (Northern Europe) -
155
- (Western Europe) -
039
- (Southern Europe)
Geomap does not enable scrolling
or dragging behavior, and only limited zooming behavior. A basic zoom
out can be enabled by setting the showZoomOut
property.
dataMode
How to display values on the map. Two values are supported:
-
regions
- Colors a whole region with the appropriate color. This option cannot be used with latitude/longitude addresses. See Regions Example . -
markers
- Displays a dot over a region, with the color and size indicating the value. See Markers Example .
width
height
colors
showLegend
zoomOutLabel
property. Note that
this button does nothing when clicked
, except throw the zoomOut
event.
To handle zooming, catch this event and change the region
option.
You can only specify showZoomOut
if
the region
option
is smaller than the world view. 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.zoomOutLabel
Methods
Method | Return Type | Description |
---|---|---|
draw(data, options)
|
None | Draws the map. Can return before drawing is done (see drawingDone()
event). |
getSelection()
|
Array of selection elements | Standard getSelection()
implementation. Selected elements
are rows. This method only works when the dataMode
option
is 'regions'. You can only select a region with an assigned value. |
setSelection( selection
)
|
None | Standard setSelection()
implementation. Treats a selection
as a row selection, and supports multiple row selections. Only regions
with assigned values can be selected. |
Events
Name | Description | Properties |
---|---|---|
error
|
Fired when an error occurs when attempting to render the chart. | id, message |
select
|
Fired when the user clicks a region with an assigned value. To learn
what has been selected, call Note: Because of certain limitations, the |
None |
regionClick
|
Called when a region is clicked. Works both for 'regions' and 'markers' Note: Because of certain limitations, the |
An object with a single property, region
, that is a string
in ISO-3166 format describing the region clicked. |
Called when the zoom out button is clicked. To handle zooming, catch
this event and change the Note: Because of certain limitations, the |
None | |
drawingDone
|
Called when the geomap has finished drawing. | None |
Data Policy
Locations are geocoded by Google Maps. Any data that does not require geocoding is not sent to any server. Please see the Google Maps Terms of Service for more information on their data policy.
Notes
Because of Flash security settings, this (and all Flash-based visualizations) 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., http://www.myhost.com/myviz.html). This is typically a testing issue only. You can overcome this issue as described on the Macromedia web site .