###### Description

Produce maps of nations in the world or of the United States which are annotated according to any numeric data with colored regions or with circles of various sizes and colors.

###### Pros & Cons

- Color map regions according to any associated numeric data.
- Draw circles at any coordinates with size and color reflecting any two associated dimensions of numeric data.
- Choose to linearly or logarithmically scale numeric data for each dimension of annotation.
- Choose from any of several color ranges for the coloring annotations. Each will also work well when printed with only black ink.
- Map legends for each dimension of annotation show how the extrema of the data are represented as colors or circle sizes.
- Present map according to an Albers equal-area conic projection, a Lambert conformal conic projection, or a Mercator projection.

###### Applications

GeoMaps can make this map of 2008 United States populations (log-scaled) in an Albers equal-area conic projection:

Here it is in a Lambert conformal conic projection:

And here it is in a Mercator projection:

It can also make this map of the world's 25 most populous countries, illustrating also their gross domestic products (both dimensions log-scaled):

###### Implementation Details

For region coloring annotations, GeoMaps expects a table with:

- A text attribute that describes that datum's region name (for example, "India" or "Indiana").
- A numeric attribute that will determine that region's color.

For circle annotations, GeoMaps expects a table with numeric attributes that:

- Describe that datum's longitude in degrees (from -180 to +180).
- Describe that datum's latitude in degrees (from -90 to +90).
- Determine the size of the circle at that coordinate.
- Determine the color of the circle at that coordinate.

###### Usage Hints

- If you have region names but not latitude and longitude data in your table, you can still easily produce a circle-annotated map using the Geocoder algorithm, which will find the coordinate data for each region name and add it to the table.
- There is no perfect map projection -- the choice depends on your application. We recommend:
- Albers equal-area conic if preserving area is important.
- Lambert conformal conic if preserving angles (or shapes) is important.
- Mercator if presenting a familiar and fairly standardized projection is important.

###### Links

- Source Code: Link

###### Acknowledgments

Russell Duhon's Python script paved the way for the GeoMaps algorithm.