A Product of Mapbox
# Introduction

TileMill is a tool for cartographers to quickly and easily design maps for the web using custom data. It is built on the powerful open-source map rendering library [Mapnik](http://www.mapnik.org) - the same software [OpenStreetMap](http://www.openstreetmap.org/) and [MapQuest](http://www.mapquest.com) use to make some of their maps. TileMill is not intended to be a general-purpose cartography tool, but rather focuses on streamlining and simplifying a narrow set of use cases.

For anyone coming from a GIS or cartography background, the biggest assumption TileMill makes is the final projection - TileMill maps are always projected to ‘Web Mercator’. As the name suggests, this projection is popular with web mapping applications, thus maps created with TileMill can be displayed using the Google Maps API, OpenLayers, and a number of other projects.

TileMill can also export directly to the SQLite-based [MBTiles](http://www.mbtiles.org) file format. This format was designed to make traditional web maps available offline and is used by [Maps on a Stick](http://mapbox.com/tools/maps-stick) and the [MapBox iPad App](http://mapbox.com/ipad).

TileMill is a project of [Development Seed](http://www.developmentseed.org) and the source code is [available on GitHub](http://github.com/mapbox/tilemill).

## Usage

After TileMill is installed you will want to familiarize yourself with the basics of starting and stopping the app as well as configuring any relevant settings.

### Mac OS X

TileMill for Mac OS X is meant to be run as a desktop-style application.

- **Start** TileMill by double-clicking its icon in the `Applications` folder
- **Stop** TileMill by quitting the application
- **Files** used by TileMill are in your user's `Documents/MapBox` folder
- **Logs** are viewable by chosing `Console` from the app's `Window` menu

Once TileMill has been started you can access the interface in your web browser at `http://localhost:8889`.

### Ubuntu

TileMill on Ubuntu runs as a server and is kept up and running by `upstart`. By default TileMill will already be running when you start your system.

- **Start** TileMill by running `sudo start tilemill`
- **Stop** TileMill by running `sudo stop tilemill`
- **Restart** TileMill by running `sudo restart tilemill`
- **Files** used by TileMill are in `/usr/share/mapbox`
- **Logs** are written to `/var/log/tilemill`

Once TileMill has been started you can access the interface in your web browser at `http://localhost:8889`.

You can alter the server settings of TileMill by editing the configuration file at `/etc/tilemill/tilemill.config`. The configuration file should contain a JSON object:

    {
      "port": 3001,
      "files": "/home/ubuntu/mapbox"
    }

- `port` the port that the server should listen on. Defaults to `8889`
- `host` a single or array of hostnames that can be used to connect to the server. Defaults to `localhost`
- `files` path to the files directory. Defaults to `/usr/share/mapbox`

## Basics

### GIS

If you have never worked in GIS or cartography before, there a number of basics to go over before jumping into TileMill.

GIS stands for Geographic Information System and refers to any system dealing with the recording, analysis, or display of data that is related to a location. TileMill is focused on the ‘display’ part of that definition, but does provide some tools for basic analysis. Cartography is the practice of making maps.

### Map projections

**Projections** refer to the method used for representing a three-dimensional object like the Earth on a two-dimensional surface like a sheet of paper or a computer screen. While TileMill maps are always projected as ‘Web Mercator’ you will come across data sources that use [many different projections](http://en.wikipedia.org/wiki/Map_projection).

**Coordinate systems** provide ways of describing a specific location on the earth. For example, you can describe the location of Washington, DC with its latitude and longitude approximately `(38,-77)`. Another method of describing its location might be to provide the *number of meters to Washington, DC north and west from the Equator* - and some coordinate systems do exactly that.

The **[proj4](http://trac.osgeo.org/proj/) SRS string** (spatial referencing system) combines these two concepts and provides a way to describe the projection and coordinate system of a datasource at once. For example, the [WGS84](http://en.wikipedia.org/wiki/World_Geodetic_System) proj4 SRS looks like this:

    +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs

TileMill can generally autodetect the SRS of shapefiles and other datasources. You may need to provide an SRS string for some datasources if TileMill cannot autodetect the value.

### Zoom levels

Interactive, tiled maps are designed and rendered at a number of different scales. A zoom level is a predefined scale at which a map is rendered. OpenStreetMap, Google Maps, and most other online maps zoom levels are scaled such that the entire world fills a 256x256 pixel tile at zoom level 0, and doubles in width & height at each subsequent zoom level. 

For example: at zoom level 6 you get a full view of a medium-sized country.  At zoom level 11 you’re looking at a metropolitan-region-sized area. At Zoom level 16 you’re down to a neighborhood scale.

## Interface tour

If you’ve got TileMill running on your computer, you can access the web interface in any modern web browser at [http://localhost:8889](http://localhost:8889) (by default - this address is configurable). The main TileMill screen is a project browser, and you will see a few example projects there already to give you an idea of what TileMill can do. If you click on one of the projects you will be taken to the editing interface:

![Screenshot](manual/project.png)

1. Main toolbar
2. Map preview
3. Layers list
4. Stylesheet editor

### Map preview

![Screenshot](manual/map.png)

1. Map preview
2. Zoom controls & full-page toggle

TileMill provides an interactive preview of the map as you are designing it. The map updates every time you save the project. 

You can pan around by clicking and dragging, and zoom in and out clicking on the + and - buttons. Zooming can also be controlled with your mouse wheel when the cursor is over the map, or by holding down the Shift key and drawing a box on the map of the area you wish to zoom to. The zoom level indicator displays the current zoom level, which is useful to know when designing and checking styles.

The full-page toggle button expands the size of the preview, and collapses it back once you are in the big-preview mode.

When you save a project TileMill also saves the position and scale you were viewing the map at, so if you are only mapping a small area such as a city you won’t have to zoom in there every time you reopen the project.

### Layers list

![Screenshot](manual/tools.png)

1. Add layer button
2. Geometry icon
3. IDs and classes
4. Inspect layer data
5. Edit layer
6. Delete layer

Clicking the add layer button opens a dialog where you can choose a shapefile, KML file, GeoJSON file, or GeoTIFF to add to the project. Each layer must have one ID (indicated by the `#` prefix), and may optionally have one or more classes (indicated by a `.` prefix). These are defined when the layer is added but can be changed any time by clicking the ‘Edit layer’ icon.

A layer can be easily reordered by clicking on the draggable geometry icon and moving it above or below another layer. Overlapping areas of layers will be rendered such that the highest layer on the list will cover layers beneath it.

For the purposes of styling, a layer can be one of four types of geometries - point, line, polygon, or raster. This is indicated by the geometry icon. Certain types of styles are only applicable to certain types of layers, so it’s good to know what each one is.

### Layer data inspector

![Screenshot](manual/inspector.png)

If you click on the magnifying glass icon of any layer, a drawer will slide in from the left and a table of data will appear. (It may take a few seconds for the data to show up if you are inspecting a complex file.)

### Code editor

![Screenshot](manual/editor.png)

1. Active stylesheet tab
2. Inactive stylesheet tabs
3. New stylesheet button
4. Line numbers
5. Text area
6. Color palette
7. Font reference
8. Carto reference


TileMill provides an integrated code editor for editing the map stylesheets. This editor will make sure you write valid code, coloring correctly formatted text as you write it (syntax highlighting) and highlighting any errors if you try to save an invalid file.

As your map style becomes more complex, you may wish to keep things organized by splitting the style across multiple files. New stylesheets can be added with the + button on the tab bar and entering a name for the file. Though not required, there is a convention of using the file extention `.mss` for ‘map stylesheet’. 

Stylesheets can be re-ordered by clicking and dragging their tabs within the tab bar. Note that just like CSS, the order can have an effect on the way a map is rendered - if two styles conflict, the one that is defined last will be applied. Here, ‘last’ means closest to the bottom of the file in the tab furthest to the right.

**Color palette**

TileMill keeps track of all the colors you use in a project and makes it easy to edit them with a color picker.

**Font reference**

Clicking on the ‘Font’ icon will display a list of all the system fonts Mapnik can find. Clicking on a font will highlight its name making it easy to copy & paste it into your stylesheet.

Unlike what you may be used to from CSS or common word processor interfaces, there are no distinct properties for a font’s family (eg ‘Arial’), weight (eg bold), and style (eg italic). This is why, for example, “Arial Regular”, “Arial Bold”, and “Arial Italic” are listed individually.

**Carto reference**

Clicking on the ‘Carto’ icon will display an abbreviated reference of the different properties you can use in your stylesheet.

## Files & directories

By default TileMill manages project files, data and other configuration in a `MapBox` directory on your hard drive. TileMill will create this directory and its contents automatically when you first start the program.

- **Mac OS X:** The `MapBox` directory should be in your user's `Documents` directory.

- **Ubuntu:** The `MapBox` directory is located at `/usr/share/mapbox`. You may want to symlink this to your user's home directory for easier access.

### Directory overview

The layout of the `MapBox` directory is as follows:

    MapBox/
      cache/
      data/
      export/
      project/
      app.db

The **cache** directory contains a local copy of any remote datasources you add to your projects. For example, if you add the [http://mapbox-geodata.s3.amazonaws.com/natural-earth-1.3.0/physical/10m-rivers-north-america.zip](http://mapbox-geodata.s3.amazonaws.com/natural-earth-1.3.0/physical/10m-rivers-north-america.zip) shapefile to one of your projects, it will be saved to the cache directory and symlinked into your project's layers directory:

    MapBox/cache/5316a7a8-10m-rivers-north-america

The **data** directory is where you should place any data files you would like to use on your maps. When adding or editing a layer you will be able to use this directory in the file browser.

The **export** directory contains any export files generated by TileMill.

The **project** directory contains projects accessible by TileMill.

## Adding layers

Layers are how sets of data are added to a map in TileMill. Each  layer references a single shapefile, geoJSON file, KML file, geoTIFF, or PostGIS database query. Multiple layers are combined over top of each other to create the final map - if you are familiar with layers in Photoshop or other graphics software the concept is very similar. TileMill currently supports creating maps with several formats.

### ESRI Shapefile
Usually referred to simply as ‘shapefile’, this is de facto standard file format for portable GIS data storage and is supported by most GIS software applications. The tricky part is that a single 'shapefile' is actually a collection of at least three files (possibly more). The required components are:

1. `file.shp` contains the geographical point, line, or polygon information
2. `file.dbf` a database of information describing objects in the .shp file
3. `file.shx` an index file

Because TileMill is designed to handle files across the Internet and dealing with collections of files complicates that somewhat, shapefiles must be stored in a zip file before they can be added to a TileMill project.

### GeoJSON

GeoJSON is a specification for storing spatial data in [JavaScript Object Notation](http://en.wikipedia.org/wiki/JSON), a compact plain-text format. The format can store points, lines, and polygons.

### KML

Keyhole Markup Language, or KML, is a standard geospatial data format that was originally developed for and popularized by Google Earth *1*. TileMill has limited support of this format - point and polygon styles will be ignored, and other features such as images and 3D models are not supported. There is also no support for the compressed KMZ format at this time.

- *1: Google acquired this project in 2004 from Keyhole, Inc., hence the name*

### GeoTIFF

GeoTIFF is a popular format for storing geospatial raster imagery such as satellite photography, remote sensing imagery, and digital elevation models.

Since Mapnik is currently unable to reproject raster data sources, to load them in TileMill you must ensure they are in Web Mercator projection. This can be done using the `gdalwarp` tool. For example, to reproject a Natural Earth world geotiff from its native WGS84, you would use a command such as

    gdalwarp -s_srs EPSG:4326 -t_srs "+proj=merc +a=6378137 +b=6378137 \
      +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null \
      +wktext +no_defs" -r cubic \
      -te -20037508.34 -20037508.34 20037508.34 20037508.34 \
      input_file.tif output_file.tif

### PostGIS

[PostGIS](http://postgis.refractions.net/) is an extension for PostgreSQL that allows you to store geographical objects in a database. It provides special functions and indexes for querying and manipulating spatial data and can be used as a powerful storage/analysis tool. From TileMill you can connect to a PostGIS supported database and run queries from the application directly.

When adding a PostGIS layer to your project you will need to supply a connection string with at least some of the following information:

- `dbname` **Required.** The database that containing geodata for your layer.
- `user` Your PostGIS username.
- `password` Your PostGIS password.
- `host` The hostname to use when connecting to your server.
- `port` The port to use when connecting to your server.

Here are some example connection strings:

    dbname=gis
    dbname=gis user=mapbox
    dbname=gis user=mapbox password=foo host=localhost port=5984

## The styling language

If you are familiar with web design with Cascading Stylesheets (CSS) the format of TileMill’s styling language will look familiar, though the exact properties are quite different.

### Symbolizers

Mapnik, the rendering software TileMill is built upon, provides a number of fundamental style types out of which to build complex styles. Each type is called a symbolizer, and has its own set of configurable properties.

There are currently 10 different symbolizers available in Mapnik, each of which can be applied to a certain type or types of geometry:

1. Line (for lines & polygons)
2. Polygon (for polygons*)
3. Point (for points)
4. Text (for points, lines, and polygons)
5. Shield (for points & lines)
6. Line Pattern (for lines & polygons)
7. Polygon Pattern (for polygons*)
8. Raster (for rasters)
9. Markers (for points, lines, & polygons)
10. Buildings

*Note that these polygon symbolizers can technically be assigned to line geometries, but usually with unexpected or unsatisfactory results and is not really recommended.*

Multiple symbolizers can be applied to the same layer - some common combinations are line & polygons, point & text, line & markers, and line & line pattern.

A symbolizer is not present on the map unless it has a style defined, but once one of its style properties is added to the stylesheet default values will apply to the other properties for that symbolizer unless overridden. For example, the default line symbolizer color is black, so if you assign a `line-width` to a layer that line will be black unless you also assign a different color.

### The line symbolizer

Line styles can be applied to line or polygon geometries.

### Multiple symbolizers

A single layer is not limited to one of each symbolizer type. For example, multiple semi-transparent line symbolizers can be assigned to a polygon to achieve a soft glow or shadow effect. Multiple text symbolizers can be assigned to the same point with different offsets to label it with more than one field.

Normally when you assign a style to a layer, the style applies to a default symbolizer that is created. In the following example, the second rule overrides the first one because they both apply to the default symbolizer.

    #layer {
       line-color: #C00;
       line-width: 1;
    }

    #layer {
       line-color: #0AF;
       line-opacity: 0.5;
       line-width: 2;
    }

You can explicitly declare any number of new symbolizers for a layer that will be rendered in addition to styles they would otherwise conflict with. New symbolizers are defined using a double colon syntax inspired by [pseudo-elements](http://www.w3.org/TR/css3-selectors/#pseudo-elements) in CSS3:

    #layer {
       /* styles for the default symbolizers */
    }
    #layer::newsymbol {
       /* styles for a new symbolizer named ‘newsymbol’ */
    }

Note that `newsymbol` is not a special keyword but an arbitrary name chosen by the user. To help keep track of different symbolizers you can name additional symbolizers whatever makes sense for the situation. Some examples: `#road::casing`, `#coastline::glow_inner`, `#building::shadow`.

Returning to our previous example, declaring the second rule will add a blue glow on top of the red line instead of replacing it:

    #layer {
       line-color: #C00;
       line-width: 1;
    }

    #layer::glow {
       line-color: #0AF;
       line-opacity: 0.5;
       line-width: 4;
    }

![Screenshot](manual/symbolizer-1.png)

Symbolizers are rendered in the order they are defined, so here the `::glow` (blue line) appears on top of the first style (red line).

Named symbolizer styles can still be overridden by further styles that reference the same symbolizer name. In this example, the line color will be green, not green-on-yellow.

    .border::highlight {
       line-color: #FF0;
       line-opacity: 0.5;
    }

    .border::highlight {
       line-color: #3F6;
    }

![Screenshot](manual/symbolizer-2.png)

## MapBox GeoData

The MapBox GeoData Library is a collection of free datasets that have been optimized to work well with TileMill. The library is browsable from the TileMill interface through the Add Layer dialog - click on the 'browse' button next to the file field, then click the 'MapBox' button with the cloud icon.

All text within the data has been converted to UTF-8 which is the preferred encoding for working with data in TileMill.

All the data has been reprojected to Google Mercator projection, and is properly auto-detected as such by TileMill. All geometry data has also been cropped (where necessary) to fit within the Google Mercator square Earth bounding box of 180.0° east/west and 85.05112877980659° north/south.

All shapefiles have been indexed using Mapnik's shapeindex tool. (The article [Speed Optimization: Shapefile Indexes][1] explains the benefits of this and how you can make sure your own shapefiles are indexed.)

[1]: http://support.mapbox.com/kb/preparing-your-geographic-data/speed-optimization-shapefile-indexes

### Natural Earth

Natural Earth is a public domain world-wide dataset available from . It is designed to be consistent with itself across themes and appropriate at scales down to 1:10 million. (In TileMill it works well from zoom level 0 up to about 7 or 8.)

Many Natural Earth files contain a "ScaleRank" column. The values in these columns can be taken as hints about the approximate zoom-level at which it makes sense to start showing these features. Similarly, some files contain a "LabelRank" column which hints an appropriate zoom level to show a label for that feature.

#### Cultural themes

**Administrative Level 0**:

- 10m-admin-0-boundary-breakaway-disputed-areas.zip
- 10m-admin-0-boundary-lines-land.zip
- 10m-admin-0-boundary-lines-map-units.zip
- 10m-admin-0-boundary-lines-maritime-indicator.zip
- 10m-admin-0-breakaway-disputed-areas-scale-ranks.zip
- 10m-admin-0-breakaway-disputed-areas.zip
- 10m-admin-0-countries.zip
- 10m-admin-0-country-points.zip
- 10m-admin-0-map-subunits.zip
- 10m-admin-0-map-units.zip
- 10m-admin-0-pacific-groupings.zip
- 10m-admin-0-scale-ranks-with-minor-islands.zip
- 10m-admin-0-scale-ranks.zip
- 10m-admin-0-sovereignty.zip

The four 10m-admin0-boundary- files contain lines suitable for drawing borders. 

Natural Earth provides several versions of its administrative level 0 units to account for different mapping needs and different definitions of "country". See their [table of comparison][NEadm0] between sovereign states, countries, map units, and map subunits to help decide which one will best fit your project.

[NEadm0]: http://www.naturalearthdata.com/downloads/10m-cultural-vectors/10m-admin-0-details/#ne_table

Also note the following disclaimer from Natural Earth regarding political boundaries:

*Natural Earth Vector draws boundaries of sovereign states according to defacto status. We show who actually controls the situation on the ground. For instance, we show China and Taiwan as two separate states. But we show Palestine as part of Israel. Please feel free to mashup our countries and disputed areas themes to match your particular political outlook.*

Border files contain a "Status" column that indicates several types of boundaries and can be used to for styling purposes (eg, making certain lines dashed or dotted).

- Treaty: established, agreed boundary
- Indefinite: boundaries that have not been surveyed, often in sparsely-populated regions.
- Diputed: the border is not fully recognize or agreed upon by both sides.
- Breakaway: indicate a region that has declared independence from a state but is not fully recognized.
- Claim boundary: indicates area claimed but not controlled by an outside state.

**Administrative Level 1**:

- 10m-admin-1-states-provinces-lakes-shp.zip
- 10m-admin-1-states-provinces-lines-shp.zip
- 10m-admin-1-states-provinces-shp.zip

Administrative level 1 units are sub-national administrative regions such as states, provinces, departments, communes, and territories. The three versions are a polygons layer with large inland water bodies cut out, a lines layer containing only land boundaries, and a polygons layer that does not include lake shapes. There are 3,565 administrative level 1 units in the 1.3.0 version of Natural Earth.

**Populated Places**:

- 10m-populated-places-simple.zip
- 10m-populated-places.zip

The two populated places layers are points of cities and towns around the world. The two files each contain the same 7,314 locations. The only difference is that the -simple version contains only a subset of the metadata - 34 database columns instead of the full 93.

**Transporation**:

- 10m-railroads.zip
- 10m-roads-north-america.zip
- 10m-roads.zip

The roads shapefile contains major road networks across the world. There is also a supplemental file with additional roads for North America. 

The railroads file contains major railroad lines throughout North America - data for other continents is not yet available from Natural Earth.

**Urban Areas**:

- 10m-urban-areas-landscan.zip
- 10m-urban-areas.zip

The urban data areas are polygons of "dense human habitation" derived from 1km-resolution MODIS imagery from 2002-2003. The -landscan version has fewer, more pixelated areas, but is separated and associated with metadata for each city. The main version has more coverage and more organic-looking geometries, but has no separation between adjacent connected cities and no specific metadata.

**US Parks**:

- 10m-us-parks-area.zip
- 10m-us-parks-line.zip
- 10m-us-parks-point.zip

As described by Natural Earth, the US parks files contain "the 392 authorized National Park Service units in the United States of America. The data does not include affiliated areas and unauthorized park units. Park units over 100,000 acres (~40,000 hectares) appear as areas, park units under 100,000 acres as points, and linear parks, including rivers, trails, and seashores, as lines. There are a few exceptions to this rule."

(Read the full description [on NaturalEarthData.com](http://www.naturalearthdata.com/downloads/10m-cultural-vectors/parks-and-protected-lands/).)

#### Physical Themes

The Natural Earth Physical Themes contain physical features such as water bodies, glaciers, and mountain peaks, as well as more abstract geographical features such as latitude and longitude lines.

**Antarctic Ice Shelves**:

- 10m-antarctic-ice-shelves-lines.zip
- 10m-antarctic-ice-shelves-polys.zip

The Antarctic ice shelves files reflect the non-seasonal ice surrounding Antarctica. The lines file represents just the outer edge, which may be useful for styling purposes. 

**Bathymetry**

- 10m-bathymetry.zip

Bathymetry shows the depth of the oceans, here in 12 steps from 0 meters (coastline) down to a depth of 10,000 meters. The Natural Earth distributes bathymetry data as 12 separate shapefiles, one shapefile for each depth step. For ease of use with TileMill we have combined them into a single shapefile and added useful depth & class columns so you can still style each step individually.

**Land & Coastline**

- 10m-coastline.zip
- 10m-land.zip
- 10m-ocean.zip

The coastline and land files match up to the various country, province, and ocean layers. The coastline file contains only lines, and the land file is a polygon version of the same data. The ocean shapefile is an inverse version of the land polygons.

Some continents in the land file have been broken into smaller pieces to avoid polygons with many points. Use the land file for `polygon-fill` only and apply use the coastline to apply a stroke.

The Natural Earth coastline is based on data from the World Bank with a number of corrections and additions. The Antarctica coastline is based on data from NASA.

**Minor Islands & Reefs**

- 10m-minor-islands.zip
- 10m-minor-islands-coastline.zip
- 10m-reefs.zip

Minor islands are smaller than 2 square kilometers and have been assigned a ScaleRank of 6 or greater. They are drawn to less detail than the main coastlines and are not shown in the administrative, ocean, or bathymetry files. 

The reefs file contains lines indicating major coral reefs and atolls.

**Geographic Regions**

- 10m-geography-marine-polys.zip
- 10m-geography-regions-elevation-points.zip
- 10m-geography-regions-points.zip
- 10m-geography-regions-polys.zip

These are geographic features and regions such as oceans, gulfs, plains, mountain ranges, deserts, peaks, and valleys. Accuracy varies; these features are intended for large-scale labeling. Natural Earth notes that these files are considered 'beta' quality.

**Glaciated areas**

- 10m-glaciated-areas.zip

This file contains polygons of glaciers, some of which have shrunk or disappeared entirely in recent years (parts of the data are decades old).

**Geographic Lines & Graticules**

- 10m-900913-bounding-box.zip
- 10m-geographic-lines.zip
- 10m-graticules-1.zip
- 10m-graticules-10.zip
- 10m-graticules-15.zip
- 10m-graticules-20.zip
- 10m-graticules-30.zip
- 10m-graticules-5.zip

The different graticules files show latitude and longitude lines in various intervals of degrees. The geographic lines file highlights a few specific lines, such as the arctic/antarctic circles, the tropics of Cancer and Capricorn, the Equator, and the International Date Line. The 900913 bounding box file is a rectangle of the maximum extent of the Google Web Mercator projection (the equivalent area covered by the lone zoom-level-0 tile).

**Lakes**:

- 10m-lakes-europe.zip
- 10m-lakes-historic.zip
- 10m-lakes-north-america.zip
- 10m-lakes-pluvial.zip
- 10m-lakes.zip
- 10m-playas.zip

Large lakes and reservoirs are included in the main lakes file, with many more smaller lakes available in the supplemental files for North America and Europe only. 

Pluvial lakes are basins that fill with water during periods of glaciation. In general these have been dry since prehistoric times, but a few may still fill to some extent on rare occasions. The historic file contains three lakes that have dried up in relatively recent history. The playas file contains major dry lakes, ephemeral lakes, and salt pans.

**Rivers**:

- 10m-rivers-europe.zip
- 10m-rivers-lake-centerlines-scale-ranks.zip
- 10m-rivers-lake-centerlines.zip
- 10m-rivers-north-america.zip

Major rivers around the world, with many additional minor rivers as supplemental files for North America and Europe. Lake centerlines are also included which can be useful for labeling. The lines in the scale-ranks file are broken into more segments and contains a StrokeWeig[ht] column to facilitate tapered line styling. 

## Further resources

Learn more about designing maps with TileMill at support.mapbox.com.

- [Preparing your data](http://support.mapbox.com/kb/preparing-your-geographic-data)
- [TileMill knowledge base](http://support.mapbox.com/kb/tilemill)