(for lack of a better name)

What it is: a list of open-source tools that can be used to deftly present and share geospatial information on the web. Matth is collecting this toolbox for Data Driven Detroit. See also Graphing Tools.

What it is: An open-source tool for rendering maps (more info)

Mapnik has anti-aliasing and subpixel rendering, so the maps look good. There are Python bindings, which make it easier to generate maps inside of Python apps (like Django).

The documentation for Mapnik is not very good. However, there are several good tutorials, code examples, and the online community (mailing list, IRC chatroom) are friendly and helpful.

Requires knowledge of: Geospatial data formats, XML, installing software libraries, familiarity with the command line; for advanced use: ability to read source code and discover functionality.

What it is: A tool for writing easier-to-read styles for Mapnik.

Mapnik uses a complex XML-based syntax for designing maps. Cascadenik uses a simpler syntax, which makes designing maps for Mapnik easier.

Requires knowledge of: basic CSS concepts, familiarity with the command line, ability to read and code basic XML.

What it is: A plugin for QGIS that allows live preview of tiles rendered by Mapnik using Cascadenik styles. Makes it easy to design styles before rendering thousands of tiles.

Requires knowledge of: Mapnik, Cascadenik, basic understanding of QGIS.

What it is: A way to generate custom map tiles in the cloud.

TileMill is an image of a large Amazon instance configured for generating tiles using Mapnik. Comes with a set of command-line tools for launching jobs and instances remotely.

Source: anything Mapnik reads (eg. Shapefiles), uploaded to an S3 bucket. Output: map tiles (usually .png). Destination: S3 bucket; directory structure configured for use with OpenLayers or Google Maps.

Requires knowledge of: Amazon cloud computing services, Mapnik, cascadenik, comfort with the command line.

What it is: A way to put custom interactive maps on a USB drive for use in the field, where a wireless connection to custom data may not always be available.

Uses OpenLayers to display one or several map layers. Can also add custom KML files, which will be rendered over the tiles.

Requires knowledge of: basic Javascript, comfort with the command line.

What it is: A website that generates page-sized OpenStreetMap maps that you can print and carry around, annotating as you go. Annotated maps can be uploaded and are automatically superimposed on OpenStreetMap, making it easier to add the annotations to the online map. A barcode on each map matches the printout to the correct are of the online map.

Walking Papers makes the processo of converting data from physical surveys (formal or informal) into OpenStreetMap changes.

Requires knowledge of: OpenStreetMap interface.

What it is: An Amazon EBS volume with regularly updated data from OpenStreet Map.

Can be used to quickly access a huge database of geospatial information, including streets, points of interest, and terrain features (rivers, coasts, etc.)

Requires knowledge of: Amazon cloud computing services, command line tools, basic PostgreSQL. Also requires Mapnik, cascadenik familiarity for producing maps.

What it is: A open-source framework for quickly developing web applications.

See also: There are several alternative frameworks, including Ruby on Rails. RoR's geospatial tools are not currently as mature as GeoDjango's, but will probably be just as serviceable in the near future.

Requires knowledge of: Web development tools (X/HTML, CSS, Javascript), Python,

What it is: An open-source addon to Django that allows for spatial queries.

GeoDjango makes it easier to use the geospatial query features in a number of popular database systems in Django. Includes tools for creating database models and importing from vector geospatial files (eg. shapefiles).

Requires knowledge of: Django, geodata file formats and structure, geospatial queries (concepts only; syntax is well documented), some PostgreSQL, familiarity with the command line.

What it is: An Amazon instance configured for running GeoDjango applications and PostgreSQL databases.

Can be used to quickly launch GeoDjango applications, without having to fight with notoriously hard-to-install components.

Requires knowledge of: Amazon cloud computing services and command line tools, familiarity with the command line, version control, Django/GeoDjango, PostgreSQL.

See also: a simple application designed to run on this AMI

What it is: An open source library for translating between raster geospatial formats.

GDAL Utilities form the core of the toolkit.

Requires: familiarity with the command line, general knowledge of geospatial formats

What it is: a companion library that can read various vector formats, including Shapefiles and Mapinfo files.

Included utility functions: ogrinfo - Lists information about an OGR supported data source. ogr2ogr - Converts simple features data between file formats

Requires: familiarity with the command line, general knowledge of geospatial formats

What it is: A JavaScript library for displaying maps online, especially in the "slippy map" format a la Google Maps, where you can easily zoom/pan a map. An open-source alternative to using the Google Maps library.

OpenLayers can display map tiles from many sources, including OpenStreetMap and your own tiles (for example, custom tiles rendered with Mapnik).

Requires: Working knowledge of JavaScript

What it is: A JavaScript API for embedding Google Maps into webpages, as well as tools for displaying data (points, lines, polygons, KML) on maps. Well documented and widely used.

Requires knowledge of: JavaScript

What it is: A JavaScript API for standardizing addresses, turning an address into a lat-lng, and reverse geocoding.

Requires knowledge of: JavaScript, JSON

What it is: A Python library for accessing Google's various data APIs, including geocoding.

Requires knowledge of: Python, Google API capabilities (well documented).


In the wild

Examples of these technologies in use.

Related articles