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
Name | Type | Default | Description |
---|---|---|---|
region |
string | 'world' | 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:
Geomap does not enable scrolling
or dragging behavior, and only limited zooming behavior. A basic zoom
out can be enabled by setting the |
dataMode |
string | 'regions' | How to display values on the map. Two values are supported:
|
width |
string | '556px' | Width of the visualization. If no units are given, the default unit is pixels. |
height |
string | '347px' | Height of the visualization. If no units are given, the default unit is pixels. |
colors |
Array of RGB numbers in the format 0xRRGGBB | [0xE0FFD4, 0xA5EF63, 0x50AA00, 0x267114] | Color gradient to assign to values in the visualization. You must have at least two values; the gradient will include all your values, plus calculated intermediary values, with the lightest color as the smallest value, and the darkest color as the highest. |
showLegend |
boolean | true | If true, display a legend for the map. |
showZoomOut |
boolean | false | If true, display a button with the label
specified by the 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 |
string | 'Zoom Out' | Label for the zoom button. |
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. |
zoomOut |
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.