Getting started: WORKFLOW

nvkelso edited this page Jun 8, 2012 · 6 revisions


  • Basic color choices are made in Photoshop, using a layered file.
  • Stylesheets that determine map appearance including road colors and widths and text style are written in Cascadenik.
  • Map preview rendering is performed by Mapnik.
  • Final tile renders

To generate a full set of GeoJSON from a shapefile we'd use OGR2OGR with a command:

ogr2ogr -f "GeoJSON" /tmp/world.geojson /tmp/world_borders.shp world_borders

But if you have a ton of features, it's better to rip out vector tiles that are in the standard Google Maps mercator tile pyramid scheme. Use TileStache.

If you instead want to subdivide your SHP into chunks based on different geographies, use the Split Layer By Attributes python ArcScript for ArcGIS.

Make sure you've added all frameworks to your path. Example:

export PATH=/Library/Frameworks/GDAL.framework/Programs:$PATH export PATH=/usr/local/bin/

Pay close attention to Users and Roles in PostreSQL (which are different than your general computer account login), the database foundation PostGIS sits on top of. It is persnickety. From the general Terminal shell, I ran:

createuser kelson Shall the new role be a superuser? (y/n) y

Where kelson is my computer account user name. That way my pg role and computer account are synched, which is what Postgres assumes.

This is the same as typing the following from the pgsql prompt:


Here's a good tutorial:

Make sure you have a database to store files into:

createdb postcarto -T template_postgis

NOTE: The -T "template" flag with "template_postgis" ensures the new DB has the PostGIS data structure.

We want to use a PostGIS command called shp2pgsql:

The correct import command format is:

shp2pgsql -c -s 900913 -W "win 1252" /-MyGTprojects/redistricting/toDB/merc_released/m_state1.shx state1 postcarto | psql -d postcarto

Where -s 900913 is the spatial reference system (projection).

Where -W “win 1252” is the character encoding of SHP files out of ArcMap. (latin1 is similar)

The | psql -d postcarto pipes the results of the first command into the table.

We want to use a built in TileStache script called It requires a config file, layer flag, bounding box flag, extention type, and zooms.

Example: -c /-MyGTprojects/redistricting/tiles/dataTiles/config/zooms/zoom6to8_counties.config -l census_2010 -b 36.5 -75.1 39.5 -83.7 -e json 6