[tilestache] 05/22: Imported Upstream version 1.50.1+ds
Bas Couwenberg
sebastic at debian.org
Thu Oct 27 21:40:29 UTC 2016
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch master
in repository tilestache.
commit ef760bc4c73478a0b9fea89b4991872c486e5849
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Mon Oct 17 08:30:32 2016 +0200
Imported Upstream version 1.50.1+ds
---
MANIFEST.in | 1 +
PKG-INFO | 2 +-
.../Providers/DejaVuSansMono-alphanumeric.ttf | Bin 0 -> 26616 bytes
TileStache/VERSION | 2 +-
doc/TileStache.Caches.html | 244 ---
doc/TileStache.Config.html | 216 --
doc/TileStache.Core.html | 536 -----
doc/TileStache.Geography.html | 183 --
doc/TileStache.Goodies.AreaServer.html | 79 -
doc/TileStache.Goodies.Caches.GoogleCloud.html | 91 -
doc/TileStache.Goodies.Caches.LimitedDisk.html | 88 -
doc/TileStache.Goodies.Caches.html | 23 -
doc/TileStache.Goodies.ExternalConfigServer.html | 98 -
doc/TileStache.Goodies.Proj4Projection.html | 132 --
doc/TileStache.Goodies.Providers.Cascadenik.html | 66 -
doc/TileStache.Goodies.Providers.Composite.html | 396 ----
doc/TileStache.Goodies.Providers.GDAL.html | 73 -
doc/TileStache.Goodies.Providers.Grid.html | 95 -
doc/TileStache.Goodies.Providers.MapnikGrid.html | 104 -
doc/TileStache.Goodies.Providers.MirrorOSM.html | 165 --
doc/TileStache.Goodies.Providers.Monkeycache.html | 120 --
doc/TileStache.Goodies.Providers.PostGeoJSON.html | 166 --
doc/TileStache.Goodies.Providers.SolrGeoJSON.html | 140 --
doc/TileStache.Goodies.Providers.TileDataOSM.html | 117 -
...eStache.Goodies.Providers.UtfGridComposite.html | 102 -
....Goodies.Providers.UtfGridCompositeOverlap.html | 72 -
doc/TileStache.Goodies.Providers.html | 33 -
doc/TileStache.Goodies.StatusServer.html | 146 --
doc/TileStache.Goodies.VecTiles.client.html | 167 --
doc/TileStache.Goodies.VecTiles.geojson.html | 68 -
doc/TileStache.Goodies.VecTiles.html | 77 -
doc/TileStache.Goodies.VecTiles.mvt.html | 72 -
doc/TileStache.Goodies.VecTiles.ops.html | 69 -
doc/TileStache.Goodies.VecTiles.server.html | 257 ---
doc/TileStache.Goodies.VecTiles.topojson.html | 53 -
doc/TileStache.Goodies.VecTiles.wkb.html | 60 -
doc/TileStache.Goodies.html | 28 -
doc/TileStache.MBTiles.html | 181 --
doc/TileStache.Mapnik.html | 213 --
doc/TileStache.Memcache.html | 90 -
doc/TileStache.Pixels.html | 76 -
doc/TileStache.Providers.html | 224 --
doc/TileStache.Redis.html | 105 -
doc/TileStache.S3.html | 109 -
doc/TileStache.Sandwich.html | 201 --
doc/TileStache.Vector.Arc.html | 38 -
doc/TileStache.Vector.html | 236 --
doc/TileStache.html | 196 --
doc/index.html | 2269 --------------------
doc/tilestache-clean.html | 44 -
doc/tilestache-compose.html | 163 --
doc/tilestache-list.html | 52 -
doc/tilestache-render.html | 48 -
doc/tilestache-seed.html | 50 -
doc/tilestache-server.html | 37 -
55 files changed, 3 insertions(+), 8670 deletions(-)
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..0345658
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1 @@
+include TileStache/Goodies/Providers/DejaVuSansMono-alphanumeric.ttf
\ No newline at end of file
diff --git a/PKG-INFO b/PKG-INFO
index 0ed0267..a75117a 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.0
Name: TileStache
-Version: 1.50.0
+Version: 1.50.1
Summary: A stylish alternative for caching your map tiles.
Home-page: http://tilestache.org
Author: Michal Migurski
diff --git a/TileStache/Goodies/Providers/DejaVuSansMono-alphanumeric.ttf b/TileStache/Goodies/Providers/DejaVuSansMono-alphanumeric.ttf
new file mode 100644
index 0000000..24b9a7d
Binary files /dev/null and b/TileStache/Goodies/Providers/DejaVuSansMono-alphanumeric.ttf differ
diff --git a/TileStache/VERSION b/TileStache/VERSION
index 5a5c721..daf515c 100644
--- a/TileStache/VERSION
+++ b/TileStache/VERSION
@@ -1 +1 @@
-1.50.0
+1.50.1
\ No newline at end of file
diff --git a/doc/TileStache.Caches.html b/doc/TileStache.Caches.html
deleted file mode 100644
index 693b4e8..0000000
--- a/doc/TileStache.Caches.html
+++ /dev/null
@@ -1,244 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Caches</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Caches</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>The cache bits of TileStache.<br>
- <br>
-A Cache is the part of TileStache that stores static files to speed up future<br>
-requests. A few default caches are found here, but it's possible to define your<br>
-own and pull them into TileStache dynamically by class name.<br>
- <br>
-Built-in providers:<br>
-- test<br>
-- disk<br>
-- multi<br>
-- memcache<br>
-- s3<br>
- <br>
-Example built-in cache, for JSON configuration file:<br>
- <br>
- "cache": {<br>
- "name": "<a href="#Disk">Disk</a>",<br>
- "path": "/tmp/stache",<br>
- "umask": "0000"<br>
- }<br>
- <br>
-Example external cache, for JSON configuration file:<br>
- <br>
- "cache": {<br>
- "class": "Module:Classname",<br>
- "kwargs": {"frob": "yes"}<br>
- }<br>
- <br>
-- The "class" value is split up into module and classname, and dynamically<br>
- included. If this doesn't work for some reason, TileStache will fail loudly<br>
- to let you know.<br>
-- The "kwargs" value is fed to the class constructor as a dictionary of keyword<br>
- args. If your defined class doesn't accept any of these keyword arguments,<br>
- TileStache will throw an exception.<br>
- <br>
-A cache must provide these methods: lock(), unlock(), read(), and save().<br>
-Each method accepts three arguments:<br>
- <br>
-- layer: instance of a Layer.<br>
-- coord: single Coordinate that represents a tile.<br>
-- format: string like "png" or "jpg" that is used as a filename extension.<br>
- <br>
-The save() method accepts an additional argument before the others:<br>
- <br>
-- body: raw content to save to the cache.<br>
- <br>
-TODO: add stale_lock_timeout and cache_lifespan to cache API in v2.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Memcache.html">TileStache.Memcache</a><br>
-<a href="TileStache.Redis.html">TileStache.Redis</a><br>
-</td><td width="25%" valign=top><a href="TileStache.S3.html">TileStache.S3</a><br>
-<a href="gzip.html">gzip</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-<a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top><a href="time.html">time</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Caches.html#Disk">Disk</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Caches.html#Multi">Multi</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Caches.html#Test">Test</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Disk">class <strong>Disk</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Caches files to disk.<br>
- <br>
-Example configuration:<br>
- <br>
- "cache": {<br>
- "name": "<a href="#Disk">Disk</a>",<br>
- "path": "/tmp/stache",<br>
- "umask": "0000",<br>
- "dirs": "portable"<br>
- }<br>
- <br>
-Extra parameters:<br>
-- path: required local directory path where files should be stored.<br>
-- umask: optional string representation of octal permission mask<br>
- for stored files. Defaults to 0022.<br>
-- dirs: optional string saying whether to create cache directories that<br>
- are safe, portable or quadtile. For an example tile 12/656/1582.png,<br>
- "portable" creates matching directory trees while "safe" guarantees<br>
- directories with fewer files, e.g. 12/000/656/001/582.png.<br>
- Defaults to safe.<br>
-- gzip: optional list of file formats that should be stored in a<br>
- compressed form. Defaults to "txt", "text", "json", and "xml".<br>
- Provide an empty list in the configuration for no compression.<br>
- <br>
-If your configuration file is loaded from a remote location, e.g.<br>
-"<a href="http://example.com/tilestache.cfg">http://example.com/tilestache.cfg</a>", the path *must* be an unambiguous<br>
-filesystem path, e.g. "file:///tmp/cache"<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Disk-__init__"><strong>__init__</strong></a>(self, path, umask<font color="#909090">=18</font>, dirs<font color="#909090">='safe'</font>, gzip<font color="#909090">=['txt', 'text', 'json', 'xml']</font>)</dt></dl>
-
-<dl><dt><a name="Disk-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt><dd><tt>Acquire a cache lock for this tile.<br>
- <br>
-Returns nothing, but blocks until the lock has been acquired.<br>
-Lock is implemented as an empty directory next to the tile file.</tt></dd></dl>
-
-<dl><dt><a name="Disk-read"><strong>read</strong></a>(self, layer, coord, format)</dt><dd><tt>Read a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Disk-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt><dd><tt>Remove a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Disk-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt><dd><tt>Save a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Disk-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt><dd><tt>Release a cache lock for this tile.<br>
- <br>
-Lock is implemented as an empty directory next to the tile file.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Multi">class <strong>Multi</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Caches tiles to multiple, ordered caches.<br>
- <br>
-<a href="#Multi">Multi</a> cache is well-suited for a speed-to-capacity gradient, for<br>
-example a combination of Memcache and S3 to take advantage of the high<br>
-speed of memcache and the high capacity of S3. Each tier of caching is<br>
-checked sequentially when reading from the cache, while all tiers are<br>
-used together for writing. Locks are only used with the first cache.<br>
- <br>
-Example configuration:<br>
- <br>
- "cache": {<br>
- "name": "<a href="#Multi">Multi</a>",<br>
- "tiers": [<br>
- {<br>
- "name": "Memcache",<br>
- "servers": ["127.0.0.1:11211"]<br>
- },<br>
- {<br>
- "name": "<a href="#Disk">Disk</a>",<br>
- "path": "/tmp/stache"<br>
- }<br>
- ]<br>
- }<br>
- <br>
-<a href="#Multi">Multi</a> cache parameters:<br>
- <br>
- tiers<br>
- Required list of cache configurations. The fastest, most local<br>
- cache should be at the beginning of the list while the slowest or<br>
- most remote cache should be at the end. Memcache and S3 together<br>
- make a great pair.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Multi-__init__"><strong>__init__</strong></a>(self, tiers)</dt></dl>
-
-<dl><dt><a name="Multi-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt><dd><tt>Acquire a cache lock for this tile in the first tier.<br>
- <br>
-Returns nothing, but blocks until the lock has been acquired.</tt></dd></dl>
-
-<dl><dt><a name="Multi-read"><strong>read</strong></a>(self, layer, coord, format)</dt><dd><tt>Read a cached tile.<br>
- <br>
-Start at the first tier and work forwards until a cached tile<br>
-is found. When found, save it back to the earlier tiers for faster<br>
-access on future requests.</tt></dd></dl>
-
-<dl><dt><a name="Multi-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt><dd><tt>Remove a cached tile from every tier.</tt></dd></dl>
-
-<dl><dt><a name="Multi-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt><dd><tt>Save a cached tile.<br>
- <br>
-Every tier gets a saved copy.</tt></dd></dl>
-
-<dl><dt><a name="Multi-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt><dd><tt>Release a cache lock for this tile in the first tier.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Test">class <strong>Test</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Simple cache that doesn't actually cache anything.<br>
- <br>
-Activity is optionally logged, though.<br>
- <br>
-Example configuration:<br>
- <br>
- "cache": {<br>
- "name": "<a href="#Test">Test</a>",<br>
- "verbose": true<br>
- }<br>
- <br>
-Extra configuration parameters:<br>
-- verbose: optional boolean flag to write cache activities to a logging<br>
- function, defaults to False if omitted.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Test-__init__"><strong>__init__</strong></a>(self, logfunc<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Test-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt><dd><tt>Pretend to acquire a cache lock for this tile.</tt></dd></dl>
-
-<dl><dt><a name="Test-read"><strong>read</strong></a>(self, layer, coord, format)</dt><dd><tt>Pretend to read a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Test-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt><dd><tt>Pretend to remove a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Test-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt><dd><tt>Pretend to save a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Test-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt><dd><tt>Pretend to release a cache lock for this tile.</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-getCacheByName"><strong>getCacheByName</strong></a>(name)</dt><dd><tt>Retrieve a cache object by name.<br>
- <br>
-Raise an exception if the name doesn't work out.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Config.html b/doc/TileStache.Config.html
deleted file mode 100644
index 5232d0c..0000000
--- a/doc/TileStache.Config.html
+++ /dev/null
@@ -1,216 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Config</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Config</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>The configuration bits of TileStache.<br>
- <br>
-TileStache configuration is stored in JSON files, and is composed of two main<br>
-top-level sections: "cache" and "layers". There are examples of both in this<br>
-minimal sample configuration:<br>
- <br>
- {<br>
- "cache": {"name": "Test"},<br>
- "layers": {<br>
- "example": {<br>
- "provider": {"name": "mapnik", "mapfile": "examples/style.xml"},,<br>
- "projection": "spherical mercator"<br>
- } <br>
- }<br>
- }<br>
- <br>
-The contents of the "cache" section are described in greater detail in the<br>
-TileStache.Caches module documentation. Here is a different sample:<br>
- <br>
- "cache": {<br>
- "name": "Disk",<br>
- "path": "/tmp/stache",<br>
- "umask": "0000"<br>
- }<br>
- <br>
-The "layers" section is a dictionary of layer names which are specified in the<br>
-URL of an individual tile. More detail on the configuration of individual layers<br>
-can be found in the TileStache.Core module documentation. Another sample:<br>
- <br>
- {<br>
- "cache": ...,<br>
- "layers": <br>
- {<br>
- "example-name":<br>
- {<br>
- "provider": { ... },<br>
- "metatile": { ... },<br>
- "preview": { ... },<br>
- "stale lock timeout": ...,<br>
- "projection": ...<br>
- }<br>
- }<br>
- }<br>
- <br>
-<a href="#Configuration">Configuration</a> also supports these additional settings:<br>
- <br>
-- "logging": one of "debug", "info", "warning", "error" or "critical", as<br>
- described in Python's logging module: <a href="http://docs.python.org/howto/logging.html">http://docs.python.org/howto/logging.html</a><br>
- <br>
-- "index": configurable index pages for the front page of an instance.<br>
- A custom index can be specified as a filename relative to the configuration<br>
- location. Typically an HTML document would be given here, but other kinds of<br>
- files such as images can be used, with MIME content-type headers determined<br>
- by mimetypes.guess_type. A simple text greeting is displayed if no index<br>
- is provided.<br>
- <br>
-In-depth explanations of the layer components can be found in the module<br>
-documentation for TileStache.Providers, TileStache.Core, and TileStache.Geography.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Caches.html">TileStache.Caches</a><br>
-<a href="TileStache.Core.html">TileStache.Core</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Geography.html">TileStache.Geography</a><br>
-<a href="TileStache.PixelEffects.html">TileStache.PixelEffects</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Providers.html">TileStache.Providers</a><br>
-<a href="logging.html">logging</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Config.html#Bounds">Bounds</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Config.html#BoundsList">BoundsList</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Config.html#Configuration">Configuration</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Bounds">class <strong>Bounds</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Coordinate bounding box for tiles.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Bounds-__init__"><strong>__init__</strong></a>(self, upper_left_high, lower_right_low)</dt><dd><tt>Two required Coordinate objects defining tile pyramid bounds.<br>
- <br>
-Boundaries are inclusive: upper_left_high is the left-most column,<br>
-upper-most row, and highest zoom level; lower_right_low is the<br>
-right-most column, furthest-dwn row, and lowest zoom level.</tt></dd></dl>
-
-<dl><dt><a name="Bounds-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Bounds-excludes"><strong>excludes</strong></a>(self, tile)</dt><dd><tt>Check a tile Coordinate against the bounds, return true/false.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="BoundsList">class <strong>BoundsList</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Multiple coordinate bounding boxes for tiles.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="BoundsList-__init__"><strong>__init__</strong></a>(self, bounds)</dt><dd><tt>Single argument is a list of <a href="#Bounds">Bounds</a> objects.</tt></dd></dl>
-
-<dl><dt><a name="BoundsList-excludes"><strong>excludes</strong></a>(self, tile)</dt><dd><tt>Check a tile Coordinate against the bounds, return false if none match.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Configuration">class <strong>Configuration</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>A complete site configuration, with a collection of Layer objects.<br>
- <br>
-Attributes:<br>
- <br>
- cache:<br>
- Cache instance, e.g. TileStache.Caches.Disk etc.<br>
- See TileStache.Caches for details on what makes<br>
- a usable cache.<br>
- <br>
- layers:<br>
- Dictionary of layers keyed by name.<br>
- <br>
- When creating a custom layers dictionary, e.g. for dynamic<br>
- layer collections backed by some external configuration,<br>
- these dictionary methods must be provided for a complete<br>
- collection of layers:<br>
- <br>
- keys():<br>
- Return list of layer name strings.<br>
- <br>
- items():<br>
- Return list of (name, layer) pairs.<br>
- <br>
- __contains__(key):<br>
- Return boolean true if given key is an existing layer.<br>
- <br>
- __getitem__(key):<br>
- Return existing layer object for given key or raise KeyError.<br>
- <br>
- dirpath:<br>
- Local filesystem path for this configuration,<br>
- useful for expanding relative paths.<br>
- <br>
-Optional attribute:<br>
- <br>
- index:<br>
- Mimetype, content tuple for default index response.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Configuration-__init__"><strong>__init__</strong></a>(self, cache, dirpath)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-buildConfiguration"><strong>buildConfiguration</strong></a>(config_dict, dirpath<font color="#909090">='.'</font>)</dt><dd><tt>Build a configuration dictionary into a <a href="#Configuration">Configuration</a> object.<br>
- <br>
-The second argument is an optional dirpath that specifies where in the<br>
-local filesystem the parsed dictionary originated, to make it possible<br>
-to resolve relative paths. It might be a path or more likely a full<br>
-URL including the "file://" prefix.</tt></dd></dl>
- <dl><dt><a name="-enforcedLocalPath"><strong>enforcedLocalPath</strong></a>(relpath, dirpath, context<font color="#909090">='Path'</font>)</dt><dd><tt>Return a forced local path, relative to a directory.<br>
- <br>
-Throw an error if the combination of path and directory seems to<br>
-specify a remote path, e.g. "/path" and "<a href="http://example.com">http://example.com</a>".<br>
- <br>
-Although a configuration file can be parsed from a remote URL, some<br>
-paths (e.g. the location of a disk cache) must be local to the server.<br>
-In cases where we mix a remote configuration location with a local<br>
-cache location, e.g. "<a href="http://example.com/tilestache.cfg">http://example.com/tilestache.cfg</a>", the disk path<br>
-must include the "file://" prefix instead of an ambiguous absolute<br>
-path such as "/tmp/tilestache".</tt></dd></dl>
- <dl><dt><a name="-loadClassPath"><strong>loadClassPath</strong></a>(classpath)</dt><dd><tt>Load external class based on a path.<br>
- <br>
-Example classpath: "Module.Submodule:Classname".<br>
- <br>
-Equivalent soon-to-be-deprecated classpath: "Module.Submodule.Classname".</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>modules</strong> = {'FixTk': <module 'FixTk' from '/System/Library/Frameworks...ork/Versions/2.7/lib/python2.7/lib-tk/FixTk.pyc'>, 'ModestMaps': <module 'ModestMaps' from '/Users/migurski/Sites...python2.7/site-packages/ModestMaps/__init__.pyc'>, 'ModestMaps.BlueMarble': <module 'ModestMaps.BlueMarble' from '/Users/mig...thon2.7/site-packages/ModestMaps/BlueMarble.pyc'>, 'ModestMaps.CloudMade': <module 'ModestMaps.CloudMade' from '/Users/migu [...]
-<strong>stderr</strong> = <open file '<stderr>', mode 'w'></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Core.html b/doc/TileStache.Core.html
deleted file mode 100644
index c4c71d5..0000000
--- a/doc/TileStache.Core.html
+++ /dev/null
@@ -1,536 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Core</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Core</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>The core class bits of TileStache.<br>
- <br>
-Two important classes can be found here.<br>
- <br>
-<a href="#Layer">Layer</a> represents a set of tiles in TileStache. It keeps references to<br>
-providers, projections, a Configuration instance, and other details required<br>
-for to the storage and rendering of a tile set. Layers are represented in the<br>
-configuration file as a dictionary:<br>
- <br>
- {<br>
- "cache": ...,<br>
- "layers": <br>
- {<br>
- "example-name":<br>
- {<br>
- "provider": { ... },<br>
- "metatile": { ... },<br>
- "preview": { ... },<br>
- "projection": ...,<br>
- "stale lock timeout": ...,<br>
- "cache lifespan": ...,<br>
- "write cache": ...,<br>
- "bounds": { ... },<br>
- "allowed origin": ...,<br>
- "maximum cache age": ...,<br>
- "redirects": ...,<br>
- "tile height": ...,<br>
- "jpeg options": ...,<br>
- "png options": ...<br>
- }<br>
- }<br>
- }<br>
- <br>
-- "provider" refers to a Provider, explained in detail in TileStache.Providers.<br>
-- "metatile" optionally makes it possible for multiple individual tiles to be<br>
- rendered at one time, for greater speed and efficiency. This is commonly used<br>
- for the Mapnik provider. See below for more information on metatiles.<br>
-- "preview" optionally overrides the starting point for the built-in per-layer<br>
- slippy map preview, useful for image-based layers where appropriate.<br>
- See below for more information on the preview.<br>
-- "projection" names a geographic projection, explained in TileStache.Geography.<br>
- If omitted, defaults to spherical mercator.<br>
-- "stale lock timeout" is an optional number of seconds to wait before forcing<br>
- a lock that might be stuck. This is defined on a per-layer basis, rather than<br>
- for an entire cache at one time, because you may have different expectations<br>
- for the rendering speeds of different layer configurations. Defaults to 15.<br>
-- "cache lifespan" is an optional number of seconds that cached tiles should<br>
- be stored. This is defined on a per-layer basis. Defaults to forever if None,<br>
- 0 or omitted.<br>
-- "write cache" is an optional boolean value to allow skipping cache write<br>
- altogether. This is defined on a per-layer basis. Defaults to true if omitted.<br>
-- "bounds" is an optional dictionary of six tile boundaries to limit the<br>
- rendered area: low (lowest zoom level), high (highest zoom level), north,<br>
- west, south, and east (all in degrees).<br>
-- "allowed origin" is an optional string that shows up in the response HTTP<br>
- header Access-Control-Allow-Origin, useful for when you need to provide<br>
- javascript direct access to response data such as GeoJSON or pixel values.<br>
- The header is part of a W3C working draft (<a href="http://www.w3.org/TR/cors/">http://www.w3.org/TR/cors/</a>).<br>
-- "maximum cache age" is an optional number of seconds used to control behavior<br>
- of downstream caches. Causes TileStache responses to include Cache-Control<br>
- and Expires HTTP response headers. Useful when TileStache is itself hosted<br>
- behind an HTTP cache such as Squid, Cloudfront, or Akamai.<br>
-- "redirects" is an optional dictionary of per-extension HTTP redirects,<br>
- treated as lowercase. Useful in cases where your tile provider can support<br>
- many formats but you want to enforce limits to save on cache usage.<br>
- If a request is made for a tile with an extension in the dictionary keys,<br>
- a response can be generated that redirects the client to the same tile<br>
- with another extension.<br>
-- "tile height" gives the height of the image tile in pixels. You almost always<br>
- want to leave this at the default value of 256, but you can use a value of 512<br>
- to create double-size, double-resolution tiles for high-density phone screens.<br>
-- "jpeg options" is an optional dictionary of JPEG creation options, passed<br>
- through to PIL: <a href="http://effbot.org/imagingbook/format-jpeg.htm">http://effbot.org/imagingbook/format-jpeg.htm</a>.<br>
-- "png options" is an optional dictionary of PNG creation options, passed<br>
- through to PIL: <a href="http://effbot.org/imagingbook/format-png.htm">http://effbot.org/imagingbook/format-png.htm</a>.<br>
-- "pixel effect" is an optional dictionary that defines an effect to be applied<br>
- for all tiles of this layer. Pixel effect can be any of these: blackwhite,<br>
- greyscale, desaturate, pixelate, halftone, or blur.<br>
- <br>
-The public-facing URL of a single tile for this layer might look like this:<br>
- <br>
- <a href="http://example.com/tilestache.cgi/example-name/0/0/0.png">http://example.com/tilestache.cgi/example-name/0/0/0.png</a><br>
- <br>
-Sample JPEG creation options:<br>
- <br>
- {<br>
- "quality": 90,<br>
- "progressive": true,<br>
- "optimize": true<br>
- }<br>
- <br>
-Sample PNG creation options:<br>
- <br>
- {<br>
- "optimize": true,<br>
- "palette": "filename.act"<br>
- }<br>
- <br>
-Sample pixel effect:<br>
- <br>
- {<br>
- "name": "desaturate",<br>
- "factor": 0.85<br>
- }<br>
- <br>
-Sample bounds:<br>
- <br>
- {<br>
- "low": 9, "high": 15,<br>
- "south": 37.749, "west": -122.358,<br>
- "north": 37.860, "east": -122.113<br>
- }<br>
- <br>
-<a href="#Metatile">Metatile</a> represents a larger area to be rendered at one time. Metatiles are<br>
-represented in the configuration file as a dictionary:<br>
- <br>
- {<br>
- "rows": 4,<br>
- "columns": 4,<br>
- "buffer": 64<br>
- }<br>
- <br>
-- "rows" and "columns" are the height and width of the metatile measured in<br>
- tiles. This example metatile is four rows tall and four columns wide, so it<br>
- will render sixteen tiles simultaneously.<br>
-- "buffer" is a buffer area around the metatile, measured in pixels. This is<br>
- useful for providers with labels or icons, where it's necessary to draw a<br>
- bit extra around the edges to ensure that text is not cut off. This example<br>
- metatile has a buffer of 64 pixels, so the resulting metatile will be 1152<br>
- pixels square: 4 rows x 256 pixels + 2 x 64 pixel buffer.<br>
- <br>
-The preview can be accessed through a URL like /<layer name>/preview.html:<br>
- <br>
- {<br>
- "lat": 33.9901,<br>
- "lon": -116.1637,<br>
- "zoom": 16,<br>
- "ext": "jpg"<br>
- }<br>
- <br>
-- "lat" and "lon" are the starting latitude and longitude in degrees.<br>
-- "zoom" is the starting zoom level.<br>
-- "ext" is the filename extension, e.g. "png".</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="PIL.Image.html">PIL.Image</a><br>
-</td><td width="25%" valign=top><a href="logging.html">logging</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Core.html#Layer">Layer</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Core.html#Metatile">Metatile</a>
-</font></dt><dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Core.html#KnownUnknown">KnownUnknown</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Core.html#NoTileLeftBehind">NoTileLeftBehind</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Core.html#TheTileLeftANote">TheTileLeftANote</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="KnownUnknown">class <strong>KnownUnknown</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>There are known unknowns. That is to say, there are things that we now know we don't know.<br>
- <br>
-This exception gets thrown in a couple places where common mistakes are made.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="TileStache.Core.html#KnownUnknown">KnownUnknown</a></dd>
-<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><a name="KnownUnknown-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#KnownUnknown-__init__">__init__</a>(...) initializes x; see help(type(x)) for signature</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#KnownUnknown-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><a name="KnownUnknown-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#KnownUnknown-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl>
-
-<dl><dt><a name="KnownUnknown-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#KnownUnknown-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl>
-
-<dl><dt><a name="KnownUnknown-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#KnownUnknown-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
-
-<dl><dt><a name="KnownUnknown-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#KnownUnknown-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br>
- <br>
-Use of negative indices is not supported.</tt></dd></dl>
-
-<dl><dt><a name="KnownUnknown-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="KnownUnknown-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#KnownUnknown-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
-
-<dl><dt><a name="KnownUnknown-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#KnownUnknown-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl>
-
-<dl><dt><a name="KnownUnknown-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="KnownUnknown-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#KnownUnknown-__str__">__str__</a>() <==> str(x)</tt></dd></dl>
-
-<dl><dt><a name="KnownUnknown-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Layer">class <strong>Layer</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>A <a href="#Layer">Layer</a>.<br>
- <br>
-Required attributes:<br>
- <br>
- provider:<br>
- Render provider, see Providers module.<br>
- <br>
- config:<br>
- Configuration instance, see Config module.<br>
- <br>
- projection:<br>
- Geographic projection, see Geography module.<br>
- <br>
- metatile:<br>
- Some information for drawing many tiles at once.<br>
- <br>
-Optional attributes:<br>
- <br>
- stale_lock_timeout:<br>
- Number of seconds until a cache lock is forced, default 15.<br>
- <br>
- cache_lifespan:<br>
- Number of seconds that cached tiles should be stored, default 15.<br>
- <br>
- write_cache:<br>
- Allow skipping cache write altogether, default true.<br>
- <br>
- bounds:<br>
- Instance of Config.Bounds for limiting rendered tiles.<br>
- <br>
- allowed_origin:<br>
- Value for the Access-Control-Allow-Origin HTTP response header.<br>
- <br>
- max_cache_age:<br>
- Number of seconds that tiles from this layer may be cached by downstream clients.<br>
- <br>
- redirects:<br>
- Dictionary of per-extension HTTP redirects, treated as lowercase.<br>
- <br>
- preview_lat:<br>
- Starting latitude for slippy map layer preview, default 37.80.<br>
- <br>
- preview_lon:<br>
- Starting longitude for slippy map layer preview, default -122.26.<br>
- <br>
- preview_zoom:<br>
- Starting zoom for slippy map layer preview, default 10.<br>
- <br>
- preview_ext:<br>
- Tile name extension for slippy map layer preview, default "png".<br>
- <br>
- tile_height:<br>
- Height of tile in pixels, as a single integer. Tiles are generally<br>
- assumed to be square, and <a href="#Layer">Layer</a>.<a href="#Layer-render">render</a>() will respond with an error<br>
- if the rendered image is not this height.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Layer-__init__"><strong>__init__</strong></a>(self, config, projection, metatile, stale_lock_timeout<font color="#909090">=15</font>, cache_lifespan<font color="#909090">=None</font>, write_cache<font color="#909090">=True</font>, allowed_origin<font color="#909090">=None</font>, max_cache_age<font color="#909090">=None</font>, redirects<font color="#909090">=None</font>, preview_lat<font color="#909090">=37.8</font>, preview_lon<font color="#909090">=-122.26</font>, pre [...]
-
-<dl><dt><a name="Layer-doMetatile"><strong>doMetatile</strong></a>(self)</dt><dd><tt>Return True if we have a real metatile and the provider is OK with it.</tt></dd></dl>
-
-<dl><dt><a name="Layer-envelope"><strong>envelope</strong></a>(self, coord)</dt><dd><tt>Projected rendering envelope (xmin, ymin, xmax, ymax) for a Coordinate.</tt></dd></dl>
-
-<dl><dt><a name="Layer-getTileResponse"><strong>getTileResponse</strong></a>(self, coord, extension, ignore_cached<font color="#909090">=False</font>)</dt><dd><tt>Get status code, headers, and a tile binary for a given request layer tile.<br>
- <br>
-Arguments:<br>
-- coord: one ModestMaps.Core.Coordinate corresponding to a single tile.<br>
-- extension: filename extension to choose response type, e.g. "png" or "jpg".<br>
-- ignore_cached: always re-render the tile, whether it's in the cache or not.<br>
- <br>
-This is the main entry point, after site configuration has been loaded<br>
-and individual tiles need to be rendered.</tt></dd></dl>
-
-<dl><dt><a name="Layer-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and PIL format by file extension.</tt></dd></dl>
-
-<dl><dt><a name="Layer-metaEnvelope"><strong>metaEnvelope</strong></a>(self, coord)</dt><dd><tt>Projected rendering envelope (xmin, ymin, xmax, ymax) for a metatile.</tt></dd></dl>
-
-<dl><dt><a name="Layer-metaSize"><strong>metaSize</strong></a>(self, coord)</dt><dd><tt>Pixel width and height of full rendered image for a metatile.</tt></dd></dl>
-
-<dl><dt><a name="Layer-metaSubtiles"><strong>metaSubtiles</strong></a>(self, coord)</dt><dd><tt>List of all coords in a metatile and their x, y offsets in a parent image.</tt></dd></dl>
-
-<dl><dt><a name="Layer-name"><strong>name</strong></a>(self)</dt><dd><tt>Figure out what I'm called, return a name if there is one.<br>
- <br>
-<a href="#Layer">Layer</a> names are stored in the Configuration object, so<br>
-config.layers must be inspected to find a matching name.</tt></dd></dl>
-
-<dl><dt><a name="Layer-render"><strong>render</strong></a>(self, coord, format)</dt><dd><tt>Render a tile for a coordinate, return PIL Image-like object.<br>
- <br>
-Perform metatile slicing here as well, if required, writing the<br>
-full set of rendered tiles to cache as we go.<br>
- <br>
-Note that metatiling and pass-through mode of a Provider<br>
-are mutually exclusive options</tt></dd></dl>
-
-<dl><dt><a name="Layer-setSaveOptionsJPEG"><strong>setSaveOptionsJPEG</strong></a>(self, quality<font color="#909090">=None</font>, optimize<font color="#909090">=None</font>, progressive<font color="#909090">=None</font>)</dt><dd><tt>Optional arguments are added to self.<strong>jpeg_options</strong> for pickup when saving.<br>
- <br>
-More information about options:<br>
- <a href="http://effbot.org/imagingbook/format-jpeg.htm">http://effbot.org/imagingbook/format-jpeg.htm</a></tt></dd></dl>
-
-<dl><dt><a name="Layer-setSaveOptionsPNG"><strong>setSaveOptionsPNG</strong></a>(self, optimize<font color="#909090">=None</font>, palette<font color="#909090">=None</font>, palette256<font color="#909090">=None</font>)</dt><dd><tt>Optional arguments are added to self.<strong>png_options</strong> for pickup when saving.<br>
- <br>
-Palette argument is a URL relative to the configuration file,<br>
-and it implies bits and optional transparency options.<br>
- <br>
-More information about options:<br>
- <a href="http://effbot.org/imagingbook/format-png.htm">http://effbot.org/imagingbook/format-png.htm</a></tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Metatile">class <strong>Metatile</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Some basic characteristics of a metatile.<br>
- <br>
-Properties:<br>
-- rows: number of tile rows this metatile covers vertically.<br>
-- columns: number of tile columns this metatile covers horizontally.<br>
-- buffer: pixel width of outer edge.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Metatile-__init__"><strong>__init__</strong></a>(self, buffer<font color="#909090">=0</font>, rows<font color="#909090">=1</font>, columns<font color="#909090">=1</font>)</dt></dl>
-
-<dl><dt><a name="Metatile-allCoords"><strong>allCoords</strong></a>(self, coord)</dt><dd><tt>Return a list of coordinates for a complete metatile.<br>
- <br>
-Results are guaranteed to be ordered left-to-right, top-to-bottom.</tt></dd></dl>
-
-<dl><dt><a name="Metatile-firstCoord"><strong>firstCoord</strong></a>(self, coord)</dt><dd><tt>Return a new coordinate for the upper-left corner of a metatile.<br>
- <br>
-This is useful as a predictable way to refer to an entire metatile<br>
-by one of its sub-tiles, currently needed to do locking correctly.</tt></dd></dl>
-
-<dl><dt><a name="Metatile-isForReal"><strong>isForReal</strong></a>(self)</dt><dd><tt>Return True if this is really a metatile with a buffer or multiple tiles.<br>
- <br>
-A default 1x1 metatile with buffer=0 is not for real.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="NoTileLeftBehind">class <strong>NoTileLeftBehind</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Leave no tile in the cache.<br>
- <br>
-This exception can be thrown in a provider to signal to<br>
-TileStache.getTile() that the result tile should be returned,<br>
-but not saved in a cache. Useful in cases where a full tileset<br>
-is being rendered for static hosting, and you don't want millions<br>
-of identical ocean tiles.<br>
- <br>
-The one constructor argument is an instance of PIL.Image or<br>
-some other object with a save() method, as would be returned<br>
-by provider renderArea() or renderTile() methods.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="TileStache.Core.html#NoTileLeftBehind">NoTileLeftBehind</a></dd>
-<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="NoTileLeftBehind-__init__"><strong>__init__</strong></a>(self, tile)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#NoTileLeftBehind-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><a name="NoTileLeftBehind-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#NoTileLeftBehind-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl>
-
-<dl><dt><a name="NoTileLeftBehind-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#NoTileLeftBehind-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl>
-
-<dl><dt><a name="NoTileLeftBehind-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#NoTileLeftBehind-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
-
-<dl><dt><a name="NoTileLeftBehind-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#NoTileLeftBehind-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br>
- <br>
-Use of negative indices is not supported.</tt></dd></dl>
-
-<dl><dt><a name="NoTileLeftBehind-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="NoTileLeftBehind-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#NoTileLeftBehind-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
-
-<dl><dt><a name="NoTileLeftBehind-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#NoTileLeftBehind-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl>
-
-<dl><dt><a name="NoTileLeftBehind-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="NoTileLeftBehind-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#NoTileLeftBehind-__str__">__str__</a>() <==> str(x)</tt></dd></dl>
-
-<dl><dt><a name="NoTileLeftBehind-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="TheTileLeftANote">class <strong>TheTileLeftANote</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>A tile exists, but it shouldn't be returned to the client. Headers<br>
-and/or a status code are provided in its stead.<br>
- <br>
-This exception can be thrown in a provider or a cache to signal to<br>
-upstream servers where a tile can be found or to clients that a tile<br>
-is empty (or solid).<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="TileStache.Core.html#TheTileLeftANote">TheTileLeftANote</a></dd>
-<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="TheTileLeftANote-__init__"><strong>__init__</strong></a>(self, headers<font color="#909090">=None</font>, status_code<font color="#909090">=200</font>, content<font color="#909090">=''</font>, emit_content_type<font color="#909090">=True</font>)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#TheTileLeftANote-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><a name="TheTileLeftANote-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#TheTileLeftANote-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl>
-
-<dl><dt><a name="TheTileLeftANote-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#TheTileLeftANote-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl>
-
-<dl><dt><a name="TheTileLeftANote-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#TheTileLeftANote-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
-
-<dl><dt><a name="TheTileLeftANote-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#TheTileLeftANote-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br>
- <br>
-Use of negative indices is not supported.</tt></dd></dl>
-
-<dl><dt><a name="TheTileLeftANote-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="TheTileLeftANote-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#TheTileLeftANote-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
-
-<dl><dt><a name="TheTileLeftANote-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#TheTileLeftANote-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl>
-
-<dl><dt><a name="TheTileLeftANote-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="TheTileLeftANote-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#TheTileLeftANote-__str__">__str__</a>() <==> str(x)</tt></dd></dl>
-
-<dl><dt><a name="TheTileLeftANote-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>() -> floating point number<br>
- <br>
-Return the current time in seconds since the Epoch.<br>
-Fractions of a second may be present if the system clock provides them.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Geography.html b/doc/TileStache.Geography.html
deleted file mode 100644
index 36872b1..0000000
--- a/doc/TileStache.Geography.html
+++ /dev/null
@@ -1,183 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Geography</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Geography</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>The geography bits of TileStache.<br>
- <br>
-A Projection defines the relationship between the rendered tiles and the<br>
-underlying geographic data. Generally, just one popular projection is used<br>
-for most web maps, "spherical mercator".<br>
- <br>
-Built-in projections:<br>
-- spherical mercator<br>
-- <a href="#WGS84">WGS84</a><br>
- <br>
-Example use projection in a layer definition:<br>
- <br>
- "layer-name": {<br>
- "projection": "spherical mercator",<br>
- ...<br>
- }<br>
- <br>
-You can define your own projection, with a module and object name as arguments:<br>
- <br>
- "layer-name": {<br>
- ...<br>
- "projection": "Module:Object"<br>
- }<br>
- <br>
-The object must include methods that convert between coordinates, points, and<br>
-locations. See the included mercator and <a href="#WGS84">WGS84</a> implementations for example.<br>
-You can also instantiate a projection class using this syntax:<br>
- <br>
- "layer-name": {<br>
- ...<br>
- "projection": "Module:Object()"<br>
- }</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Config.html">TileStache.Config</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Core.html">TileStache.Core</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ModestMaps.Geo.html#LinearProjection">ModestMaps.Geo.LinearProjection</a>(<a href="ModestMaps.Geo.html#IProjection">ModestMaps.Geo.IProjection</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Geography.html#WGS84">WGS84</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ModestMaps.Geo.html#MercatorProjection">ModestMaps.Geo.MercatorProjection</a>(<a href="ModestMaps.Geo.html#IProjection">ModestMaps.Geo.IProjection</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Geography.html#SphericalMercator">SphericalMercator</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="SphericalMercator">class <strong>SphericalMercator</strong></a>(<a href="ModestMaps.Geo.html#MercatorProjection">ModestMaps.Geo.MercatorProjection</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Spherical mercator projection for most commonly-used web map tile scheme.<br>
- <br>
-This projection is identified by the name "spherical mercator" in the<br>
-TileStache config. The simplified projection used here is described in<br>
-greater detail at: <a href="http://trac.openlayers.org/wiki/SphericalMercator">http://trac.openlayers.org/wiki/SphericalMercator</a><br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="TileStache.Geography.html#SphericalMercator">SphericalMercator</a></dd>
-<dd><a href="ModestMaps.Geo.html#MercatorProjection">ModestMaps.Geo.MercatorProjection</a></dd>
-<dd><a href="ModestMaps.Geo.html#IProjection">ModestMaps.Geo.IProjection</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="SphericalMercator-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SphericalMercator-coordinateProj"><strong>coordinateProj</strong></a>(self, coord)</dt><dd><tt>Convert from Coordinate object to a Point object in EPSG:900913</tt></dd></dl>
-
-<dl><dt><a name="SphericalMercator-locationProj"><strong>locationProj</strong></a>(self, location)</dt><dd><tt>Convert from Location object to a Point object in EPSG:900913</tt></dd></dl>
-
-<dl><dt><a name="SphericalMercator-projCoordinate"><strong>projCoordinate</strong></a>(self, point)</dt><dd><tt>Convert from Point object in EPSG:900913 to a Coordinate object</tt></dd></dl>
-
-<dl><dt><a name="SphericalMercator-projLocation"><strong>projLocation</strong></a>(self, point)</dt><dd><tt>Convert from Point object in EPSG:900913 to a Location object</tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>srs</strong> = '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lo...0 +units=m +nadgrids=@null +wktext +no_defs +over'</dl>
-
-<hr>
-Methods inherited from <a href="ModestMaps.Geo.html#MercatorProjection">ModestMaps.Geo.MercatorProjection</a>:<br>
-<dl><dt><a name="SphericalMercator-rawProject"><strong>rawProject</strong></a>(self, point)</dt></dl>
-
-<dl><dt><a name="SphericalMercator-rawUnproject"><strong>rawUnproject</strong></a>(self, point)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ModestMaps.Geo.html#IProjection">ModestMaps.Geo.IProjection</a>:<br>
-<dl><dt><a name="SphericalMercator-coordinateLocation"><strong>coordinateLocation</strong></a>(self, coordinate)</dt></dl>
-
-<dl><dt><a name="SphericalMercator-locationCoordinate"><strong>locationCoordinate</strong></a>(self, location)</dt></dl>
-
-<dl><dt><a name="SphericalMercator-project"><strong>project</strong></a>(self, point)</dt></dl>
-
-<dl><dt><a name="SphericalMercator-unproject"><strong>unproject</strong></a>(self, point)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="WGS84">class <strong>WGS84</strong></a>(<a href="ModestMaps.Geo.html#LinearProjection">ModestMaps.Geo.LinearProjection</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Unprojected projection for the other commonly-used web map tile scheme.<br>
- <br>
-This projection is identified by the name "<a href="#WGS84">WGS84</a>" in the TileStache config.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="TileStache.Geography.html#WGS84">WGS84</a></dd>
-<dd><a href="ModestMaps.Geo.html#LinearProjection">ModestMaps.Geo.LinearProjection</a></dd>
-<dd><a href="ModestMaps.Geo.html#IProjection">ModestMaps.Geo.IProjection</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="WGS84-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="WGS84-coordinateProj"><strong>coordinateProj</strong></a>(self, coord)</dt><dd><tt>Convert from Coordinate object to a Point object in EPSG:4326</tt></dd></dl>
-
-<dl><dt><a name="WGS84-locationProj"><strong>locationProj</strong></a>(self, location)</dt><dd><tt>Convert from Location object to a Point object in EPSG:4326</tt></dd></dl>
-
-<dl><dt><a name="WGS84-projCoordinate"><strong>projCoordinate</strong></a>(self, point)</dt><dd><tt>Convert from Point object in EPSG:4326 to a Coordinate object</tt></dd></dl>
-
-<dl><dt><a name="WGS84-projLocation"><strong>projLocation</strong></a>(self, point)</dt><dd><tt>Convert from Point object in EPSG:4326 to a Location object</tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>srs</strong> = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'</dl>
-
-<hr>
-Methods inherited from <a href="ModestMaps.Geo.html#LinearProjection">ModestMaps.Geo.LinearProjection</a>:<br>
-<dl><dt><a name="WGS84-rawProject"><strong>rawProject</strong></a>(self, point)</dt></dl>
-
-<dl><dt><a name="WGS84-rawUnproject"><strong>rawUnproject</strong></a>(self, point)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ModestMaps.Geo.html#IProjection">ModestMaps.Geo.IProjection</a>:<br>
-<dl><dt><a name="WGS84-coordinateLocation"><strong>coordinateLocation</strong></a>(self, coordinate)</dt></dl>
-
-<dl><dt><a name="WGS84-locationCoordinate"><strong>locationCoordinate</strong></a>(self, location)</dt></dl>
-
-<dl><dt><a name="WGS84-project"><strong>project</strong></a>(self, point)</dt></dl>
-
-<dl><dt><a name="WGS84-unproject"><strong>unproject</strong></a>(self, point)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-getProjectionByName"><strong>getProjectionByName</strong></a>(name)</dt><dd><tt>Retrieve a projection object by name.<br>
- <br>
-Raise an exception if the name doesn't work out.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.AreaServer.html b/doc/TileStache.Goodies.AreaServer.html
deleted file mode 100644
index 9ed744b..0000000
--- a/doc/TileStache.Goodies.AreaServer.html
+++ /dev/null
@@ -1,79 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.AreaServer</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.AreaServer</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>AreaServer supplies a tiny image server for use with TileStache providers<br>
-that implement renderArea() (<a href="http://tilestache.org/doc/#custom-providers">http://tilestache.org/doc/#custom-providers</a>).<br>
-The built-in Mapnik provider (<a href="http://tilestache.org/doc/#mapnik-provider">http://tilestache.org/doc/#mapnik-provider</a>)<br>
-is one example.<br>
- <br>
-There are no tiles here, just a quick & dirty way of getting variously-sized<br>
-images out of a codebase that's ordinarily oriented toward tile generation.<br>
- <br>
-Example usage, with gunicorn (<a href="http://gunicorn.org">http://gunicorn.org</a>):<br>
- <br>
- gunicorn --bind localhost:8888 "TileStache.Goodies.AreaServer:<a href="#WSGIServer">WSGIServer</a>('tilestache.cfg')"<br>
- <br>
-AreaServer URLs are compatible with the built-in URL Template provider<br>
-(<a href="http://tilestache.org/doc/#url-template-provider">http://tilestache.org/doc/#url-template-provider</a>) and implement a generic<br>
-kind of WMS (<a href="http://en.wikipedia.org/wiki/Web_Map_Service">http://en.wikipedia.org/wiki/Web_Map_Service</a>).<br>
- <br>
-All six URL parameters shown in this example are required; any other<br>
-URL parameter is ignored:<br>
- <br>
- <a href="http://localhost:8888/layer-name?width=600&height=600&xmin=-100&ymin=-100&xmax=100&ymax=100">http://localhost:8888/layer-name?width=600&height=600&xmin=-100&ymin=-100&xmax=100&ymax=100</a></tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.html#WSGITileServer">TileStache.WSGITileServer</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.AreaServer.html#WSGIServer">WSGIServer</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="WSGIServer">class <strong>WSGIServer</strong></a>(<a href="TileStache.html#WSGITileServer">TileStache.WSGITileServer</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>WSGI Application that can handle WMS-style requests for static images.<br>
- <br>
-Inherits the constructor from TileStache WSGI, which just loads<br>
-a TileStache configuration file into self.<strong>config</strong>.<br>
- <br>
-<a href="TileStache.html#WSGITileServer">WSGITileServer</a> autoreload argument is ignored, though. For now.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="WSGIServer-__call__"><strong>__call__</strong></a>(self, environ, start_response)</dt><dd><tt>Handle a request, using PATH_INFO and QUERY_STRING from environ.<br>
- <br>
-There are six required query string parameters: width, height,<br>
-xmin, ymin, xmax and ymax. Layer name must be supplied in PATH_INFO.</tt></dd></dl>
-
-<hr>
-Methods inherited from <a href="TileStache.html#WSGITileServer">TileStache.WSGITileServer</a>:<br>
-<dl><dt><a name="WSGIServer-__init__"><strong>__init__</strong></a>(self, config, autoreload<font color="#909090">=False</font>)</dt><dd><tt>Initialize a callable WSGI instance.<br>
- <br>
-Config parameter can be a file path string for a JSON configuration<br>
-file or a configuration object with 'cache', 'layers', and<br>
-'dirpath' properties.<br>
- <br>
-Optional autoreload boolean parameter causes config to be re-read<br>
-on each request, applicable only when config is a JSON file.</tt></dd></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Caches.GoogleCloud.html b/doc/TileStache.Goodies.Caches.GoogleCloud.html
deleted file mode 100644
index e33a8b9..0000000
--- a/doc/TileStache.Goodies.Caches.GoogleCloud.html
+++ /dev/null
@@ -1,91 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Caches.GoogleCloud</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Caches.html"><font color="#ffffff">Caches</font></a>.GoogleCloud</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Caches tiles to Google Cloud Storage.<br>
- <br>
-Requires boto (2.0+):<br>
- <a href="http://pypi.python.org/pypi/boto">http://pypi.python.org/pypi/boto</a><br>
- <br>
-Example configuration:<br>
- <br>
- "cache": {<br>
- "name": "TileStache.Goodies.Caches.GoogleCloud:<a href="#Cache">Cache</a>",<br>
- "kwargs": {<br>
- "bucket": "<bucket name>",<br>
- "access": "<access key>",<br>
- "secret": "<secret key>"<br>
- }<br>
- }<br>
- <br>
-cache parameters:<br>
- <br>
- bucket<br>
- Required bucket name for GS. If it doesn't exist, it will be created.<br>
- <br>
- access<br>
- Required access key ID for your GS account.<br>
- <br>
- secret<br>
- Required secret access key for your GS account.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Caches.GoogleCloud.html#Cache">Cache</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Cache">class <strong>Cache</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Cache-__init__"><strong>__init__</strong></a>(self, bucket, access, secret)</dt></dl>
-
-<dl><dt><a name="Cache-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt><dd><tt>Acquire a cache lock for this tile.<br>
- <br>
-Returns nothing, but blocks until the lock has been acquired.</tt></dd></dl>
-
-<dl><dt><a name="Cache-read"><strong>read</strong></a>(self, layer, coord, format)</dt><dd><tt>Read a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt><dd><tt>Remove a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt><dd><tt>Save a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt><dd><tt>Release a cache lock for this tile.</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-tile_key"><strong>tile_key</strong></a>(layer, coord, format)</dt><dd><tt>Return a tile key string.</tt></dd></dl>
- <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>() -> floating point number<br>
- <br>
-Return the current time in seconds since the Epoch.<br>
-Fractions of a second may be present if the system clock provides them.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>GOOGLE_STORAGE</strong> = 'gs'<br>
-<strong>LOCAL_FILE</strong> = 'file'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Caches.LimitedDisk.html b/doc/TileStache.Goodies.Caches.LimitedDisk.html
deleted file mode 100644
index 17c9de9..0000000
--- a/doc/TileStache.Goodies.Caches.LimitedDisk.html
+++ /dev/null
@@ -1,88 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Caches.LimitedDisk</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Caches.html"><font color="#ffffff">Caches</font></a>.LimitedDisk</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt><a href="#Cache">Cache</a> that stores a limited amount of data.<br>
- <br>
-This is an example cache that uses a SQLite database to track sizes and last-read<br>
-times for cached tiles, and removes least-recently-used tiles whenever the total<br>
-size of the cache exceeds a set limit.<br>
- <br>
-Example TileStache cache configuration, with a 16MB limit:<br>
- <br>
-"cache":<br>
-{<br>
- "class": "TileStache.Goodies.Caches.LimitedDisk.<a href="#Cache">Cache</a>",<br>
- "kwargs": {<br>
- "path": "/tmp/limited-cache",<br>
- "limit": 16777216<br>
- }<br>
-}</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top><a href="time.html">time</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Caches.LimitedDisk.html#Cache">Cache</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Cache">class <strong>Cache</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Cache-__init__"><strong>__init__</strong></a>(self, path, limit, umask<font color="#909090">=18</font>)</dt></dl>
-
-<dl><dt><a name="Cache-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt><dd><tt>Acquire a cache lock for this tile.<br>
- <br>
-Returns nothing, but (TODO) blocks until the lock has been acquired.<br>
-Lock is implemented as a row in the "locks" table.</tt></dd></dl>
-
-<dl><dt><a name="Cache-read"><strong>read</strong></a>(self, layer, coord, format)</dt><dd><tt>Read a cached tile.<br>
- <br>
-If found, update the used column in the tiles table with current time.</tt></dd></dl>
-
-<dl><dt><a name="Cache-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt><dd><tt>Remove a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt></dl>
-
-<dl><dt><a name="Cache-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt><dd><tt>Release a cache lock for this tile.<br>
- <br>
-Lock is implemented as a row in the "locks" table.</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-connect"><strong>connect</strong></a>(...)</dt><dd><tt><a href="#-connect">connect</a>(database[, timeout, isolation_level, detect_types, factory])<br>
- <br>
-Opens a connection to the SQLite database file *database*. You can use<br>
-":memory:" to open a database connection to a database that resides in<br>
-RAM instead of on disk.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Caches.html b/doc/TileStache.Goodies.Caches.html
deleted file mode 100644
index b6f7d74..0000000
--- a/doc/TileStache.Goodies.Caches.html
+++ /dev/null
@@ -1,23 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package TileStache.Goodies.Caches</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.Caches</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Additional cache classes go here.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Goodies.Caches.GoogleCloud.html">GoogleCloud</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.Caches.LimitedDisk.html">LimitedDisk</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.ExternalConfigServer.html b/doc/TileStache.Goodies.ExternalConfigServer.html
deleted file mode 100644
index 218e347..0000000
--- a/doc/TileStache.Goodies.ExternalConfigServer.html
+++ /dev/null
@@ -1,98 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.ExternalConfigServer</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.ExternalConfigServer</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>ExternalConfigServer is a replacement for <a href="TileStache.html#WSGITileServer">WSGITileServer</a> that uses external<br>
-configuration fetched via HTTP to service all config requests.<br>
- <br>
-Example usage, with gunicorn (<a href="http://gunicorn.org">http://gunicorn.org</a>):<br>
- <br>
- gunicorn --bind localhost:8888 "TileStache.Goodies.ExternalConfigServer:<a href="#WSGIServer">WSGIServer</a>(url)"</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.html">TileStache</a><br>
-</td><td width="25%" valign=top><a href="logging.html">logging</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.html#WSGITileServer">TileStache.WSGITileServer</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.ExternalConfigServer.html#WSGIServer">WSGIServer</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.ExternalConfigServer.html#DynamicLayers">DynamicLayers</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.ExternalConfigServer.html#ExternalConfiguration">ExternalConfiguration</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="DynamicLayers">class <strong>DynamicLayers</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="DynamicLayers-__contains__"><strong>__contains__</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="DynamicLayers-__getitem__"><strong>__getitem__</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="DynamicLayers-__init__"><strong>__init__</strong></a>(self, config, url_root, cache_responses, dirpath)</dt></dl>
-
-<dl><dt><a name="DynamicLayers-items"><strong>items</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DynamicLayers-keys"><strong>keys</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DynamicLayers-parse_layer"><strong>parse_layer</strong></a>(self, layer_json)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="ExternalConfiguration">class <strong>ExternalConfiguration</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="ExternalConfiguration-__init__"><strong>__init__</strong></a>(self, url_root, cache_dict, cache_responses, dirpath)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="WSGIServer">class <strong>WSGIServer</strong></a>(<a href="TileStache.html#WSGITileServer">TileStache.WSGITileServer</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrap WSGI application, passing it a custom configuration.<br>
- <br>
-The WSGI application is an instance of TileStache:<a href="TileStache.html#WSGITileServer">WSGITileServer</a>.<br>
- <br>
-This method is initiated with a url_root that contains the scheme, host, port<br>
-and path that must prefix the API calls on our local server. Any valid http<br>
-or https urls should work.<br>
- <br>
-The cache_responses parameter tells TileStache to cache all responses from<br>
-the configuration server.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="WSGIServer-__call__"><strong>__call__</strong></a>(self, environ, start_response)</dt></dl>
-
-<dl><dt><a name="WSGIServer-__init__"><strong>__init__</strong></a>(self, url_root, cache_responses<font color="#909090">=True</font>, debug_level<font color="#909090">='DEBUG'</font>)</dt></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Proj4Projection.html b/doc/TileStache.Goodies.Proj4Projection.html
deleted file mode 100644
index 11fd8ca..0000000
--- a/doc/TileStache.Goodies.Proj4Projection.html
+++ /dev/null
@@ -1,132 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Proj4Projection</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.Proj4Projection</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Projection that supports any projection that can be expressed in Proj.4 format.<br>
- <br>
-The projection is configured by a projection definition in the Proj.4<br>
-format, the resolution of the zoom levels that the projection should<br>
-support, the tile size, and a transformation that defines how to tile<br>
-coordinates are calculated.<br>
- <br>
-An example, instantiating a projection for EPSG:2400 (RT90 2.5 gon W):<br>
- <br>
- <a href="#Proj4Projection">Proj4Projection</a>('+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1'<br>
- +' +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs',<br>
- [8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1],<br>
- transformation=Transformation(1, 0, 0, 0, -1, 0))<br>
- <br>
-This example defines 14 zoom levels, where each level doubles the<br>
-resolution, where the most zoomed out level uses 8192 projected units<br>
-(meters, in this case) per pixel. The tiles are adressed using XYZ scheme,<br>
-with the origin at (0, 0): the x component of the transformation is 1, the<br>
-y component is -1 (tile rows increase from north to south). Tile size<br>
-defaults to 256x256 pixels.<br>
- <br>
-The same projection, included in a TileStache configuration file:<br>
- <br>
- "example":<br>
- {<br>
- "provider": {"name": "mapnik", "mapfile": "examples/style.xml"},<br>
- "projection": "TileStache.Goodies.<a href="#Proj4Projection">Proj4Projection</a>:<a href="#Proj4Projection">Proj4Projection</a>('+proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs', [8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1], transformation=Transformation(1, 0, 0,& [...]
- }<br>
- <br>
-"Module:Class()" syntax described in <a href="http://tilestache.org/doc/#projections">http://tilestache.org/doc/#projections</a>.<br>
- <br>
-For more details about tiling, projections, zoom levels and transformations,<br>
-see <a href="http://blog.kartena.se/local-projections-in-a-world-of-spherical-mercator/">http://blog.kartena.se/local-projections-in-a-world-of-spherical-mercator/</a></tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.html">TileStache</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ModestMaps.Geo.html#LinearProjection">ModestMaps.Geo.LinearProjection</a>(<a href="ModestMaps.Geo.html#IProjection">ModestMaps.Geo.IProjection</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Proj4Projection.html#Proj4Projection">Proj4Projection</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Proj4Projection">class <strong>Proj4Projection</strong></a>(<a href="ModestMaps.Geo.html#LinearProjection">ModestMaps.Geo.LinearProjection</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Projection that supports any projection that can be expressed in Proj.4 format.<br>
- <br>
-Required attributes:<br>
- <br>
- srs:<br>
- The Proj.4 definition of the projection to use, as a string<br>
- <br>
- resolutions:<br>
- An array of the zoom levels' resolutions, expressed as the number<br>
- of projected units per pixel on each zoom level. The array is ordered<br>
- with outermost zoom level first (0 is most zoomed out).<br>
- <br>
-Optional attributes:<br>
- <br>
- tile_size:<br>
- The size of a tile in pixels, default is 256.<br>
- <br>
- transformation:<br>
- Transformation to apply to the projected coordinates to convert them<br>
- to tile coordinates. Defaults to Transformation(1, 0, 0, 1, 0), which<br>
- gives row = projected_y * scale, column = projected_x * scale<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="TileStache.Goodies.Proj4Projection.html#Proj4Projection">Proj4Projection</a></dd>
-<dd><a href="ModestMaps.Geo.html#LinearProjection">ModestMaps.Geo.LinearProjection</a></dd>
-<dd><a href="ModestMaps.Geo.html#IProjection">ModestMaps.Geo.IProjection</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Proj4Projection-__init__"><strong>__init__</strong></a>(self, srs, resolutions, tile_size<font color="#909090">=256</font>, transformation<font color="#909090">=<ModestMaps.Geo.Transformation instance></font>)</dt><dd><tt>Creates a new instance with the projection specified in srs, which is in Proj4<br>
-format.</tt></dd></dl>
-
-<dl><dt><a name="Proj4Projection-coordinateLocation"><strong>coordinateLocation</strong></a>(self, coord)</dt><dd><tt>TODO: write me.</tt></dd></dl>
-
-<dl><dt><a name="Proj4Projection-coordinateProj"><strong>coordinateProj</strong></a>(self, coord)</dt><dd><tt>Convert from Coordinate object to a Point object in the defined projection</tt></dd></dl>
-
-<dl><dt><a name="Proj4Projection-findZoom"><strong>findZoom</strong></a>(self, resolution)</dt></dl>
-
-<dl><dt><a name="Proj4Projection-locationCoordinate"><strong>locationCoordinate</strong></a>(self, location)</dt></dl>
-
-<dl><dt><a name="Proj4Projection-locationProj"><strong>locationProj</strong></a>(self, location)</dt><dd><tt>Convert from Location object to a Point object in the defined projection</tt></dd></dl>
-
-<dl><dt><a name="Proj4Projection-projCoordinate"><strong>projCoordinate</strong></a>(self, point, zoom<font color="#909090">=None</font>)</dt><dd><tt>Convert from Point object in the defined projection to a Coordinate object</tt></dd></dl>
-
-<dl><dt><a name="Proj4Projection-projLocation"><strong>projLocation</strong></a>(self, point)</dt><dd><tt>Convert from Point object in the defined projection to a Location object</tt></dd></dl>
-
-<dl><dt><a name="Proj4Projection-project"><strong>project</strong></a>(self, point, scale)</dt></dl>
-
-<dl><dt><a name="Proj4Projection-unproject"><strong>unproject</strong></a>(self, point, scale)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ModestMaps.Geo.html#LinearProjection">ModestMaps.Geo.LinearProjection</a>:<br>
-<dl><dt><a name="Proj4Projection-rawProject"><strong>rawProject</strong></a>(self, point)</dt></dl>
-
-<dl><dt><a name="Proj4Projection-rawUnproject"><strong>rawUnproject</strong></a>(self, point)</dt></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.Cascadenik.html b/doc/TileStache.Goodies.Providers.Cascadenik.html
deleted file mode 100644
index 426df6d..0000000
--- a/doc/TileStache.Goodies.Providers.Cascadenik.html
+++ /dev/null
@@ -1,66 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.Cascadenik</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.Cascadenik</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Cascadenik <a href="#Provider">Provider</a>.<br>
- <br>
-Simple wrapper for TileStache Mapnik provider that parses Cascadenik MML files<br>
-directly, skipping the typical compilation to XML step.<br>
- <br>
-More information on Cascadenik:<br>
-- https://github.com/mapnik/Cascadenik/wiki/Cascadenik<br>
- <br>
-Requires Cascadenik 2.x+.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Mapnik.html#ImageProvider">TileStache.Mapnik.ImageProvider</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.Cascadenik.html#Provider">Provider</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a>(<a href="TileStache.Mapnik.html#ImageProvider">TileStache.Mapnik.ImageProvider</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Renders map images from Cascadenik MML files.<br>
- <br>
-Arguments:<br>
- <br>
-- mapfile (required)<br>
- Local file path to Mapnik XML file.<br>
- <br>
-- fonts (optional)<br>
- Local directory path to *.ttf font files.<br>
- <br>
-- workdir (optional)<br>
- Directory path for working files, tempfile.gettempdir() by default.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, mapfile, fonts<font color="#909090">=None</font>, workdir<font color="#909090">=None</font>)</dt><dd><tt>Initialize Cascadenik provider with layer and mapfile.</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderArea"><strong>renderArea</strong></a>(self, width, height, srs, xmin, ymin, xmax, ymax, zoom)</dt><dd><tt>Mostly hand off functionality to Mapnik.<a href="TileStache.Mapnik.html#ImageProvider">ImageProvider</a>.<a href="#Provider-renderArea">renderArea</a>()</tt></dd></dl>
-
-<hr>
-Static methods inherited from <a href="TileStache.Mapnik.html#ImageProvider">TileStache.Mapnik.ImageProvider</a>:<br>
-<dl><dt><a name="Provider-prepareKeywordArgs"><strong>prepareKeywordArgs</strong></a>(config_dict)</dt><dd><tt>Convert configured parameters to keyword args for <a href="#Provider-__init__">__init__</a>().</tt></dd></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.Composite.html b/doc/TileStache.Goodies.Providers.Composite.html
deleted file mode 100644
index e46e51d..0000000
--- a/doc/TileStache.Goodies.Providers.Composite.html
+++ /dev/null
@@ -1,396 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.Composite</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.Composite</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Layered, composite rendering for TileStache.<br>
- <br>
-NOTE: This code is currently in heavy progress. I'm finishing the addition<br>
-of the new JSON style of layer configuration, while the original XML form<br>
-is *deprecated* and will be removed in the future TileStache 2.0.<br>
- <br>
-The <a href="#Composite">Composite</a> <a href="#Provider">Provider</a> provides a Photoshop-like rendering pipeline, making it<br>
-possible to use the output of other configured tile layers as layers or masks<br>
-to create a combined output. <a href="#Composite">Composite</a> is modeled on Lars Ahlzen's TopOSM.<br>
- <br>
-The "stack" configuration parameter describes a layer or stack of layers that<br>
-can be combined to create output. A simple stack that merely outputs a single<br>
-color orange tile looks like this:<br>
- <br>
- {"color" "#ff9900"}<br>
- <br>
-Other layers in the current TileStache configuration can be reference by name,<br>
-as in this example stack that simply echoes another layer:<br>
- <br>
- {"src": "layer-name"}<br>
- <br>
-Layers can be limited to appear at certain zoom levels, given either as a range<br>
-or as a single number:<br>
- <br>
- {"src": "layer-name", "zoom": "12"}<br>
- {"src": "layer-name", "zoom": "12-18"}<br>
- <br>
-Layers can also be used as masks, as in this example that uses one layer<br>
-to mask another layer:<br>
- <br>
- {"mask": "layer-name", "src": "other-layer"}<br>
- <br>
-Many combinations of "src", "mask", and "color" can be used together, but it's<br>
-an error to provide all three.<br>
- <br>
-Layers can be combined through the use of opacity and blend modes. Opacity is<br>
-specified as a value from 0.0-1.0, and blend mode is specified as a string.<br>
-This example layer is blended using the "hard light" mode at 50% opacity:<br>
- <br>
- {"src": "hillshading", "mode": "hard light", "opacity": 0.5}<br>
- <br>
-Currently-supported blend modes include "screen", "multiply", "linear light",<br>
-and "hard light".<br>
- <br>
-Layers can also be affected by adjustments. Adjustments are specified as an<br>
-array of names and parameters. This example layer has been slightly darkened<br>
-using the "curves" adjustment, moving the input value of 181 (light gray)<br>
-to 50% gray while leaving black and white alone:<br>
- <br>
- {"src": "hillshading", "adjustments": [ ["curves", [0, 181, 255]] ]}<br>
- <br>
-Available adjustments:<br>
- "threshold" - <a href="#-apply_threshold_adjustment">apply_threshold_adjustment</a>()<br>
- "curves" - <a href="#-apply_curves_adjustment">apply_curves_adjustment</a>()<br>
- "curves2" - <a href="#-apply_curves2_adjustment">apply_curves2_adjustment</a>()<br>
- <br>
-Finally, the stacking feature allows layers to combined in more complex ways.<br>
-This example stack combines a background color and foreground layer:<br>
- <br>
- [<br>
- {"color": "#ff9900"},<br>
- {"src": "layer-name"}<br>
- ]<br>
- <br>
-Stacks can be nested as well, such as this combination of two background layers<br>
-and two foreground layers:<br>
- <br>
- [<br>
- [<br>
- {"color"" "#0066ff"},<br>
- {"src": "continents"}<br>
- ],<br>
- [<br>
- {"src": "streets"},<br>
- {"src": "labels"}<br>
- ]<br>
- ]<br>
- <br>
-A complete example configuration might look like this:<br>
- <br>
- {<br>
- "cache":<br>
- {<br>
- "name": "Test"<br>
- },<br>
- "layers": <br>
- {<br>
- "base":<br>
- {<br>
- "provider": {"name": "mapnik", "mapfile": "mapnik-base.xml"}<br>
- },<br>
- "halos":<br>
- {<br>
- "provider": {"name": "mapnik", "mapfile": "mapnik-halos.xml"},<br>
- "metatile": {"buffer": 128}<br>
- },<br>
- "outlines":<br>
- {<br>
- "provider": {"name": "mapnik", "mapfile": "mapnik-outlines.xml"},<br>
- "metatile": {"buffer": 16}<br>
- },<br>
- "streets":<br>
- {<br>
- "provider": {"name": "mapnik", "mapfile": "mapnik-streets.xml"},<br>
- "metatile": {"buffer": 128}<br>
- },<br>
- "composite":<br>
- {<br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.Providers.<a href="#Composite">Composite</a>:<a href="#Provider">Provider</a>",<br>
- "kwargs":<br>
- {<br>
- "stack":<br>
- [<br>
- {"src": "base"},<br>
- [<br>
- {"src": "outlines", "mask": "halos"},<br>
- {"src": "streets"}<br>
- ]<br>
- ]<br>
- }<br>
- }<br>
- }<br>
- }<br>
- }<br>
- <br>
-It's also possible to provide an equivalent "stackfile" argument that refers to<br>
-an XML file, but this feature is *deprecated* and will be removed in the future<br>
-release of TileStache 2.0.<br>
- <br>
-Corresponding example stackfile XML:<br>
- <br>
- <?xml version="1.0"?><br>
- <stack><br>
- <layer src="base" /><br>
- <br>
- <stack><br>
- <layer src="outlines"><br>
- <mask src="halos" /><br>
- </layer><br>
- <layer src="streets" /><br>
- </stack><br>
- </stack><br>
- <br>
-Note that each layer in this file refers to a TileStache layer by name.<br>
-This complete example can be found in the included examples directory.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="PIL.Image.html">PIL.Image</a><br>
-<a href="TileStache.html">TileStache</a><br>
-</td><td width="25%" valign=top><a href="numpy.html">numpy</a><br>
-<a href="re.html">re</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.Composite.html#Layer">Layer</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.Composite.html#Provider">Provider</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.Composite.html#Composite">Composite</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.Composite.html#Stack">Stack</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Composite">class <strong>Composite</strong></a>(<a href="TileStache.Goodies.Providers.Composite.html#Provider">Provider</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>An old name for the <a href="#Provider">Provider</a> class, deprecated for the next version.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods inherited from <a href="TileStache.Goodies.Providers.Composite.html#Provider">Provider</a>:<br>
-<dl><dt><a name="Composite-__init__"><strong>__init__</strong></a>(self, layer, stack<font color="#909090">=None</font>, stackfile<font color="#909090">=None</font>)</dt><dd><tt>Make a new <a href="#Composite">Composite</a>.<a href="#Provider">Provider</a>.<br>
- <br>
-Arguments:<br>
- <br>
- layer:<br>
- The current TileStache.Core.<a href="#Layer">Layer</a><br>
- <br>
- stack:<br>
- A list or dictionary with configuration for the image stack, parsed<br>
- by <a href="#-build_stack">build_stack</a>(). Also acceptable is a URL to a JSON file.<br>
- <br>
- stackfile:<br>
- *Deprecated* filename for an XML representation of the image stack.</tt></dd></dl>
-
-<dl><dt><a name="Composite-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Layer">class <strong>Layer</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>A single image layer in a stack.<br>
- <br>
-Can include a reference to another layer for the source image, a second<br>
-reference to another layer for the mask, and a color name for the fill.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Layer-__init__"><strong>__init__</strong></a>(self, layername<font color="#909090">=None</font>, colorname<font color="#909090">=None</font>, maskname<font color="#909090">=None</font>, opacity<font color="#909090">=1.0</font>, blendmode<font color="#909090">=None</font>, adjustments<font color="#909090">=None</font>, zoom<font color="#909090">=''</font>)</dt><dd><tt>A new image layer.<br>
- <br>
-Arguments:<br>
- <br>
- layername:<br>
- Name of the primary source image layer.<br>
- <br>
- colorname:<br>
- Fill color, passed to <a href="#-make_color">make_color</a>().<br>
- <br>
- maskname:<br>
- Name of the mask image layer.</tt></dd></dl>
-
-<dl><dt><a name="Layer-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Layer-in_zoom"><strong>in_zoom</strong></a>(self, zoom)</dt><dd><tt>Return true if the requested zoom level is valid for this layer.</tt></dd></dl>
-
-<dl><dt><a name="Layer-render"><strong>render</strong></a>(self, config, input_rgba, coord)</dt><dd><tt>Render this image layer.<br>
- <br>
-Given a configuration object, starting image, and coordinate,<br>
-return an output image with the contents of this image layer.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Provides a Photoshop-like rendering pipeline, making it possible to use<br>
-the output of other configured tile layers as layers or masks to create<br>
-a combined output.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, stack<font color="#909090">=None</font>, stackfile<font color="#909090">=None</font>)</dt><dd><tt>Make a new <a href="#Composite">Composite</a>.<a href="#Provider">Provider</a>.<br>
- <br>
-Arguments:<br>
- <br>
- layer:<br>
- The current TileStache.Core.<a href="#Layer">Layer</a><br>
- <br>
- stack:<br>
- A list or dictionary with configuration for the image stack, parsed<br>
- by <a href="#-build_stack">build_stack</a>(). Also acceptable is a URL to a JSON file.<br>
- <br>
- stackfile:<br>
- *Deprecated* filename for an XML representation of the image stack.</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Stack">class <strong>Stack</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>A stack of image layers.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Stack-__init__"><strong>__init__</strong></a>(self, layers)</dt><dd><tt>A new image stack.<br>
- <br>
-Argument:<br>
- <br>
- layers:<br>
- List of <a href="#Layer">Layer</a> instances.</tt></dd></dl>
-
-<dl><dt><a name="Stack-in_zoom"><strong>in_zoom</strong></a>(self, level)</dt></dl>
-
-<dl><dt><a name="Stack-render"><strong>render</strong></a>(self, config, input_rgba, coord)</dt><dd><tt>Render this image stack.<br>
- <br>
-Given a configuration object, starting image, and coordinate,<br>
-return an output image with the results of all the layers in<br>
-this stack pasted on in turn.</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-apply_adjustments"><strong>apply_adjustments</strong></a>(rgba, adjustments)</dt><dd><tt>Apply image adjustments one by one and return a modified image.<br>
- <br>
-Working adjustments:<br>
- <br>
- threshold:<br>
- Calls <a href="#-apply_threshold_adjustment">apply_threshold_adjustment</a>()<br>
- <br>
- curves:<br>
- Calls <a href="#-apply_curves_adjustment">apply_curves_adjustment</a>()<br>
- <br>
- curves2:<br>
- Calls <a href="#-apply_curves2_adjustment">apply_curves2_adjustment</a>()</tt></dd></dl>
- <dl><dt><a name="-apply_curves2_adjustment"><strong>apply_curves2_adjustment</strong></a>(rgba, map_red, map_green<font color="#909090">=None</font>, map_blue<font color="#909090">=None</font>)</dt><dd><tt>Adjustment inspired by Photoshop "Curves" feature.<br>
- <br>
-Arguments are given in the form of three value mappings, typically<br>
-mapping black, grey and white input and output values. One argument<br>
-indicates an effect applicable to all channels, three arguments apply<br>
-effects to each channel separately.<br>
- <br>
-Simple monochrome inversion:<br>
- <br>
- [<br>
- "curves2",<br>
- [[0, 255], [128, 128], [255, 0]]<br>
- ]<br>
- <br>
-Darken a light image by pushing light grey down by 50%, 0x99 to 0x66:<br>
- <br>
- [<br>
- "curves2",<br>
- [[0, 255], [153, 102], [255, 0]]<br>
- ]<br>
- <br>
-Shaded hills, with Imhof-style purple-blue shadows and warm highlights: <br>
- <br>
- [<br>
- "curves2",<br>
- [[0, 22], [128, 128], [255, 255]],<br>
- [[0, 29], [128, 128], [255, 255]],<br>
- [[0, 65], [128, 128], [255, 228]]<br>
- ]</tt></dd></dl>
- <dl><dt><a name="-apply_curves_adjustment"><strong>apply_curves_adjustment</strong></a>(rgba, black_grey_white)</dt><dd><tt>Adjustment inspired by Photoshop "Curves" feature.<br>
- <br>
-Arguments are three integers that are intended to be mapped to black,<br>
-grey, and white outputs. Curves2 offers more flexibility, see<br>
-<a href="#-apply_curves2_adjustment">apply_curves2_adjustment</a>().<br>
- <br>
-Darken a light image by pushing light grey to 50% grey, 0xCC to 0x80:<br>
- <br>
- [<br>
- "curves",<br>
- [0, 204, 255]<br>
- ]</tt></dd></dl>
- <dl><dt><a name="-apply_threshold_adjustment"><strong>apply_threshold_adjustment</strong></a>(rgba, red_value, green_value<font color="#909090">=None</font>, blue_value<font color="#909090">=None</font>)</dt></dl>
- <dl><dt><a name="-blend_channels_hard_light"><strong>blend_channels_hard_light</strong></a>(bottom_chan, top_chan)</dt><dd><tt>Return combination of bottom and top channels.<br>
- <br>
-Math from <a href="http://illusions.hu/effectwiki/doku.php?id=hard_light_blending">http://illusions.hu/effectwiki/doku.php?id=hard_light_blending</a></tt></dd></dl>
- <dl><dt><a name="-blend_channels_linear_light"><strong>blend_channels_linear_light</strong></a>(bottom_chan, top_chan)</dt><dd><tt>Return combination of bottom and top channels.<br>
- <br>
-Math from <a href="http://illusions.hu/effectwiki/doku.php?id=linear_light_blending">http://illusions.hu/effectwiki/doku.php?id=linear_light_blending</a></tt></dd></dl>
- <dl><dt><a name="-blend_channels_multiply"><strong>blend_channels_multiply</strong></a>(bottom_chan, top_chan)</dt><dd><tt>Return combination of bottom and top channels.<br>
- <br>
-Math from <a href="http://illusions.hu/effectwiki/doku.php?id=multiply_blending">http://illusions.hu/effectwiki/doku.php?id=multiply_blending</a></tt></dd></dl>
- <dl><dt><a name="-blend_channels_screen"><strong>blend_channels_screen</strong></a>(bottom_chan, top_chan)</dt><dd><tt>Return combination of bottom and top channels.<br>
- <br>
-Math from <a href="http://illusions.hu/effectwiki/doku.php?id=screen_blending">http://illusions.hu/effectwiki/doku.php?id=screen_blending</a></tt></dd></dl>
- <dl><dt><a name="-blend_images"><strong>blend_images</strong></a>(bottom_rgba, top_rgb, mask_chan, opacity, blendmode)</dt><dd><tt>Blend images using a given mask, opacity, and blend mode.<br>
- <br>
-Working blend modes:<br>
-None for plain pass-through, "screen", "multiply", "linear light", and "hard light".</tt></dd></dl>
- <dl><dt><a name="-build_stack"><strong>build_stack</strong></a>(obj)</dt><dd><tt>Build up a data structure of <a href="#Stack">Stack</a> and <a href="#Layer">Layer</a> objects from lists of dictionaries.<br>
- <br>
-Normally, this is applied to the "stack" parameter to <a href="#Composite">Composite</a>.<a href="#Provider">Provider</a>.</tt></dd></dl>
- <dl><dt><a name="-makeColor"><strong>makeColor</strong></a>(color)</dt><dd><tt>An old name for the make_color function, deprecated for the next version.</tt></dd></dl>
- <dl><dt><a name="-makeLayer"><strong>makeLayer</strong></a>(element)</dt><dd><tt>Build a <a href="#Layer">Layer</a> object from an XML element, deprecated for the next version.</tt></dd></dl>
- <dl><dt><a name="-makeStack"><strong>makeStack</strong></a>(element)</dt><dd><tt>Build a <a href="#Stack">Stack</a> object from an XML element, deprecated for the next version.</tt></dd></dl>
- <dl><dt><a name="-make_color"><strong>make_color</strong></a>(color)</dt><dd><tt>Convert colors expressed as HTML-style RGB(A) strings to tuples.<br>
- <br>
-Returns four-element RGBA tuple, e.g. (0xFF, 0x99, 0x00, 0xFF).<br>
- <br>
-Examples:<br>
- white: "#ffffff", "#fff", "#ffff", "#ffffffff"<br>
- black: "#000000", "#000", "#000f", "#000000ff"<br>
- null: "#0000", "#00000000"<br>
- orange: "#f90", "#ff9900", "#ff9900ff"<br>
- transparent orange: "#f908", "#ff990088"</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.GDAL.html b/doc/TileStache.Goodies.Providers.GDAL.html
deleted file mode 100644
index d599974..0000000
--- a/doc/TileStache.Goodies.Providers.GDAL.html
+++ /dev/null
@@ -1,73 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.GDAL</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.GDAL</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Minimally-tested GDAL image provider.<br>
- <br>
-Based on existing work in OAM (https://github.com/oam/oam), this GDAL provider<br>
-is the bare minimum necessary to do simple output of GDAL data sources.<br>
- <br>
-Sample configuration:<br>
- <br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.Providers.GDAL:<a href="#Provider">Provider</a>",<br>
- "kwargs": { "filename": "landcover-1km.tif", "resample": "linear", "maskband": 2 }<br>
- }<br>
- <br>
-Valid values for resample are "cubic", "cubicspline", "linear", and "nearest".<br>
- <br>
-The maskband argument is optional. If present and greater than 0, it specifies<br>
-the GDAL dataset band whose mask should be used as an alpha channel. If maskband<br>
-is 0 (the default), do not create an alpha channel.<br>
- <br>
-With a bit more work, this provider will be ready for fully-supported inclusion<br>
-in TileStache proper. Until then, it will remain here in the Goodies package.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="PIL.Image.html">PIL.Image</a><br>
-</td><td width="25%" valign=top><a href="osgeo.gdal.html">osgeo.gdal</a><br>
-</td><td width="25%" valign=top><a href="osgeo.osr.html">osgeo.osr</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.GDAL.html#Provider">Provider</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, filename, resample<font color="#909090">='cubic'</font>, maskband<font color="#909090">=0</font>)</dt></dl>
-
-<dl><dt><a name="Provider-renderArea"><strong>renderArea</strong></a>(self, width, height, srs, xmin, ymin, xmax, ymax, zoom)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>resamplings</strong> = {'cubic': 2, 'cubicspline': 3, 'linear': 1, 'nearest': 0}</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.Grid.html b/doc/TileStache.Goodies.Providers.Grid.html
deleted file mode 100644
index 1ac4a7b..0000000
--- a/doc/TileStache.Goodies.Providers.Grid.html
+++ /dev/null
@@ -1,95 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.Grid</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.Grid</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Grid rendering for TileStache.<br>
- <br>
-<a href="#UTM">UTM</a> provider found here draws gridlines in tiles, in transparent images suitable<br>
-for use as map overlays.<br>
- <br>
-Example TileStache provider configuration:<br>
- <br>
-"grid":<br>
-{<br>
- "provider": {"class": "TileStache.Goodies.Providers.Grid:<a href="#UTM">UTM</a>",<br>
- "kwargs": {"display": "MGRS", "spacing": 200, "tick": 10}}<br>
-}</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="PIL.Image.html">PIL.Image</a><br>
-<a href="PIL.ImageDraw.html">PIL.ImageDraw</a><br>
-</td><td width="25%" valign=top><a href="PIL.ImageFont.html">PIL.ImageFont</a><br>
-<a href="PIL.html">PIL</a><br>
-</td><td width="25%" valign=top><a href="TileStache.html">TileStache</a><br>
-<a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.Grid.html#UTM">UTM</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="UTM">class <strong>UTM</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt><a href="#UTM">UTM</a> Grid provider, renders transparent gridlines.<br>
- <br>
-Example configuration:<br>
- <br>
-"grid":<br>
-{<br>
- "provider": {"class": "TileStache.Goodies.Providers.Grid.<a href="#UTM">UTM</a>",<br>
- "kwargs": {"display": "MGRS", "spacing": 200, "tick": 10}}<br>
-}<br>
- <br>
-Additional arguments:<br>
- <br>
-- display (optional, default: "<a href="#UTM">UTM</a>")<br>
- Label display style. <a href="#UTM">UTM</a>: "18Q 0780 2052", MGRS: "18Q YF 80 52".<br>
-- spacing (optional, default: 128)<br>
- Minimum number of pixels between grid lines.<br>
-- tick (optional, default 8)<br>
- Pixel length of 1/10 grid tick marks.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="UTM-__init__"><strong>__init__</strong></a>(self, layer, display<font color="#909090">='UTM'</font>, spacing<font color="#909090">=128</font>, tick<font color="#909090">=8</font>)</dt></dl>
-
-<dl><dt><a name="UTM-renderArea"><strong>renderArea</strong></a>(self, width_, height_, srs, xmin_, ymin_, xmax_, ymax_, zoom)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-lat2hemi"><strong>lat2hemi</strong></a>(lat)</dt><dd><tt>Convert latitude to single-letter hemisphere, "N" or "S".</tt></dd></dl>
- <dl><dt><a name="-lat2zone"><strong>lat2zone</strong></a>(lat)</dt><dd><tt>Convert longitude to single-letter <a href="#UTM">UTM</a> zone.</tt></dd></dl>
- <dl><dt><a name="-lon2zone"><strong>lon2zone</strong></a>(lon)</dt><dd><tt>Convert longitude to numeric <a href="#UTM">UTM</a> zone, 1-60.</tt></dd></dl>
- <dl><dt><a name="-lonlat2grid"><strong>lonlat2grid</strong></a>(lon, lat)</dt><dd><tt>Convert lat/lon pair to alphanumeric <a href="#UTM">UTM</a> zone.</tt></dd></dl>
- <dl><dt><a name="-transform"><strong>transform</strong></a>(w, h, xmin, ymin, xmax, ymax)</dt></dl>
- <dl><dt><a name="-utm2mgrs"><strong>utm2mgrs</strong></a>(e, n, grid, zeros<font color="#909090">=0</font>)</dt><dd><tt>Convert <a href="#UTM">UTM</a> easting/northing pair and grid zone<br>
-to MGRS-style grid reference, e.g. "18Q YF 80 52".<br>
- <br>
-Adapted from <a href="http://haiticrisismap.org/js/usng2.js">http://haiticrisismap.org/js/usng2.js</a></tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.MapnikGrid.html b/doc/TileStache.Goodies.Providers.MapnikGrid.html
deleted file mode 100644
index 91273e6..0000000
--- a/doc/TileStache.Goodies.Providers.MapnikGrid.html
+++ /dev/null
@@ -1,104 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.MapnikGrid</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.MapnikGrid</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Mapnik UTFGrid <a href="#Provider">Provider</a>.<br>
- <br>
-Takes the first layer from the given mapnik xml file and renders it as UTFGrid<br>
-https://github.com/mapbox/utfgrid-spec/blob/master/1.2/utfgrid.md<br>
-It can then be used for this:<br>
-<a href="http://mapbox.github.com/wax/interaction-leaf.html">http://mapbox.github.com/wax/interaction-leaf.html</a><br>
-Only works with mapnik>=2.0 (Where the Grid functionality was introduced)<br>
- <br>
-Use Sperical Mercator projection and the extension "json"<br>
- <br>
-Sample configuration:<br>
- <br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.Providers.MapnikGrid:<a href="#Provider">Provider</a>",<br>
- "kwargs":<br>
- {<br>
- "mapfile": "mymap.xml", <br>
- "fields":["name", "address"],<br>
- "layer_index": 0,<br>
- "wrapper": "grid",<br>
- "scale": 4<br>
- }<br>
- }<br>
- <br>
-mapfile: the mapnik xml file to load the map from<br>
-fields: The fields that should be added to the resulting grid json.<br>
-layer_index: The index of the layer you want from your map xml to be rendered<br>
-wrapper: If not included the json will be output raw, if included the json will be wrapped in "wrapper(JSON)" (for use with wax)<br>
-scale: What to divide the tile pixel size by to get the resulting grid size. Usually this is 4.<br>
-buffer: buffer around the queried features, in px, default 0. Use this to prevent problems on tile boundaries.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="json.html">json</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.MapnikGrid.html#Provider">Provider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.MapnikGrid.html#SaveableResponse">SaveableResponse</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, mapfile, fields, layer_index<font color="#909090">=0</font>, wrapper<font color="#909090">=None</font>, scale<font color="#909090">=4</font>, buffer<font color="#909090">=0</font>)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
- <br>
-This only accepts "json".</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="SaveableResponse">class <strong>SaveableResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for JSON response that makes it behave like a PIL.Image object.<br>
- <br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="SaveableResponse-__init__"><strong>__init__</strong></a>(self, content)</dt></dl>
-
-<dl><dt><a name="SaveableResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-get_mapnikMap"><strong>get_mapnikMap</strong></a>(mapfile)</dt><dd><tt>Get a new mapnik.Map instance for a mapfile</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.MirrorOSM.html b/doc/TileStache.Goodies.Providers.MirrorOSM.html
deleted file mode 100644
index f0b4c84..0000000
--- a/doc/TileStache.Goodies.Providers.MirrorOSM.html
+++ /dev/null
@@ -1,165 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.MirrorOSM</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.MirrorOSM</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Populate an OSM rendering database using tiled data requests.<br>
- <br>
-This provider is unusual in that requests for tiles have the side effect of<br>
-running osm2pgsql to populate a PostGIS database of OSM data from a remote API<br>
-source. Returned tiles are just text confirmations that the process has been<br>
-successful, while the stored data is expected to be used in other providers<br>
-to render OSM data. It would be normal to use this provider outside the regular<br>
-confines of a web server, perhaps with a call to tilestache-seed.py governed<br>
-by a cron job or some other out-of-band process.<br>
- <br>
-MirrorOSM is made tenable by MapQuest's hosting of the XAPI service:<br>
- <a href="http://open.mapquestapi.com/xapi/">http://open.mapquestapi.com/xapi/</a><br>
- <br>
-Osm2pgsql is an external utility:<br>
- <a href="http://wiki.openstreetmap.org/wiki/Osm2pgsql">http://wiki.openstreetmap.org/wiki/Osm2pgsql</a><br>
- <br>
-Example configuration:<br>
- <br>
- "mirror-osm":<br>
- {<br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.Providers.MirrorOSM:<a href="#Provider">Provider</a>",<br>
- "kwargs":<br>
- {<br>
- "username": "osm",<br>
- "database": "planet",<br>
- "api_base": "<a href="http://open.mapquestapi.com/xapi/">http://open.mapquestapi.com/xapi/</a>"<br>
- }<br>
- }<br>
- }<br>
- <br>
-<a href="#Provider">Provider</a> parameters:<br>
- <br>
- database:<br>
- Required Postgres database name.<br>
- <br>
- username:<br>
- Required Postgres user name.<br>
- <br>
- password:<br>
- Optional Postgres password.<br>
- <br>
- hostname:<br>
- Optional Postgres host name.<br>
- <br>
- table_prefix:<br>
- Optional table prefix for osm2pgsql. Defaults to "mirrorosm" if omitted.<br>
- Four tables will be created with this prefix: <prefix>_point, <prefix>_line,<br>
- <prefix>_polygon, and <prefix>_roads. Must result in valid table names!<br>
- <br>
- api_base:<br>
- Optional OSM API base URL. Because we don't want to overtax the main OSM<br>
- API, this defaults to MapQuest's XAPI, "<a href="http://open.mapquestapi.com/xapi/">http://open.mapquestapi.com/xapi/</a>".<br>
- The trailing slash must be included, up to but not including the "api/0.6"<br>
- portion of a URL. If you're careful to limit your usage, the primary<br>
- OSM API can be specified with "<a href="http://api.openstreetmap.org/">http://api.openstreetmap.org/</a>".<br>
- <br>
- osm2pgsql:<br>
- Optional filesystem path to osm2pgsql, just in case it's someplace outside<br>
- /usr/bin or /usr/local/bin. Defaults to "osm2pgsql --utf8-sanitize".<br>
- Additional arguments such as "--keep-coastlines" can be added to this string,<br>
- e.g. "/home/user/bin/osm2pgsql --keep-coastlines --utf8-sanitize".</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="PIL.Image.html">PIL.Image</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.MirrorOSM.html#ConfirmationResponse">ConfirmationResponse</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.MirrorOSM.html#Provider">Provider</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="ConfirmationResponse">class <strong>ConfirmationResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for confirmation responses.<br>
- <br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="ConfirmationResponse-__init__"><strong>__init__</strong></a>(self, coord, content, success)</dt></dl>
-
-<dl><dt><a name="ConfirmationResponse-do_I_have_to_draw_you_a_picture"><strong>do_I_have_to_draw_you_a_picture</strong></a>(self)</dt><dd><tt>Return a little thumbs-up / thumbs-down image with text in it.</tt></dd></dl>
-
-<dl><dt><a name="ConfirmationResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, database, username, password<font color="#909090">=None</font>, hostname<font color="#909090">=None</font>, table_prefix<font color="#909090">='mirrorosm'</font>, api_base<font color="#909090">='http://open.mapquestapi.com/xapi/'</font>, osm2pgsql<font color="#909090">='osm2pgsql --utf8-sanitize'</font>)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
- <br>
-This only accepts "txt".</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt><dd><tt>Render a single tile, return a <a href="#ConfirmationResponse">ConfirmationResponse</a> instance.</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-clean_up_tables"><strong>clean_up_tables</strong></a>(db, tmp_prefix)</dt><dd><tt>Drop all temporary tables created by <a href="#-prepare_data">prepare_data</a>().</tt></dd></dl>
- <dl><dt><a name="-close"><strong>close</strong></a>(...)</dt><dd><tt><a href="#-close">close</a>(fd)<br>
- <br>
-Close a file descriptor (for low level IO).</tt></dd></dl>
- <dl><dt><a name="-coordinate_latlon_bbox"><strong>coordinate_latlon_bbox</strong></a>(coord, projection)</dt><dd><tt>Return an (xmin, ymin, xmax, ymax) bounding box for a projected tile.</tt></dd></dl>
- <dl><dt><a name="-create_tables"><strong>create_tables</strong></a>(db, prefix, tmp_prefix)</dt><dd><tt>Create permanent tables for OSM data. No-op if they already exist.</tt></dd></dl>
- <dl><dt><a name="-download_api_data"><strong>download_api_data</strong></a>(filename, coord, api_base, projection)</dt><dd><tt>Download API data for a tile to a named file, return size in kilobytes.</tt></dd></dl>
- <dl><dt><a name="-populate_tables"><strong>populate_tables</strong></a>(db, prefix, tmp_prefix, bounds)</dt><dd><tt>Move prepared OSM data from temporary to permanent tables.<br>
- <br>
-Replace existing data and work within a single transaction.</tt></dd></dl>
- <dl><dt><a name="-prepare_data"><strong>prepare_data</strong></a>(filename, tmp_prefix, dbargs, osm2pgsql, projection)</dt><dd><tt>Stage OSM data into a temporary set of tables using osm2pgsql.</tt></dd></dl>
- <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>() -> floating point number<br>
- <br>
-Return the current time in seconds since the Epoch.<br>
-Fractions of a second may be present if the system clock provides them.</tt></dd></dl>
- <dl><dt><a name="-unlink"><strong>unlink</strong></a>(...)</dt><dd><tt><a href="#-unlink">unlink</a>(path)<br>
- <br>
-Remove a file (same as remove(path)).</tt></dd></dl>
- <dl><dt><a name="-write"><strong>write</strong></a>(...)</dt><dd><tt><a href="#-write">write</a>(fd, string) -> byteswritten<br>
- <br>
-Write a string to a file descriptor.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>PIPE</strong> = -1<br>
-<strong>stderr</strong> = <open file '<stderr>', mode 'w'></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.Monkeycache.html b/doc/TileStache.Goodies.Providers.Monkeycache.html
deleted file mode 100644
index 80d0969..0000000
--- a/doc/TileStache.Goodies.Providers.Monkeycache.html
+++ /dev/null
@@ -1,120 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.Monkeycache</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.Monkeycache</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Monkeycache is a tile provider that reads data from an existing cache.<br>
- <br>
-Normally, TileStache creates new tiles at request-time and saves them to a<br>
-cache for later visitors. Monkeycache supports a different workflow, where<br>
-a cache is seeded ahead of time, and then only existing tiles are served<br>
-from this cache.<br>
- <br>
-For example, you might have a TileStache configuration with a Mapnik<br>
-provider, which requires PostGIS and other software to be installed on your<br>
-system. Monkeycache would allow you to seed that cache into a directory of<br>
-files or an MBTiles file on a system with a fast processor and I/O, and then<br>
-serve the contents of the cache from another system with a faster network<br>
-connection but no Mapnik or PostGIS.<br>
- <br>
-Two sample configurations:<br>
- <br>
-{<br>
- "cache": {"name": "Disk", "path": "/var/cache"},<br>
- "layers": <br>
- {<br>
- "expensive-layer":<br>
- {<br>
- "provider": {"name": "Mapnik", "mapfile": "style.xml"}<br>
- }<br>
- }<br>
-}<br>
- <br>
-{<br>
- "cache": {"name": "Test"},<br>
- "layers": <br>
- {<br>
- "cheap-layer":<br>
- {<br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.Providers.Monkeycache:<a href="#Provider">Provider</a>",<br>
- "kwargs":<br>
- {<br>
- "layer_name": "expensive-layer",<br>
- "cache_config": {"name": "Disk", "path": "/var/cache"},<br>
- "format": "PNG"<br>
- }<br>
- }<br>
- }<br>
- }<br>
-}</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.Monkeycache.html#CacheResponse">CacheResponse</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.Monkeycache.html#Provider">Provider</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="CacheResponse">class <strong>CacheResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for Cache response that makes it behave like a PIL.Image object.<br>
- <br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br>
- <br>
-Constructor arguments:<br>
-- body: Raw data pulled from cache.<br>
-- format: File format to check against.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="CacheResponse-__init__"><strong>__init__</strong></a>(self, body, format)</dt></dl>
-
-<dl><dt><a name="CacheResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Monkeycache <a href="#Provider">Provider</a> with source_layer, source_cache and tile_format attributes.<br>
- <br>
-Source_layer is an instance of TileStache.Core.Layer.<br>
-Source_cache is a valid TileStache Cache provider.<br>
-Tile_format is a string.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, cache_config, layer_name, format<font color="#909090">='PNG'</font>)</dt><dd><tt>Initialize the Monkeycache <a href="#Provider">Provider</a>.<br>
- <br>
-Cache_config is a complete cache configuration dictionary that you<br>
-might use in a TileStache setup (<a href="http://tilestache.org/doc/#caches">http://tilestache.org/doc/#caches</a>).<br>
-This is where Monkeycache will look for already-rendered tiles.<br>
- <br>
-Layer_name is the name of a layer saved in that cache.<br>
- <br>
-Format should match the second return value of your original<br>
-layer's getTypeByExtention() method, e.g. "PNG", "JPEG", or for<br>
-the Vector provider "GeoJSON" and others. This might not necessarily<br>
-match the file name extension, though common cases like "jpg"/"JPEG"<br>
-are accounted for.</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt><dd><tt>Pull a single tile from self.<strong>source_cache</strong>.</tt></dd></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.PostGeoJSON.html b/doc/TileStache.Goodies.Providers.PostGeoJSON.html
deleted file mode 100644
index d9b9ad9..0000000
--- a/doc/TileStache.Goodies.Providers.PostGeoJSON.html
+++ /dev/null
@@ -1,166 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.PostGeoJSON</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.PostGeoJSON</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt><a href="#Provider">Provider</a> that returns GeoJSON data responses from PostGIS queries.<br>
- <br>
-Note:<br>
- <br>
-The built-in TileStache Vector provider (new in version 1.9.0) offers a more<br>
-complete method of generating vector tiles, and supports many kinds of data<br>
-sources not avilable in PostGeoJSON such as shapefiles. PostGeoJSON will<br>
-continue to be provided and supported in TileStache, but future development<br>
-of vector support will be contentrated on the mainline Vector provider, not<br>
-this one.<br>
- <br>
-More information:<br>
- <a href="http://tilestache.org/doc/TileStache.Vector.html">http://tilestache.org/doc/TileStache.Vector.html</a><br>
- <br>
-Anyway.<br>
- <br>
-This is an example of a provider that does not return an image, but rather<br>
-queries a database for raw data and replies with a string of GeoJSON. For<br>
-example, it's possible to retrieve data for locations of OpenStreetMap points<br>
-of interest based on a query with a bounding box intersection.<br>
- <br>
-Read more about the GeoJSON spec at: <a href="http://geojson.org/geojson-spec.html">http://geojson.org/geojson-spec.html</a><br>
- <br>
-Many Polymaps (<a href="http://polymaps.org">http://polymaps.org</a>) examples use GeoJSON vector data tiles,<br>
-which can be effectively created using this provider.<br>
- <br>
-Keyword arguments:<br>
- <br>
- dsn:<br>
- Database connection string suitable for use in psycopg2.connect().<br>
- See <a href="http://initd.org/psycopg/docs/module.html#psycopg2.connect">http://initd.org/psycopg/docs/module.html#psycopg2.connect</a> for more.<br>
- <br>
- query:<br>
- PostGIS query with a "!bbox!" placeholder for the tile bounding box.<br>
- Note that the table *must* use the web spherical mercaotr projection<br>
- 900913. Query should return an id column, a geometry column, and other<br>
- columns to be placed in the GeoJSON "properties" dictionary.<br>
- See below for more on 900913.<br>
- <br>
- clipping:<br>
- Boolean flag for optionally clipping the output geometries to the bounds<br>
- of the enclosing tile. Defaults to fales. This results in incomplete<br>
- geometries, dramatically smaller file sizes, and improves performance<br>
- and compatibility with Polymaps (<a href="http://polymaps.org">http://polymaps.org</a>).<br>
- <br>
- id_column:<br>
- Name of id column in output, detaults to "id". This determines which query<br>
- result column is placed in the GeoJSON "id" field.<br>
- <br>
- geometry_column:<br>
- Name of geometry column in output, defaults to "geometry". This determines<br>
- which query result column is reprojected to lat/lon and output as a list<br>
- of geographic coordinates.<br>
- <br>
- indent:<br>
- Number of spaces to indent output GeoJSON response. Defaults to 2.<br>
- Skip all indenting with a value of zero.<br>
- <br>
- precision:<br>
- Number of decimal places of precision for output geometry. Defaults to 6.<br>
- Default should be appropriate for almost all street-mapping situations.<br>
- A smaller value can help cut down on output file size for lower-zoom maps.<br>
- <br>
-Example TileStache provider configuration:<br>
- <br>
- "points-of-interest":<br>
- {<br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.Providers.PostGeoJSON.<a href="#Provider">Provider</a>",<br>
- "kwargs":<br>
- {<br>
- "dsn": "dbname=geodata user=postgres",<br>
- "query": "SELECT osm_id, name, way FROM planet_osm_point WHERE way && !bbox! AND name IS NOT NULL",<br>
- "id_column": "osm_id", "geometry_column": "way",<br>
- "indent": 2<br>
- }<br>
- }<br>
- }<br>
- <br>
-Caveats:<br>
- <br>
-Currently only databases in the 900913 (google) projection are usable,<br>
-though this is the default setting for OpenStreetMap imports from osm2pgsql.<br>
-The "!bbox!" query placeholder (see example below) must be lowercase, and<br>
-expands to:<br>
- <br>
- ST_SetSRID(ST_MakeBox2D(ST_MakePoint(ulx, uly), ST_MakePoint(lrx, lry)), 900913)<br>
- <br>
-You must support the "900913" SRID in your PostGIS database for now.<br>
-For populating the internal PostGIS spatial_ref_sys table of projections,<br>
-this seems to work:<br>
- <br>
- INSERT INTO spatial_ref_sys<br>
- (srid, auth_name, auth_srid, srtext, proj4text)<br>
- VALUES<br>
- (<br>
- 900913, 'spatialreference.org', 900913,<br>
- 'PROJCS["Popular Visualisation CRS / Mercator",GEOGCS["Popular Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular Visualisation Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4055"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]] [...]
- '+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 +over'<br>
- );</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.PostGeoJSON.html#Provider">Provider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.PostGeoJSON.html#SaveableResponse">SaveableResponse</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, dsn, query, clipping<font color="#909090">=False</font>, id_column<font color="#909090">='id'</font>, geometry_column<font color="#909090">='geometry'</font>, indent<font color="#909090">=2</font>, precision<font color="#909090">=6</font>)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
- <br>
-This only accepts "json".</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt><dd><tt>Render a single tile, return a <a href="#SaveableResponse">SaveableResponse</a> instance.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="SaveableResponse">class <strong>SaveableResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for JSON response that makes it behave like a PIL.Image object.<br>
- <br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="SaveableResponse-__init__"><strong>__init__</strong></a>(self, content, indent<font color="#909090">=2</font>, precision<font color="#909090">=2</font>)</dt></dl>
-
-<dl><dt><a name="SaveableResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-row2feature"><strong>row2feature</strong></a>(row, id_field, geometry_field)</dt><dd><tt>Convert a database row dict to a feature dict.</tt></dd></dl>
- <dl><dt><a name="-shape2geometry"><strong>shape2geometry</strong></a>(shape, projection, clip)</dt><dd><tt>Convert a Shapely geometry object to a GeoJSON-suitable geometry dict.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.SolrGeoJSON.html b/doc/TileStache.Goodies.Providers.SolrGeoJSON.html
deleted file mode 100644
index 7e62893..0000000
--- a/doc/TileStache.Goodies.Providers.SolrGeoJSON.html
+++ /dev/null
@@ -1,140 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.SolrGeoJSON</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.SolrGeoJSON</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt><a href="#Provider">Provider</a> that returns GeoJSON data responses from Solr spatial queries.<br>
- <br>
-This is an example of a provider that does not return an image, but rather<br>
-queries a Solr instance for raw data and replies with a string of GeoJSON.<br>
- <br>
-Read more about the GeoJSON spec at: <a href="http://geojson.org/geojson-spec.html">http://geojson.org/geojson-spec.html</a><br>
- <br>
-Caveats:<br>
- <br>
-Example TileStache provider configuration:<br>
- <br>
-"solr": {<br>
- "provider": {"class": "TileStache.Goodies.Providers.SolrGeoJSON.<a href="#Provider">Provider</a>",<br>
- "kwargs": {<br>
- "solr_endpoint": "<a href="http://localhost:8983/solr/example">http://localhost:8983/solr/example</a>",<br>
- "solr_query": "*:*",<br>
- }}<br>
-}<br>
- <br>
-The following optional parameters are also supported:<br>
- <br>
-latitude_field: The name of the latitude field associated with your query parser;<br>
-the default is 'latitude'<br>
- <br>
-longitude_field: The name of the longitude field associated with your query<br>
-parser, default is 'longitude<br>
- <br>
-response_fields: A comma-separated list of fields with which to filter the Solr<br>
-response; the default is '' (or: include all fields)<br>
- <br>
-id_field: The name name of your Solr instance's unique ID field; the default is ''.<br>
- <br>
-By default queries are scoped to the bounding box of a given tile. Radial queries<br>
-are also supported if you supply a 'radius' kwarg to your provider and have installed<br>
-the JTeam spatial plugin: <a href="http://www.jteam.nl/news/spatialsolr.html">http://www.jteam.nl/news/spatialsolr.html</a>.<br>
- <br>
-For example:<br>
- <br>
-"solr": {<br>
- "provider": {"class": "TileStache.Goodies.Providers.SolrGeoJSON.<a href="#Provider">Provider</a>",<br>
- "kwargs": {<br>
- "solr_endpoint": "<a href="http://localhost:8983/solr/example">http://localhost:8983/solr/example</a>",<br>
- "solr_query": 'foo:bar',<br>
- "radius": "1",<br>
- }}<br>
-}<br>
- <br>
-Radial queries are begin at the center of the tile being rendered and distances are<br>
-measured in kilometers.<br>
- <br>
-The following optional parameters are also supported for radial queries:<br>
- <br>
-query_parser: The name of the Solr query parser associated with your spatial<br>
-plugin; the default is 'spatial'.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.SolrGeoJSON.html#Provider">Provider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.SolrGeoJSON.html#SaveableResponse">SaveableResponse</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, solr_endpoint, solr_query, **kwargs)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
- <br>
-This only accepts "json".</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt><dd><tt>Render a single tile, return a <a href="#SaveableResponse">SaveableResponse</a> instance.</tt></dd></dl>
-
-<dl><dt><a name="Provider-unproject"><strong>unproject</strong></a>(self, x, y)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="SaveableResponse">class <strong>SaveableResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for JSON response that makes it behave like a PIL.Image object.<br>
- <br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="SaveableResponse-__init__"><strong>__init__</strong></a>(self, content)</dt></dl>
-
-<dl><dt><a name="SaveableResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-atan"><strong>atan</strong></a>(...)</dt><dd><tt><a href="#-atan">atan</a>(x)<br>
- <br>
-Return the arc tangent (measured in radians) of x.</tt></dd></dl>
- <dl><dt><a name="-log"><strong>log</strong></a>(...)</dt><dd><tt><a href="#-log">log</a>(x[, base])<br>
- <br>
-Return the logarithm of x to the given base.<br>
-If the base not specified, returns the natural logarithm (base e) of x.</tt></dd></dl>
- <dl><dt><a name="-pow"><strong>pow</strong></a>(...)</dt><dd><tt><a href="#-pow">pow</a>(x, y)<br>
- <br>
-Return x**y (x to the power of y).</tt></dd></dl>
- <dl><dt><a name="-tan"><strong>tan</strong></a>(...)</dt><dd><tt><a href="#-tan">tan</a>(x)<br>
- <br>
-Return the tangent of x (measured in radians).</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>e</strong> = 2.718281828459045<br>
-<strong>pi</strong> = 3.141592653589793</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.TileDataOSM.html b/doc/TileStache.Goodies.Providers.TileDataOSM.html
deleted file mode 100644
index 466df0f..0000000
--- a/doc/TileStache.Goodies.Providers.TileDataOSM.html
+++ /dev/null
@@ -1,117 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.TileDataOSM</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.TileDataOSM</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.TileDataOSM.html#Node">Node</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.TileDataOSM.html#Provider">Provider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.TileDataOSM.html#SaveableResponse">SaveableResponse</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.TileDataOSM.html#Way">Way</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Node">class <strong>Node</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Node-__init__"><strong>__init__</strong></a>(self, id, version, timestamp, uid, user, changeset, lat, lon)</dt></dl>
-
-<dl><dt><a name="Node-tag"><strong>tag</strong></a>(self, k, v)</dt></dl>
-
-<dl><dt><a name="Node-tags"><strong>tags</strong></a>(self)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, database<font color="#909090">=None</font>, username<font color="#909090">=None</font>, password<font color="#909090">=None</font>, hostname<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
- <br>
-This only accepts "xml".</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt><dd><tt>Render a single tile, return a <a href="#SaveableResponse">SaveableResponse</a> instance.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="SaveableResponse">class <strong>SaveableResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for XML response that makes it behave like a PIL.Image object.<br>
- <br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="SaveableResponse-__init__"><strong>__init__</strong></a>(self, nodes, ways)</dt></dl>
-
-<dl><dt><a name="SaveableResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Way">class <strong>Way</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Way-__init__"><strong>__init__</strong></a>(self, id, version, timestamp, uid, user, changeset)</dt></dl>
-
-<dl><dt><a name="Way-node"><strong>node</strong></a>(self, id)</dt></dl>
-
-<dl><dt><a name="Way-nodes"><strong>nodes</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Way-tag"><strong>tag</strong></a>(self, k, v)</dt></dl>
-
-<dl><dt><a name="Way-tags"><strong>tags</strong></a>(self)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-coordinate_bbox"><strong>coordinate_bbox</strong></a>(coord, projection)</dt></dl>
- <dl><dt><a name="-gmtime"><strong>gmtime</strong></a>(...)</dt><dd><tt><a href="#-gmtime">gmtime</a>([seconds]) -> (tm_year, tm_mon, tm_mday, tm_hour, tm_min,<br>
- tm_sec, tm_wday, tm_yday, tm_isdst)<br>
- <br>
-Convert seconds since the Epoch to a time tuple expressing UTC (a.k.a.<br>
-GMT). When 'seconds' is not passed in, convert the current time instead.</tt></dd></dl>
- <dl><dt><a name="-prepare_database"><strong>prepare_database</strong></a>(db, coord, projection)</dt></dl>
- <dl><dt><a name="-strftime"><strong>strftime</strong></a>(...)</dt><dd><tt><a href="#-strftime">strftime</a>(format[, tuple]) -> string<br>
- <br>
-Convert a time tuple to a string according to a format specification.<br>
-See the library reference manual for formatting codes. When the time tuple<br>
-is not present, current time as returned by localtime() is used.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>stderr</strong> = <open file '<stderr>', mode 'w'></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.UtfGridComposite.html b/doc/TileStache.Goodies.Providers.UtfGridComposite.html
deleted file mode 100644
index 4490c72..0000000
--- a/doc/TileStache.Goodies.Providers.UtfGridComposite.html
+++ /dev/null
@@ -1,102 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.UtfGridComposite</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.UtfGridComposite</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Composite <a href="#Provider">Provider</a> for UTFGrid layers<br>
-https://github.com/mapbox/utfgrid-spec/blob/master/1.2/utfgrid.md<br>
- <br>
-Combines multiple UTFGrid layers to create a single result.<br>
-The given layers will be added to the result in the order they are given.<br>
-Therefore the last one will have the highest priority.<br>
- <br>
-Sample configuration:<br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.Providers.UtfGridComposite:<a href="#Provider">Provider</a>",<br>
- "kwargs":<br>
- {<br>
- "stack":<br>
- [<br>
- { "layer_id": "layer1", "src": "my_utf_layer1", "wrapper": "grid" },<br>
- { "layer_id": "layer2", "src": "my_utf_layer2", "wrapper": "grid" }<br>
- ],<br>
- "layer_id": "l",<br>
- "wrapper": "grid"<br>
- }<br>
- }<br>
- <br>
-stack: list of layers (and properties) to composite together<br>
- layer_id: an id attribute that will be added to each json data object for this layer: { "layer_id": "layer1", "name": "blah", "address": "something"}<br>
- src: layer name of the layer to composite<br>
- wrapper: the wrapper definition of this layer if there is one (so we can remove it)<br>
-layer_id: the key for the layer_id attribute that is added to each data object: { "l": "layer1", ...}<br>
-wrapper: wrapper to add to the resulting utfgrid "WRAPPER({...})". Usually "grid"<br>
- <br>
-if layer_id is not set in the layer or the provider config then it will not be set on data objects</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.html">TileStache</a><br>
-</td><td width="25%" valign=top><a href="json.html">json</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.UtfGridComposite.html#Provider">Provider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.UtfGridComposite.html#SaveableResponse">SaveableResponse</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, stack, layer_id<font color="#909090">=None</font>, wrapper<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Provider-addLayer"><strong>addLayer</strong></a>(self, resultGrid, gridKeys, gridData, layerDef, coord)</dt></dl>
-
-<dl><dt><a name="Provider-decodeId"><strong>decodeId</strong></a>(self, id)</dt></dl>
-
-<dl><dt><a name="Provider-encodeId"><strong>encodeId</strong></a>(self, id)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
-This only accepts "json".</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt></dl>
-
-<dl><dt><a name="Provider-writeResult"><strong>writeResult</strong></a>(self, resultGrid, gridKeys, gridData)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="SaveableResponse">class <strong>SaveableResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for JSON response that makes it behave like a PIL.Image object.<br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="SaveableResponse-__init__"><strong>__init__</strong></a>(self, content)</dt></dl>
-
-<dl><dt><a name="SaveableResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.UtfGridCompositeOverlap.html b/doc/TileStache.Goodies.Providers.UtfGridCompositeOverlap.html
deleted file mode 100644
index 43df38b..0000000
--- a/doc/TileStache.Goodies.Providers.UtfGridCompositeOverlap.html
+++ /dev/null
@@ -1,72 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.Providers.UtfGridCompositeOverlap</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.Providers.html"><font color="#ffffff">Providers</font></a>.UtfGridCompositeOverlap</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.html">TileStache</a><br>
-</td><td width="25%" valign=top><a href="json.html">json</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.UtfGridCompositeOverlap.html#Provider">Provider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.Providers.UtfGridCompositeOverlap.html#SaveableResponse">SaveableResponse</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, stack, layer_id<font color="#909090">=None</font>, wrapper<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Provider-addLayer"><strong>addLayer</strong></a>(self, layerDef, coord)</dt></dl>
-
-<dl><dt><a name="Provider-decodeId"><strong>decodeId</strong></a>(self, id)</dt></dl>
-
-<dl><dt><a name="Provider-encodeId"><strong>encodeId</strong></a>(self, id)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
-This only accepts "json".</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt></dl>
-
-<dl><dt><a name="Provider-writeResult"><strong>writeResult</strong></a>(self)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="SaveableResponse">class <strong>SaveableResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for JSON response that makes it behave like a PIL.Image object.<br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="SaveableResponse-__init__"><strong>__init__</strong></a>(self, content)</dt></dl>
-
-<dl><dt><a name="SaveableResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.Providers.html b/doc/TileStache.Goodies.Providers.html
deleted file mode 100644
index 6dc54cd..0000000
--- a/doc/TileStache.Goodies.Providers.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package TileStache.Goodies.Providers</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.Providers</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Additional provider classes go here.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Goodies.Providers.Cascadenik.html">Cascadenik</a><br>
-<a href="TileStache.Goodies.Providers.Composite.html">Composite</a><br>
-<a href="TileStache.Goodies.Providers.GDAL.html">GDAL</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.Providers.Grid.html">Grid</a><br>
-<a href="TileStache.Goodies.Providers.MapnikGrid.html">MapnikGrid</a><br>
-<a href="TileStache.Goodies.Providers.MirrorOSM.html">MirrorOSM</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.Providers.Monkeycache.html">Monkeycache</a><br>
-<a href="TileStache.Goodies.Providers.PostGeoJSON.html">PostGeoJSON</a><br>
-<a href="TileStache.Goodies.Providers.SolrGeoJSON.html">SolrGeoJSON</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.Providers.TileDataOSM.html">TileDataOSM</a><br>
-<a href="TileStache.Goodies.Providers.UtfGridComposite.html">UtfGridComposite</a><br>
-<a href="TileStache.Goodies.Providers.UtfGridCompositeOverlap.html">UtfGridCompositeOverlap</a><br>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.StatusServer.html b/doc/TileStache.Goodies.StatusServer.html
deleted file mode 100644
index 259d785..0000000
--- a/doc/TileStache.Goodies.StatusServer.html
+++ /dev/null
@@ -1,146 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.StatusServer</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.StatusServer</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>StatusServer is a replacement for <a href="TileStache.html#WSGITileServer">WSGITileServer</a> that saves per-process<br>
-events to Redis and displays them in a chronological stream at /status.<br>
- <br>
-The internal behaviors of a running WSGI server can be hard to inspect,<br>
-and StatusServer is designed to output data relevant to tile serving out<br>
-to Redis where it can be gathered and inspected.<br>
- <br>
-Example usage, with gunicorn (<a href="http://gunicorn.org">http://gunicorn.org</a>):<br>
- <br>
- gunicorn --bind localhost:8888 "TileStache.Goodies.StatusServer:<a href="#WSGIServer">WSGIServer</a>('tilestache.cfg')"<br>
- <br>
-Example output, showing vertical alignment based on process ID:<br>
- <br>
- 13235 Attempted cache lock, 2 minutes ago<br>
- 13235 Got cache lock in 0.001 seconds, 2 minutes ago<br>
- 13235 Started /osm/15/5255/12664.png, 2 minutes ago<br>
- 13235 Finished /osm/15/5255/12663.png in 0.724 seconds, 2 minutes ago<br>
- 13233 Got cache lock in 0.001 seconds, 2 minutes ago<br>
- 13233 Attempted cache lock, 2 minutes ago<br>
- 13233 Started /osm/15/5249/12664.png, 2 minutes ago<br>
- 13233 Finished /osm/15/5255/12661.png in 0.776 seconds, 2 minutes ago<br>
- 13234 Got cache lock in 0.001 seconds, 2 minutes ago<br>
- 13234 Attempted cache lock, 2 minutes ago<br>
- 13234 Started /osm/15/5254/12664.png, 2 minutes ago<br>
- 13234 Finished /osm/15/5249/12663.png in 0.466 seconds, 2 minutes ago<br>
- 13235 Attempted cache lock, 2 minutes ago<br>
- 13235 Got cache lock in 0.001 seconds, 2 minutes ago<br>
- 13235 Started /osm/15/5255/12663.png, 2 minutes ago<br>
- 13235 Finished /osm/15/5250/12664.png in 0.502 seconds, 2 minutes ago<br>
- 13233 Got cache lock in 0.001 seconds, 2 minutes ago<br>
- 13233 Attempted cache lock, 2 minutes ago<br>
- 13233 Started /osm/15/5255/12661.png, 2 minutes ago</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.html">TileStache</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.html#WSGITileServer">TileStache.WSGITileServer</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.StatusServer.html#WSGIServer">WSGIServer</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.StatusServer.html#CacheWrap">CacheWrap</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="CacheWrap">class <strong>CacheWrap</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wraps up a TileStache cache object and reports events to Redis.<br>
- <br>
-Implements a cache provider: <a href="http://tilestache.org/doc/#custom-caches">http://tilestache.org/doc/#custom-caches</a>.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="CacheWrap-__init__"><strong>__init__</strong></a>(self, cache, redis_kwargs)</dt></dl>
-
-<dl><dt><a name="CacheWrap-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt></dl>
-
-<dl><dt><a name="CacheWrap-read"><strong>read</strong></a>(self, layer, coord, format)</dt></dl>
-
-<dl><dt><a name="CacheWrap-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt></dl>
-
-<dl><dt><a name="CacheWrap-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt></dl>
-
-<dl><dt><a name="CacheWrap-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="WSGIServer">class <strong>WSGIServer</strong></a>(<a href="TileStache.html#WSGITileServer">TileStache.WSGITileServer</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Create a WSGI application that can handle requests from any server that talks WSGI.<br>
- <br>
-Notable moments in the tile-making process such as time elapsed<br>
-or cache lock events are sent as messages to Redis. Inherits the<br>
-constructor from TileStache WSGI, which just loads a TileStache<br>
-configuration file into self.<strong>config</strong>.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="WSGIServer-__call__"><strong>__call__</strong></a>(self, environ, start_response)</dt></dl>
-
-<dl><dt><a name="WSGIServer-__del__"><strong>__del__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="WSGIServer-__init__"><strong>__init__</strong></a>(self, config, redis_host<font color="#909090">='localhost'</font>, redis_port<font color="#909090">=6379</font>)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-delete_statuses"><strong>delete_statuses</strong></a>(pid, **redis_kwargs)</dt></dl>
- <dl><dt><a name="-get_recent"><strong>get_recent</strong></a>(**redis_kwargs)</dt><dd><tt>Retrieve recent messages from Redis, in reverse chronological order.<br>
- <br>
-Two lists are returned: one a single most-recent status message from<br>
-each process, the other a list of numerous messages from each process.<br>
- <br>
-Each message is a tuple with floating point seconds elapsed, integer<br>
-process ID that created it, and an associated text message such as<br>
-"Got cache lock in 0.001 seconds" or "Started /osm/12/656/1582.png".<br>
- <br>
-Keyword args are passed directly to redis.StrictRedis().</tt></dd></dl>
- <dl><dt><a name="-getpid"><strong>getpid</strong></a>(...)</dt><dd><tt><a href="#-getpid">getpid</a>() -> pid<br>
- <br>
-Return the current process id</tt></dd></dl>
- <dl><dt><a name="-md5"><strong>md5</strong></a> = openssl_md5(...)</dt><dd><tt>Returns a md5 hash object; optionally initialized with a string</tt></dd></dl>
- <dl><dt><a name="-nice_time"><strong>nice_time</strong></a>(time)</dt><dd><tt>Format a time in seconds to a string like "5 minutes".</tt></dd></dl>
- <dl><dt><a name="-pid_indent"><strong>pid_indent</strong></a>(pid)</dt><dd><tt>Get an MD5-based indentation for a process ID.</tt></dd></dl>
- <dl><dt><a name="-status_response"><strong>status_response</strong></a>(**redis_kwargs)</dt><dd><tt>Retrieve recent messages from Redis and</tt></dd></dl>
- <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>() -> floating point number<br>
- <br>
-Return the current time in seconds since the Epoch.<br>
-Fractions of a second may be present if the system clock provides them.</tt></dd></dl>
- <dl><dt><a name="-update_status"><strong>update_status</strong></a>(msg, **redis_kwargs)</dt><dd><tt>Updated Redis with a message, prefix it with the current timestamp.<br>
- <br>
-Keyword args are passed directly to redis.StrictRedis().</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.VecTiles.client.html b/doc/TileStache.Goodies.VecTiles.client.html
deleted file mode 100644
index e76b644..0000000
--- a/doc/TileStache.Goodies.VecTiles.client.html
+++ /dev/null
@@ -1,167 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.VecTiles.client</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.VecTiles.html"><font color="#ffffff">VecTiles</font></a>.client</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt><a href="#Datasource">Datasource</a> for Mapnik that consumes vector tiles in GeoJSON or MVT format.<br>
- <br>
-VecTiles provides Mapnik with a <a href="#Datasource">Datasource</a> that can read remote tiles of vector<br>
-data in spherical mercator projection, providing for rendering of data without<br>
-the use of a local PostGIS database.<br>
- <br>
-Sample usage in Mapnik configuration XML:<br>
- <br>
- <Layer name="test" 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 +no_defs"><br>
- <StyleName>...</StyleName><br>
- <<a href="#Datasource">Datasource</a>><br>
- <Parameter name="type">python</Parameter><br>
- <Parameter name="factory">TileStache.Goodies.VecTiles:<a href="#Datasource">Datasource</a></Parameter><br>
- <Parameter name="template"><a href="http://example.com/{z}/{x}/{y}.mvt</Parameter">http://example.com/{z}/{x}/{y}.mvt</Parameter</a>><br>
- <Parameter name="sort_key">sort_key ascending</Parameter><br>
- </<a href="#Datasource">Datasource</a>><br>
- </Layer><br>
- <br>
-From <a href="http://github.com/mapnik/mapnik/wiki/Python-Plugin">http://github.com/mapnik/mapnik/wiki/Python-Plugin</a>:<br>
- <br>
- The Mapnik Python plugin allows you to write data sources in the Python<br>
- programming language. This is useful if you want to rapidly prototype a<br>
- plugin, perform some custom manipulation on data or if you want to bind<br>
- mapnik to a datasource which is most conveniently accessed through Python.<br>
- <br>
- The plugin may be used from the existing mapnik Python bindings or it can<br>
- embed the Python interpreter directly allowing it to be used from C++, XML<br>
- or even JavaScript.<br>
- <br>
-See also:<br>
- <a href="http://mapnik.org/docs/v2.1.0/api/python/mapnik.PythonDatasource-class.html">http://mapnik.org/docs/v2.1.0/api/python/mapnik.PythonDatasource-class.html</a></tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.geojson.html">TileStache.Goodies.VecTiles.geojson</a><br>
-</td><td width="25%" valign=top><a href="logging.html">logging</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.mvt.html">TileStache.Goodies.VecTiles.mvt</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.VecTiles.client.html#Datasource">Datasource</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Datasource">class <strong>Datasource</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Mapnik datasource to read tiled vector data in GeoJSON or MVT formats.<br>
- <br>
-Sample usage in Mapnik configuration XML:<br>
- <br>
-<Layer name="test" 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 +no_defs"><br>
- <StyleName>...</StyleName><br>
- <<a href="#Datasource">Datasource</a>><br>
- <Parameter name="type">python</Parameter><br>
- <Parameter name="factory">TileStache.Goodies.VecTiles:<a href="#Datasource">Datasource</a></Parameter><br>
- <Parameter name="template"><a href="http://example.com/{z}/{x}/{y}.mvt</Parameter">http://example.com/{z}/{x}/{y}.mvt</Parameter</a>><br>
- <Parameter name="sort_key">sort_key ascending</Parameter><br>
- </<a href="#Datasource">Datasource</a>><br>
-</Layer><br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Datasource-__init__"><strong>__init__</strong></a>(self, template, sort_key<font color="#909090">=None</font>, clipped<font color="#909090">='true'</font>, zoom_data<font color="#909090">='single'</font>)</dt><dd><tt>Make a new <a href="#Datasource">Datasource</a>.<br>
- <br>
-Parameters:<br>
- <br>
- template:<br>
- Required URL template with placeholders for tile zoom, x and y,<br>
- e.g. "<a href="http://example.com/layer/{z}/{x}/{y}.json">http://example.com/layer/{z}/{x}/{y}.json</a>".<br>
- <br>
- sort_key:<br>
- Optional field name to use when sorting features for rendering.<br>
- E.g. "name" or "name ascending" to sort ascending by name,<br>
- "name descending" to sort descending by name.<br>
- <br>
- clipped:<br>
- Optional boolean flag to determine correct behavior for<br>
- duplicate geometries. When tile data is not clipped, <a href="#Datasource-features">features</a>()<br>
- will check geometry uniqueness and throw out duplicates.<br>
- <br>
- Setting clipped to false for actually-clipped geometries has no<br>
- effect but wastes time. Setting clipped to false for unclipped<br>
- geometries will result in possibly wrong-looking output.<br>
- <br>
- Default is "true".<br>
- <br>
- zoom_data:<br>
- Optional keyword specifying single or double zoom data tiles.<br>
- Works especially well with relatively sparse label layers.<br>
- <br>
- When set to "double", tiles will be requested at one zoom level<br>
- out from the map view, e.g. double-sized z13 tiles will be used<br>
- to render a normal z14 map.<br>
- <br>
- Default is "single".</tt></dd></dl>
-
-<dl><dt><a name="Datasource-features"><strong>features</strong></a>(self, query)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary for instance variables (if defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-list_tiles"><strong>list_tiles</strong></a>(query, zoom_adjust)</dt><dd><tt>Return a list of tiles (z, x, y) dicts for a mapnik Query <a href="__builtin__.html#object">object</a>.<br>
- <br>
-Query is assumed to be in spherical mercator projection.<br>
-Zoom_adjust is an integer delta to subtract from the calculated zoom.</tt></dd></dl>
- <dl><dt><a name="-load_features"><strong>load_features</strong></a>(jobs, host, port, path, tiles)</dt><dd><tt>Load data from tiles to features.<br>
- <br>
-Calls <a href="#-load_tile_features">load_tile_features</a>() in a thread pool to speak HTTP.</tt></dd></dl>
- <dl><dt><a name="-load_tile_features"><strong>load_tile_features</strong></a>(lock, host, port, path_fmt, tiles, features)</dt><dd><tt>Load data from tiles to features.<br>
- <br>
-Called from <a href="#-load_features">load_features</a>(), in a thread.<br>
- <br>
-Returns a list of (WKB, property dict) pairs.</tt></dd></dl>
- <dl><dt><a name="-utf8_keys"><strong>utf8_keys</strong></a>(dictionary)</dt><dd><tt>Convert dictionary keys to utf8-encoded strings for Mapnik.<br>
- <br>
-By default, json.load() returns dictionaries with unicode keys<br>
-but Mapnik is ultra-whiny about these and rejects them.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>diameter</strong> = 40075016.68557849<br>
-<strong>meter_zoom</strong> = 17.25619978527<br>
-<strong>pi</strong> = 3.141592653589793</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.VecTiles.geojson.html b/doc/TileStache.Goodies.VecTiles.geojson.html
deleted file mode 100644
index 48fda0d..0000000
--- a/doc/TileStache.Goodies.VecTiles.geojson.html
+++ /dev/null
@@ -1,68 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.VecTiles.geojson</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.VecTiles.html"><font color="#ffffff">VecTiles</font></a>.geojson</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="json.html">json</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-ceil"><strong>ceil</strong></a>(...)</dt><dd><tt><a href="#-ceil">ceil</a>(x)<br>
- <br>
-Return the ceiling of x as a float.<br>
-This is the smallest integral value >= x.</tt></dd></dl>
- <dl><dt><a name="-decode"><strong>decode</strong></a>(file)</dt><dd><tt>Decode a GeoJSON file into a list of (WKB, property dict) features.<br>
- <br>
-Result can be passed directly to mapnik.PythonDatasource.wkb_features().</tt></dd></dl>
- <dl><dt><a name="-encode"><strong>encode</strong></a>(file, features, zoom, is_clipped)</dt><dd><tt>Encode a list of (WKB, property dict) features into a GeoJSON stream.<br>
- <br>
-Also accept three-element tuples as features: (WKB, property dict, id).<br>
- <br>
-Geometries in the features list are assumed to be unprojected lon, lats.<br>
-Floating point precision in the output is truncated to six digits.</tt></dd></dl>
- <dl><dt><a name="-get_tiles"><strong>get_tiles</strong></a>(names, config, coord)</dt><dd><tt>Retrieve a list of named GeoJSON layer tiles from a TileStache config.<br>
- <br>
-Check integrity and compatibility of each, looking at known layers,<br>
-correct JSON mime-types and "FeatureCollection" in the type attributes.</tt></dd></dl>
- <dl><dt><a name="-log"><strong>log</strong></a>(...)</dt><dd><tt><a href="#-log">log</a>(x[, base])<br>
- <br>
-Return the logarithm of x to the given base.<br>
-If the base not specified, returns the natural logarithm (base e) of x.</tt></dd></dl>
- <dl><dt><a name="-mercator"><strong>mercator</strong></a>((x, y))</dt><dd><tt>Project an (x, y) tuple to spherical mercator.</tt></dd></dl>
- <dl><dt><a name="-merge"><strong>merge</strong></a>(file, names, config, coord)</dt><dd><tt>Retrieve a list of GeoJSON tile responses and merge them into one.<br>
- <br>
-<a href="#-get_tiles">get_tiles</a>() retrieves data and performs basic integrity checks.</tt></dd></dl>
- <dl><dt><a name="-tan"><strong>tan</strong></a>(...)</dt><dd><tt><a href="#-tan">tan</a>(x)<br>
- <br>
-Return the tangent of x (measured in radians).</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>charfloat_pat</strong> = <_sre.SRE_Pattern object><br>
-<strong>float_pat</strong> = <_sre.SRE_Pattern object><br>
-<strong>pi</strong> = 3.141592653589793<br>
-<strong>precisions</strong> = [2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 7, 7, 7, ...]<br>
-<strong>zoom</strong> = 22</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.VecTiles.html b/doc/TileStache.Goodies.VecTiles.html
deleted file mode 100644
index c476c78..0000000
--- a/doc/TileStache.Goodies.VecTiles.html
+++ /dev/null
@@ -1,77 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package TileStache.Goodies.VecTiles</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.VecTiles</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>VecTiles implements client and server support for efficient vector tiles.<br>
- <br>
-VecTiles implements a TileStache Provider that returns tiles with contents<br>
-simplified, precision reduced and often clipped. The MVT format in particular<br>
-is designed for use in Mapnik with the VecTiles Datasource, which can read<br>
-binary MVT tiles.<br>
- <br>
-VecTiles generates tiles in two JSON formats, GeoJSON and TopoJSON.<br>
- <br>
-VecTiles also provides Mapnik with a Datasource that can read remote tiles of<br>
-vector data in spherical mercator projection, providing for rendering of data<br>
-without the use of a local PostGIS database.<br>
- <br>
-Sample usage in Mapnik configuration XML:<br>
- <br>
- <Layer name="test" 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 +no_defs"><br>
- <StyleName>...</StyleName><br>
- <Datasource><br>
- <Parameter name="type">python</Parameter><br>
- <Parameter name="factory">TileStache.Goodies.VecTiles:Datasource</Parameter><br>
- <Parameter name="template"><a href="http://example.com/{z}/{x}/{y}.mvt</Parameter">http://example.com/{z}/{x}/{y}.mvt</Parameter</a>><br>
- </Datasource><br>
- </Layer><br>
- <br>
-Sample usage in a TileStache configuration, for a layer with no results at<br>
-zooms 0-9, basic selection of lines with names and highway tags for zoom 10,<br>
-a remote URL containing a query for zoom 11, and a local file for zooms 12+:<br>
- <br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.VecTiles:Provider",<br>
- "kwargs":<br>
- {<br>
- "dbinfo":<br>
- {<br>
- "host": "localhost",<br>
- "user": "gis",<br>
- "password": "gis",<br>
- "database": "gis"<br>
- },<br>
- "queries":<br>
- [<br>
- null, null, null, null, null,<br>
- null, null, null, null, null,<br>
- "SELECT way AS geometry, highway, name FROM planet_osm_line -- zoom 10+ ",<br>
- "<a href="http://example.com/query-z11.pgsql">http://example.com/query-z11.pgsql</a>",<br>
- "query-z12-plus.pgsql"<br>
- ]<br>
- }<br>
- }</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.client.html">client</a><br>
-<a href="TileStache.Goodies.VecTiles.geojson.html">geojson</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.mvt.html">mvt</a><br>
-<a href="TileStache.Goodies.VecTiles.ops.html">ops</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.server.html">server</a><br>
-<a href="TileStache.Goodies.VecTiles.topojson.html">topojson</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.wkb.html">wkb</a><br>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.VecTiles.mvt.html b/doc/TileStache.Goodies.VecTiles.mvt.html
deleted file mode 100644
index 3a82f3c..0000000
--- a/doc/TileStache.Goodies.VecTiles.mvt.html
+++ /dev/null
@@ -1,72 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.VecTiles.mvt</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.VecTiles.html"><font color="#ffffff">VecTiles</font></a>.mvt</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Implementation of MVT (Mapnik Vector Tiles) data format.<br>
- <br>
-Mapnik's PythonDatasource.features() method can return a list of WKB features,<br>
-pairs of WKB format geometry and dictionaries of key-value pairs that are<br>
-rendered by Mapnik directly. PythonDatasource is new in Mapnik as of version<br>
-2.1.0.<br>
- <br>
-More information:<br>
- <a href="http://mapnik.org/docs/v2.1.0/api/python/mapnik.PythonDatasource-class.html">http://mapnik.org/docs/v2.1.0/api/python/mapnik.PythonDatasource-class.html</a><br>
- <br>
-The MVT file format is a simple container for Mapnik-compatible vector tiles<br>
-that minimizes the amount of conversion performed by the renderer, in contrast<br>
-to other file formats such as GeoJSON.<br>
- <br>
-An MVT file starts with 8 bytes.<br>
- <br>
- 4 bytes "\x89MVT"<br>
- uint32 Length of body<br>
- bytes zlib-compressed body<br>
- <br>
-The following body is a zlib-compressed bytestream. When decompressed,<br>
-it starts with four bytes indicating the total feature count.<br>
- <br>
- uint32 Feature count<br>
- bytes Stream of feature data<br>
- <br>
-Each feature has two parts, a raw WKB (well-known binary) representation of<br>
-the geometry in spherical mercator and a JSON blob for feature properties.<br>
- <br>
- uint32 Length of feature WKB<br>
- bytes Raw bytes of WKB<br>
- uint32 Length of properties JSON<br>
- bytes JSON dictionary of feature properties<br>
- <br>
-By default, <a href="#-encode">encode</a>() approximates the floating point precision of WKB geometry<br>
-to 26 bits for a significant compression improvement and no visible impact on<br>
-rendering at zoom 18 and lower.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="json.html">json</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-decode"><strong>decode</strong></a>(file)</dt><dd><tt>Decode an MVT file into a list of (WKB, property dict) features.<br>
- <br>
-Result can be passed directly to mapnik.PythonDatasource.wkb_features().</tt></dd></dl>
- <dl><dt><a name="-encode"><strong>encode</strong></a>(file, features)</dt><dd><tt>Encode a list of (WKB, property dict) features into an MVT stream.<br>
- <br>
-Geometries in the features list are assumed to be in spherical mercator.<br>
-Floating point precision in the output is approximated to 26 bits.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.VecTiles.ops.html b/doc/TileStache.Goodies.VecTiles.ops.html
deleted file mode 100644
index a9636d8..0000000
--- a/doc/TileStache.Goodies.VecTiles.ops.html
+++ /dev/null
@@ -1,69 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.VecTiles.ops</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.VecTiles.html"><font color="#ffffff">VecTiles</font></a>.ops</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Per-coordinate transformation function for shapely geometries.<br>
- <br>
-To be replaced with shapely.ops.transform in Shapely 1.2.18.<br>
- <br>
-See also:<br>
- https://github.com/Toblerity/Shapely/issues/46<br>
- <br>
->>> from shapely.geometry import *<br>
- <br>
->>> coll0 = GeometryCollection()<br>
->>> coll1 = <a href="#-transform">transform</a>(coll0, lambda (x, y): (x+1, y+1))<br>
->>> print coll1 # doctest: +ELLIPSIS<br>
-GEOMETRYCOLLECTION EMPTY<br>
- <br>
->>> point0 = Point(0, 0)<br>
->>> point1 = <a href="#-transform">transform</a>(point0, lambda (x, y): (x+1, y+1))<br>
->>> print point1 # doctest: +ELLIPSIS<br>
-POINT (1.00... 1.00...)<br>
- <br>
->>> mpoint0 = MultiPoint(((0, 0), (1, 1), (2, 2)))<br>
->>> mpoint1 = <a href="#-transform">transform</a>(mpoint0, lambda (x, y): (x+1, y+1))<br>
->>> print mpoint1 # doctest: +ELLIPSIS<br>
-MULTIPOINT (1.00... 1.00..., 2.00... 2.00..., 3.00... 3.00...)<br>
- <br>
->>> line0 = LineString(((0, 0), (1, 1), (2, 2)))<br>
->>> line1 = <a href="#-transform">transform</a>(line0, lambda (x, y): (x+1, y+1))<br>
->>> print line1 # doctest: +ELLIPSIS<br>
-LINESTRING (1.00... 1.00..., 2.00... 2.00..., 3.00... 3.00...)<br>
- <br>
->>> mline0 = MultiLineString((((0, 0), (1, 1), (2, 2)), ((3, 3), (4, 4), (5, 5))))<br>
->>> mline1 = <a href="#-transform">transform</a>(mline0, lambda (x, y): (x+1, y+1))<br>
->>> print mline1 # doctest: +ELLIPSIS<br>
-MULTILINESTRING ((1.00... 1.00..., 2.00... 2.00..., 3.00... 3.00...), (4.00... 4.00..., 5.00... 5.00..., 6.00... 6.00...))<br>
- <br>
->>> poly0 = Polygon(((0, 0), (1, 0), (1, 1), (0, 1), (0, 0)))<br>
->>> poly1 = <a href="#-transform">transform</a>(poly0, lambda (x, y): (x+1, y+1))<br>
->>> print poly1 # doctest: +ELLIPSIS<br>
-POLYGON ((1.00... 1.00..., 2.00... 1.00..., 2.00... 2.00..., 1.00... 2.00..., 1.00... 1.00...))<br>
- <br>
->>> poly0 = Polygon(((0, 0), (3, 0), (3, 3), (0, 3), (0, 0)), [((1, 1), (2, 1), (2, 2), (1, 2), (1, 1))])<br>
->>> poly1 = <a href="#-transform">transform</a>(poly0, lambda (x, y): (x+1, y+1))<br>
->>> print poly1 # doctest: +ELLIPSIS<br>
-POLYGON ((1.00... 1.00..., 4.00... 1.00..., 4.00... 4.00..., 1.00... 4.00..., 1.00... 1.00...), (2.00... 2.00..., 3.00... 2.00..., 3.00... 3.00..., 2.00... 3.00..., 2.00... 2.00...))<br>
- <br>
->>> mpoly0 = MultiPolygon(((((0, 0), (3, 0), (3, 3), (0, 3), (0, 0)), [((1, 1), (2, 1), (2, 2), (1, 2), (1, 1))]), (((10, 10), (13, 10), (13, 13), (10, 13), (10, 10)), [((11, 11), (12, 11), (12, 12), (11, 12), (11, 11))])))<br>
->>> mpoly1 = <a href="#-transform">transform</a>(mpoly0, lambda (x, y): (x+1, y+1))<br>
->>> print mpoly1 # doctest: +ELLIPSIS<br>
-MULTIPOLYGON (((1.00... 1.00..., 4.00... 1.00..., 4.00... 4.00..., 1.00... 4.00..., 1.00... 1.00...), (2.00... 2.00..., 3.00... 2.00..., 3.00... 3.00..., 2.00... 3.00..., 2.00... 2.00...)), ((11.00... 11.00..., 14.00... 11.00..., 14.00... 14.00..., 11.00... 14.00..., 11.00... 11.00...), (12.00... 12.00..., 13.00... 12.00 [...]
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-transform"><strong>transform</strong></a>(shape, func)</dt><dd><tt>Apply a function to every coordinate in a geometry.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.VecTiles.server.html b/doc/TileStache.Goodies.VecTiles.server.html
deleted file mode 100644
index 3e1c7c5..0000000
--- a/doc/TileStache.Goodies.VecTiles.server.html
+++ /dev/null
@@ -1,257 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.VecTiles.server</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.VecTiles.html"><font color="#ffffff">VecTiles</font></a>.server</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt><a href="#Provider">Provider</a> that returns PostGIS vector tiles in GeoJSON or MVT format.<br>
- <br>
-VecTiles is intended for rendering, and returns tiles with contents simplified,<br>
-precision reduced and often clipped. The MVT format in particular is designed<br>
-for use in Mapnik with the VecTiles Datasource, which can read binary MVT tiles.<br>
- <br>
-For a more general implementation, try the Vector provider:<br>
- <a href="http://tilestache.org/doc/#vector-provider">http://tilestache.org/doc/#vector-provider</a></tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.geojson.html">TileStache.Goodies.VecTiles.geojson</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.mvt.html">TileStache.Goodies.VecTiles.mvt</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.topojson.html">TileStache.Goodies.VecTiles.topojson</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Goodies.VecTiles.server.html#Connection">Connection</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.VecTiles.server.html#EmptyResponse">EmptyResponse</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.VecTiles.server.html#MultiProvider">MultiProvider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.VecTiles.server.html#MultiResponse">MultiResponse</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.VecTiles.server.html#Provider">Provider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Goodies.VecTiles.server.html#Response">Response</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Connection">class <strong>Connection</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Context manager for Postgres connections.<br>
- <br>
-See <a href="http://www.python.org/dev/peps/pep-0343/">http://www.python.org/dev/peps/pep-0343/</a><br>
-and <a href="http://effbot.org/zone/python-with-statement.htm">http://effbot.org/zone/python-with-statement.htm</a><br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Connection-__enter__"><strong>__enter__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Connection-__exit__"><strong>__exit__</strong></a>(self, type, value, traceback)</dt></dl>
-
-<dl><dt><a name="Connection-__init__"><strong>__init__</strong></a>(self, dbinfo)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="EmptyResponse">class <strong>EmptyResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Simple empty response renders valid MVT or GeoJSON with no features.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="EmptyResponse-__init__"><strong>__init__</strong></a>(self, bounds)</dt></dl>
-
-<dl><dt><a name="EmptyResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="MultiProvider">class <strong>MultiProvider</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>VecTiles provider to gather PostGIS tiles into a single multi-response.<br>
- <br>
-Returns a <a href="#MultiResponse">MultiResponse</a> object for GeoJSON or TopoJSON requests.<br>
- <br>
-names:<br>
- List of names of vector-generating layers from elsewhere in config.<br>
- <br>
-Sample configuration, for a layer with combined data from water<br>
-and land areas, both assumed to be vector-returning layers:<br>
- <br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.VecTiles:<a href="#MultiProvider">MultiProvider</a>",<br>
- "kwargs":<br>
- {<br>
- "names": ["water-areas", "land-areas"]<br>
- }<br>
- }<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="MultiProvider-__init__"><strong>__init__</strong></a>(self, layer, names)</dt></dl>
-
-<dl><dt><a name="MultiProvider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension, "json" or "topojson" only.</tt></dd></dl>
-
-<dl><dt><a name="MultiProvider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt><dd><tt>Render a single tile, return a <a href="#Response">Response</a> instance.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="MultiResponse">class <strong>MultiResponse</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="MultiResponse-__init__"><strong>__init__</strong></a>(self, config, names, coord)</dt><dd><tt>Create a new response object with TileStache config and layer names.</tt></dd></dl>
-
-<dl><dt><a name="MultiResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>VecTiles provider for PostGIS data sources.<br>
- <br>
-Parameters:<br>
- <br>
- dbinfo:<br>
- Required dictionary of Postgres connection parameters. Should<br>
- include some combination of 'host', 'user', 'password', and 'database'.<br>
- <br>
- queries:<br>
- Required list of Postgres queries, one for each zoom level. The<br>
- last query in the list is repeated for higher zoom levels, and null<br>
- queries indicate an empty response.<br>
- <br>
- Query must use "__geometry__" for a column name, and must be in<br>
- spherical mercator (900913) projection. A query may include an<br>
- "__id__" column, which will be used as a feature ID in GeoJSON<br>
- instead of a dynamically-generated hash of the geometry. A query<br>
- can additionally be a file name or URL, interpreted relative to<br>
- the location of the TileStache config file.<br>
- <br>
- If the query contains the token "!bbox!", it will be replaced with<br>
- a constant bounding box geomtry like this:<br>
- "ST_SetSRID(ST_MakeBox2D(ST_MakePoint(x, y), ST_MakePoint(x, y)), <srid>)"<br>
- <br>
- This behavior is modeled on Mapnik's similar bbox token feature:<br>
- https://github.com/mapnik/mapnik/wiki/PostGIS#bbox-token<br>
- <br>
- clip:<br>
- Optional boolean flag determines whether geometries are clipped to<br>
- tile boundaries or returned in full. Default true: clip geometries.<br>
- <br>
- srid:<br>
- Optional numeric SRID used by PostGIS for spherical mercator.<br>
- Default 900913.<br>
- <br>
- simplify:<br>
- Optional floating point number of pixels to simplify all geometries.<br>
- Useful for creating double resolution (retina) tiles set to 0.5, or<br>
- set to 0.0 to prevent any simplification. Default 1.0.<br>
- <br>
- simplify_until:<br>
- Optional integer specifying a zoom level where no more geometry<br>
- simplification should occur. Default 16.<br>
- <br>
-Sample configuration, for a layer with no results at zooms 0-9, basic<br>
-selection of lines with names and highway tags for zoom 10, a remote<br>
-URL containing a query for zoom 11, and a local file for zooms 12+:<br>
- <br>
- "provider":<br>
- {<br>
- "class": "TileStache.Goodies.VecTiles:<a href="#Provider">Provider</a>",<br>
- "kwargs":<br>
- {<br>
- "dbinfo":<br>
- {<br>
- "host": "localhost",<br>
- "user": "gis",<br>
- "password": "gis",<br>
- "database": "gis"<br>
- },<br>
- "queries":<br>
- [<br>
- null, null, null, null, null,<br>
- null, null, null, null, null,<br>
- "SELECT way AS __geometry__, highway, name FROM planet_osm_line -- zoom 10+ ",<br>
- "<a href="http://example.com/query-z11.pgsql">http://example.com/query-z11.pgsql</a>",<br>
- "query-z12-plus.pgsql"<br>
- ]<br>
- }<br>
- }<br>
- <br>
-The queries field has an alternate dictionary-like syntax which maps<br>
-zoom levels to their associated query. Zoom levels for which there is<br>
-no query may be omitted and are assumed null. This is equivalent to<br>
-the queries defined above:<br>
- <br>
- "queries": {<br>
- "10": "SELECT way AS __geometry__, highway, name FROM planet_osm_line -- zoom 10+ ",<br>
- "11": "<a href="http://example.com/query-z11.pgsql">http://example.com/query-z11.pgsql</a>",<br>
- "12": "query-z12-plus.pgsql"<br>
- }<br>
- <br>
-Note that JSON requires keys to be strings, therefore the zoom levels<br>
-must be enclosed in quotes.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, dbinfo, queries, clip<font color="#909090">=True</font>, srid<font color="#909090">=900913</font>, simplify<font color="#909090">=1.0</font>, simplify_until<font color="#909090">=16</font>)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension, one of "mvt", "json" or "topojson".</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt><dd><tt>Render a single tile, return a <a href="#Response">Response</a> instance.</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Response">class <strong>Response</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Response-__init__"><strong>__init__</strong></a>(self, dbinfo, srid, subquery, columns, bounds, tolerance, zoom, clip)</dt><dd><tt>Create a new response object with Postgres connection info and a query.<br>
- <br>
-bounds argument is a 4-tuple with (xmin, ymin, xmax, ymax).</tt></dd></dl>
-
-<dl><dt><a name="Response-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-build_query"><strong>build_query</strong></a>(srid, subquery, subcolumns, bbox, tolerance, is_geo, is_clipped)</dt><dd><tt>Build and return an PostGIS query.</tt></dd></dl>
- <dl><dt><a name="-connect"><strong>connect</strong></a>(*args, **kwargs)</dt></dl>
- <dl><dt><a name="-query_columns"><strong>query_columns</strong></a>(dbinfo, srid, subquery, bounds)</dt><dd><tt>Get information about the columns returned for a subquery.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>err</strong> = ImportError('No module named psycopg2.extras',)<br>
-<strong>pi</strong> = 3.141592653589793<br>
-<strong>tolerances</strong> = [156543.03392804097, 78271.51696402048, 39135.75848201024, 19567.87924100512, 9783.93962050256, 4891.96981025128, 2445.98490512564, 1222.99245256282, 611.49622628141, 305.748113140705, 152.8740565703525, 76.43702828517625, 38.21851414258813, 19.109257071294063, 9.554628535647032, 4.777314267823516, 2.388657133911758, 1.194328566955879, 0.5971642834779395, 0.29858214173896974]<br>
-<strong>zoom</strong> = 19</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.VecTiles.topojson.html b/doc/TileStache.Goodies.VecTiles.topojson.html
deleted file mode 100644
index 192b475..0000000
--- a/doc/TileStache.Goodies.VecTiles.topojson.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.VecTiles.topojson</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.VecTiles.html"><font color="#ffffff">VecTiles</font></a>.topojson</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="json.html">json</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-decode"><strong>decode</strong></a>(file)</dt><dd><tt>Stub function to decode a TopoJSON file into a list of features.<br>
- <br>
-Not currently implemented, modeled on geojson.<a href="#-decode">decode</a>().</tt></dd></dl>
- <dl><dt><a name="-diff_encode"><strong>diff_encode</strong></a>(line, transform)</dt><dd><tt>Differentially encode a shapely linestring or ring.</tt></dd></dl>
- <dl><dt><a name="-encode"><strong>encode</strong></a>(file, features, bounds, is_clipped)</dt><dd><tt>Encode a list of (WKB, property dict) features into a TopoJSON stream.<br>
- <br>
-Also accept three-element tuples as features: (WKB, property dict, id).<br>
- <br>
-Geometries in the features list are assumed to be unprojected lon, lats.<br>
-Bounds are given in geographic coordinates as (xmin, ymin, xmax, ymax).</tt></dd></dl>
- <dl><dt><a name="-get_tiles"><strong>get_tiles</strong></a>(names, config, coord)</dt><dd><tt>Retrieve a list of named TopoJSON layer tiles from a TileStache config.<br>
- <br>
-Check integrity and compatibility of each, looking at known layers,<br>
-correct JSON mime-types, "Topology" in the type attributes, and<br>
-matching affine transformations.</tt></dd></dl>
- <dl><dt><a name="-get_transform"><strong>get_transform</strong></a>(bounds, size<font color="#909090">=1024</font>)</dt><dd><tt>Return a TopoJSON transform dictionary and a point-transforming function.<br>
- <br>
-Size is the tile size in pixels and sets the implicit output resolution.</tt></dd></dl>
- <dl><dt><a name="-merge"><strong>merge</strong></a>(file, names, config, coord)</dt><dd><tt>Retrieve a list of TopoJSON tile responses and merge them into one.<br>
- <br>
-<a href="#-get_tiles">get_tiles</a>() retrieves data and performs basic integrity checks.</tt></dd></dl>
- <dl><dt><a name="-update_arc_indexes"><strong>update_arc_indexes</strong></a>(geometry, merged_arcs, old_arcs)</dt><dd><tt>Updated geometry arc indexes, and add arcs to merged_arcs along the way.<br>
- <br>
-Arguments are modified in-place, and nothing is returned.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.VecTiles.wkb.html b/doc/TileStache.Goodies.VecTiles.wkb.html
deleted file mode 100644
index 7fe761d..0000000
--- a/doc/TileStache.Goodies.VecTiles.wkb.html
+++ /dev/null
@@ -1,60 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Goodies.VecTiles.wkb</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Goodies.html"><font color="#ffffff">Goodies</font></a>.<a href="TileStache.Goodies.VecTiles.html"><font color="#ffffff">VecTiles</font></a>.wkb</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Shapeless handling of WKB geometries.<br>
- <br>
-Use <a href="#-approximate_wkb">approximate_wkb</a>() to copy an approximate well-known binary representation of<br>
-a geometry. Along the way, reduce precision of double floating point coordinates<br>
-by replacing their three least-significant bytes with nulls. The resulting WKB<br>
-will match the original at up to 26 bits of precision, close enough for<br>
-spherical mercator zoom 18 street scale geography.<br>
- <br>
-Reduced-precision WKB geometries will compress as much as 50% smaller with zlib.<br>
- <br>
-See also:<br>
- <a href="http://edndoc.esri.com/arcsde/9.0/general_topics/wkb_representation.htm">http://edndoc.esri.com/arcsde/9.0/general_topics/wkb_representation.htm</a><br>
- <a href="http://en.wikipedia.org/wiki/Double-precision_floating-point_format">http://en.wikipedia.org/wiki/Double-precision_floating-point_format</a></tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-approx_geometry"><strong>approx_geometry</strong></a>(src, dest)</dt></dl>
- <dl><dt><a name="-approx_line"><strong>approx_line</strong></a>(src, dest, copy_int, approx_point)</dt></dl>
- <dl><dt><a name="-approx_point_big"><strong>approx_point_big</strong></a>(src, dest)</dt><dd><tt>Copy a pair of big-endian doubles between files, truncating significands.</tt></dd></dl>
- <dl><dt><a name="-approx_point_little"><strong>approx_point_little</strong></a>(src, dest)</dt><dd><tt>Copy a pair of little-endian doubles between files, truncating significands.</tt></dd></dl>
- <dl><dt><a name="-approx_polygon"><strong>approx_polygon</strong></a>(src, dest, copy_int, approx_point)</dt></dl>
- <dl><dt><a name="-approximate_wkb"><strong>approximate_wkb</strong></a>(wkb_in)</dt><dd><tt>Return an approximation of the input WKB with lower-precision geometry.</tt></dd></dl>
- <dl><dt><a name="-copy_byte"><strong>copy_byte</strong></a>(src, dest)</dt><dd><tt>Copy an unsigned byte between files, and return it.</tt></dd></dl>
- <dl><dt><a name="-copy_int_big"><strong>copy_int_big</strong></a>(src, dest)</dt><dd><tt>Copy a big-endian unsigned 4-byte int between files, and return it.</tt></dd></dl>
- <dl><dt><a name="-copy_int_little"><strong>copy_int_little</strong></a>(src, dest)</dt><dd><tt>Copy a little-endian unsigned 4-byte int between files, and return it.</tt></dd></dl>
- <dl><dt><a name="-unpack"><strong>unpack</strong></a>(...)</dt><dd><tt>Unpack the string containing packed C structure data, according to fmt.<br>
-Requires len(string) == calcsize(fmt).</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>wkbGeometryCollection</strong> = 7<br>
-<strong>wkbLineString</strong> = 2<br>
-<strong>wkbMultiLineString</strong> = 5<br>
-<strong>wkbMultiPoint</strong> = 4<br>
-<strong>wkbMultiPolygon</strong> = 6<br>
-<strong>wkbMultis</strong> = (4, 5, 6, 7)<br>
-<strong>wkbNDR</strong> = 1<br>
-<strong>wkbPoint</strong> = 1<br>
-<strong>wkbPolygon</strong> = 3<br>
-<strong>wkbXDR</strong> = 0</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Goodies.html b/doc/TileStache.Goodies.html
deleted file mode 100644
index 57cdd10..0000000
--- a/doc/TileStache.Goodies.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package TileStache.Goodies</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Goodies</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Additional extras go here.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Goodies.AreaServer.html">AreaServer</a><br>
-<a href="TileStache.Goodies.Caches.html"><strong>Caches</strong> (package)</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.ExternalConfigServer.html">ExternalConfigServer</a><br>
-<a href="TileStache.Goodies.Proj4Projection.html">Proj4Projection</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.Providers.html"><strong>Providers</strong> (package)</a><br>
-<a href="TileStache.Goodies.StatusServer.html">StatusServer</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.VecTiles.html"><strong>VecTiles</strong> (package)</a><br>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.MBTiles.html b/doc/TileStache.MBTiles.html
deleted file mode 100644
index a789fb2..0000000
--- a/doc/TileStache.MBTiles.html
+++ /dev/null
@@ -1,181 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.MBTiles</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.MBTiles</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Support for MBTiles file format, version 1.1.<br>
- <br>
-MBTiles (<a href="http://mbtiles.org">http://mbtiles.org</a>) is a specification for storing tiled map data in<br>
-SQLite databases for immediate use and for transfer. The files are designed for<br>
-portability of thousands, hundreds of thousands, or even millions of standard<br>
-map tile images in a single file.<br>
- <br>
-This makes it easy to manage and share map tiles.<br>
- <br>
-Read the spec:<br>
- https://github.com/mapbox/mbtiles-spec/blob/master/1.1/spec.md<br>
- <br>
-MBTiles files generated by other applications such as Tilemill or Arc2Earth<br>
-can be used as data sources for the MBTiles <a href="#Provider">Provider</a>.<br>
- <br>
-Example configuration:<br>
- <br>
- {<br>
- "cache": { ... }.<br>
- "layers":<br>
- {<br>
- "roads":<br>
- {<br>
- "provider":<br>
- {<br>
- "name": "mbtiles",<br>
- "tileset": "collection.mbtiles"<br>
- }<br>
- }<br>
- }<br>
- }<br>
- <br>
-MBTiles provider parameters:<br>
- <br>
- tileset:<br>
- Required local file path to MBTiles tileset file, a SQLite 3 database file.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.MBTiles.html#Cache">Cache</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.MBTiles.html#Provider">Provider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.MBTiles.html#TileResponse">TileResponse</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Cache">class <strong>Cache</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt><a href="#Cache">Cache</a> provider for writing to MBTiles files.<br>
- <br>
-This class is not exposed as a normal cache provider for TileStache,<br>
-because MBTiles has restrictions on file formats that aren't quite<br>
-compatible with some of the looser assumptions made by TileStache.<br>
-Instead, this cache provider is provided for use with the script<br>
-tilestache-seed.py, which can be called with --to-mbtiles option<br>
-to write cached tiles to a new tileset.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Cache-__init__"><strong>__init__</strong></a>(self, filename, format, name)</dt></dl>
-
-<dl><dt><a name="Cache-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt></dl>
-
-<dl><dt><a name="Cache-read"><strong>read</strong></a>(self, layer, coord, format)</dt><dd><tt>Return raw tile content from tileset.</tt></dd></dl>
-
-<dl><dt><a name="Cache-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt><dd><tt>Remove a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt><dd><tt>Write raw tile content to tileset.</tt></dd></dl>
-
-<dl><dt><a name="Cache-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>MBTiles provider.<br>
- <br>
-See module documentation for explanation of constructor arguments.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, tileset)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
- <br>
-This only accepts "png" or "jpg" or "json".</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt><dd><tt>Retrieve a single tile, return a <a href="#TileResponse">TileResponse</a> instance.</tt></dd></dl>
-
-<hr>
-Static methods defined here:<br>
-<dl><dt><a name="Provider-prepareKeywordArgs"><strong>prepareKeywordArgs</strong></a>(config_dict)</dt><dd><tt>Convert configured parameters to keyword args for <a href="#Provider-__init__">__init__</a>().</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="TileResponse">class <strong>TileResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for tile response that makes it behave like a PIL.Image object.<br>
- <br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br>
- <br>
-Constructor arguments:<br>
-- format: 'PNG' or 'JPEG'.<br>
-- content: Raw response bytes.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="TileResponse-__init__"><strong>__init__</strong></a>(self, format, content)</dt></dl>
-
-<dl><dt><a name="TileResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-create_tileset"><strong>create_tileset</strong></a>(filename, name, type, version, description, format, bounds<font color="#909090">=None</font>)</dt><dd><tt>Create a tileset 1.1 with the given filename and metadata.<br>
- <br>
-From the specification:<br>
- <br>
-The metadata table is used as a key/value store for settings.<br>
-Five keys are required:<br>
- <br>
- name:<br>
- The plain-english name of the tileset.<br>
- <br>
- type:<br>
- overlay or baselayer<br>
- <br>
- version:<br>
- The version of the tileset, as a plain number.<br>
- <br>
- description:<br>
- A description of the layer as plain text.<br>
- <br>
- format:<br>
- The image file format of the tile data: png or jpg or json<br>
- <br>
-One row in metadata is suggested and, if provided, may enhance performance:<br>
- <br>
- bounds:<br>
- The maximum extent of the rendered map area. Bounds must define<br>
- an area covered by all zoom levels. The bounds are represented in<br>
- WGS:84 - latitude and longitude values, in the OpenLayers Bounds<br>
- format - left, bottom, right, top. Example of the full earth:<br>
- -180.0,-85,180,85.</tt></dd></dl>
- <dl><dt><a name="-delete_tile"><strong>delete_tile</strong></a>(filename, coord)</dt><dd><tt>Delete a tile by coordinate.</tt></dd></dl>
- <dl><dt><a name="-get_tile"><strong>get_tile</strong></a>(filename, coord)</dt><dd><tt>Retrieve the mime-type and raw content of a tile by coordinate.<br>
- <br>
-If the tile does not exist, None is returned for the content.</tt></dd></dl>
- <dl><dt><a name="-list_tiles"><strong>list_tiles</strong></a>(filename)</dt><dd><tt>Get a list of tile coordinates.</tt></dd></dl>
- <dl><dt><a name="-put_tile"><strong>put_tile</strong></a>(filename, coord, content)</dt></dl>
- <dl><dt><a name="-tileset_exists"><strong>tileset_exists</strong></a>(filename)</dt><dd><tt>Return true if the tileset exists and appears to have the right tables.</tt></dd></dl>
- <dl><dt><a name="-tileset_info"><strong>tileset_info</strong></a>(filename)</dt><dd><tt>Return name, type, version, description, format, and bounds for a tileset.<br>
- <br>
-Returns None if tileset does not exist.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Mapnik.html b/doc/TileStache.Mapnik.html
deleted file mode 100644
index d1a859d..0000000
--- a/doc/TileStache.Mapnik.html
+++ /dev/null
@@ -1,213 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Mapnik</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Mapnik</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Mapnik Providers.<br>
- <br>
-<a href="#ImageProvider">ImageProvider</a> is known as "mapnik" in TileStache config, <a href="#GridProvider">GridProvider</a> is<br>
-known as "mapnik grid". Both require Mapnik to be installed; Grid requires<br>
-Mapnik 2.0.0 and above.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="PIL.Image.html">PIL.Image</a><br>
-</td><td width="25%" valign=top><a href="json.html">json</a><br>
-</td><td width="25%" valign=top><a href="logging.html">logging</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Mapnik.html#GridProvider">GridProvider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Mapnik.html#ImageProvider">ImageProvider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Mapnik.html#SaveableResponse">SaveableResponse</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="GridProvider">class <strong>GridProvider</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Built-in UTF Grid provider. Renders JSON raster objects from Mapnik.<br>
- <br>
-This provider is identified by the name "mapnik grid" in the<br>
-Tilestache config, and uses Mapnik 2.0 (and above) to generate<br>
-JSON UTF grid responses.<br>
- <br>
-Sample configuration for a single grid layer:<br>
- <br>
- "provider":<br>
- {<br>
- "name": "mapnik grid",<br>
- "mapfile": "world_merc.xml", <br>
- "fields": ["NAME", "POP2005"]<br>
- }<br>
- <br>
-Sample configuration for multiple overlaid grid layers:<br>
- <br>
- "provider":<br>
- {<br>
- "name": "mapnik grid",<br>
- "mapfile": "world_merc.xml",<br>
- "layers":<br>
- [<br>
- [1, ["NAME"]],<br>
- [0, ["NAME", "POP2005"]],<br>
- [0, null],<br>
- [0, []]<br>
- ]<br>
- }<br>
- <br>
-Arguments:<br>
- <br>
-- mapfile (required)<br>
- Local file path to Mapnik XML file.<br>
- <br>
-- fields (optional)<br>
- Array of field names to return in the response, defaults to all.<br>
- An empty list will return no field names, while a value of null is<br>
- equivalent to all.<br>
- <br>
-- layer_index (optional)<br>
- Which layer from the mapfile to render, defaults to 0 (first layer).<br>
- <br>
-- layers (optional)<br>
- Ordered list of (layer_index, fields) to combine; if provided<br>
- layers overrides both layer_index and fields arguments.<br>
- An empty fields list will return no field names, while a value of null <br>
- is equivalent to all fields.<br>
- <br>
-- scale (optional)<br>
- Scale factor of output raster, defaults to 4 (64x64).<br>
- <br>
-- layer_id_key (optional)<br>
- If set, each item in the 'data' property will have its source mapnik<br>
- layer name added, keyed by this value. Useful for distingushing<br>
- between data items.<br>
- <br>
-Information and examples for UTF Grid:<br>
-- https://github.com/mapbox/utfgrid-spec/blob/master/1.2/utfgrid.md<br>
-- <a href="http://mapbox.github.com/wax/interaction-leaf.html">http://mapbox.github.com/wax/interaction-leaf.html</a><br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="GridProvider-__init__"><strong>__init__</strong></a>(self, layer, mapfile, fields<font color="#909090">=None</font>, layers<font color="#909090">=None</font>, layer_index<font color="#909090">=0</font>, scale<font color="#909090">=4</font>, layer_id_key<font color="#909090">=None</font>)</dt><dd><tt>Initialize Mapnik grid provider with layer and mapfile.<br>
- <br>
-XML mapfile keyword arg comes from TileStache config,<br>
-and is an absolute path by the time it gets here.</tt></dd></dl>
-
-<dl><dt><a name="GridProvider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
- <br>
-This only accepts "json".</tt></dd></dl>
-
-<dl><dt><a name="GridProvider-renderArea"><strong>renderArea</strong></a>(self, width, height, srs, xmin, ymin, xmax, ymax, zoom)</dt></dl>
-
-<hr>
-Static methods defined here:<br>
-<dl><dt><a name="GridProvider-prepareKeywordArgs"><strong>prepareKeywordArgs</strong></a>(config_dict)</dt><dd><tt>Convert configured parameters to keyword args for <a href="#GridProvider-__init__">__init__</a>().</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="ImageProvider">class <strong>ImageProvider</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Built-in Mapnik provider. Renders map images from Mapnik XML files.<br>
- <br>
-This provider is identified by the name "mapnik" in the TileStache config.<br>
- <br>
-Arguments:<br>
- <br>
-- mapfile (required)<br>
- Local file path to Mapnik XML file.<br>
- <br>
-- fonts (optional)<br>
- Local directory path to *.ttf font files.<br>
- <br>
-- "scale factor" (optional)<br>
- Scale multiplier used for Mapnik rendering pipeline. Used for<br>
- supporting retina resolution.<br>
- <br>
- For more information about the scale factor, see: <br>
- https://github.com/mapnik/mapnik/wiki/Scale-factor<br>
- <br>
-More information on Mapnik and Mapnik XML:<br>
-- <a href="http://mapnik.org">http://mapnik.org</a><br>
-- <a href="http://trac.mapnik.org/wiki/XMLGettingStarted">http://trac.mapnik.org/wiki/XMLGettingStarted</a><br>
-- <a href="http://trac.mapnik.org/wiki/XMLConfigReference">http://trac.mapnik.org/wiki/XMLConfigReference</a><br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="ImageProvider-__init__"><strong>__init__</strong></a>(self, layer, mapfile, fonts<font color="#909090">=None</font>, scale_factor<font color="#909090">=None</font>)</dt><dd><tt>Initialize Mapnik provider with layer and mapfile.<br>
- <br>
-XML mapfile keyword arg comes from TileStache config,<br>
-and is an absolute path by the time it gets here.</tt></dd></dl>
-
-<dl><dt><a name="ImageProvider-renderArea"><strong>renderArea</strong></a>(self, width, height, srs, xmin, ymin, xmax, ymax, zoom)</dt></dl>
-
-<hr>
-Static methods defined here:<br>
-<dl><dt><a name="ImageProvider-prepareKeywordArgs"><strong>prepareKeywordArgs</strong></a>(config_dict)</dt><dd><tt>Convert configured parameters to keyword args for <a href="#ImageProvider-__init__">__init__</a>().</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="SaveableResponse">class <strong>SaveableResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for JSON response that makes it behave like a PIL.Image object.<br>
- <br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="SaveableResponse-__init__"><strong>__init__</strong></a>(self, content, scale)</dt></dl>
-
-<dl><dt><a name="SaveableResponse-crop"><strong>crop</strong></a>(self, bbox)</dt><dd><tt>Return a cropped grid response.</tt></dd></dl>
-
-<dl><dt><a name="SaveableResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-allocate_lock"><strong>allocate_lock</strong></a>(...)</dt><dd><tt><a href="#-allocate_lock">allocate_lock</a>() -> lock object<br>
-(allocate() is an obsolete synonym)<br>
- <br>
-Create a new lock object. See help(LockType) for information about locks.</tt></dd></dl>
- <dl><dt><a name="-decode_char"><strong>decode_char</strong></a>(char)</dt></dl>
- <dl><dt><a name="-encode_id"><strong>encode_id</strong></a>(id)</dt></dl>
- <dl><dt><a name="-get_mapnikMap"><strong>get_mapnikMap</strong></a>(mapfile)</dt><dd><tt>Get a new mapnik.Map instance for a mapfile</tt></dd></dl>
- <dl><dt><a name="-merge_grids"><strong>merge_grids</strong></a>(grid1, grid2)</dt><dd><tt>Merge two UTF Grid objects.</tt></dd></dl>
- <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>() -> floating point number<br>
- <br>
-Return the current time in seconds since the Epoch.<br>
-Fractions of a second may be present if the system clock provides them.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>absolute_import</strong> = _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0), 16384)<br>
-<strong>global_mapnik_lock</strong> = <thread.lock object></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Memcache.html b/doc/TileStache.Memcache.html
deleted file mode 100644
index 4e1d10f..0000000
--- a/doc/TileStache.Memcache.html
+++ /dev/null
@@ -1,90 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Memcache</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Memcache</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Caches tiles to Memcache.<br>
- <br>
-Requires python-memcached:<br>
- <a href="http://pypi.python.org/pypi/python-memcached">http://pypi.python.org/pypi/python-memcached</a><br>
- <br>
-Example configuration:<br>
- <br>
- "cache": {<br>
- "name": "Memcache",<br>
- "servers": ["127.0.0.1:11211"],<br>
- "revision": 0,<br>
- "key prefix": "unique-id"<br>
- }<br>
- <br>
-Memcache cache parameters:<br>
- <br>
- servers<br>
- Optional array of servers, list of "{host}:{port}" pairs.<br>
- Defaults to ["127.0.0.1:11211"] if omitted.<br>
- <br>
- revision<br>
- Optional revision number for mass-expiry of cached tiles<br>
- regardless of lifespan. Defaults to 0.<br>
- <br>
- key prefix<br>
- Optional string to prepend to Memcache generated key.<br>
- Useful when running multiple instances of TileStache<br>
- that share the same Memcache instance to avoid key<br>
- collisions. The key prefix will be prepended to the<br>
- key name. Defaults to "".</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Memcache.html#Cache">Cache</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Cache">class <strong>Cache</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Cache-__init__"><strong>__init__</strong></a>(self, servers<font color="#909090">=['127.0.0.1:11211']</font>, revision<font color="#909090">=0</font>, key_prefix<font color="#909090">=''</font>)</dt></dl>
-
-<dl><dt><a name="Cache-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt><dd><tt>Acquire a cache lock for this tile.<br>
- <br>
-Returns nothing, but blocks until the lock has been acquired.</tt></dd></dl>
-
-<dl><dt><a name="Cache-read"><strong>read</strong></a>(self, layer, coord, format)</dt><dd><tt>Read a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt><dd><tt>Remove a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt><dd><tt>Save a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt><dd><tt>Release a cache lock for this tile.</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-tile_key"><strong>tile_key</strong></a>(layer, coord, format, rev, key_prefix)</dt><dd><tt>Return a tile key string.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>absolute_import</strong> = _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0), 16384)</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Pixels.html b/doc/TileStache.Pixels.html
deleted file mode 100644
index 9c56dba..0000000
--- a/doc/TileStache.Pixels.html
+++ /dev/null
@@ -1,76 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Pixels</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Pixels</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Support for 8-bit image palettes in PNG output.<br>
- <br>
-PNG images can be significantly cut down in size by using a color look-up table.<br>
-TileStache layers support Adobe Photoshop's .act file format for PNG output,<br>
-and can be referenced in a layer configuration file like this:<br>
- <br>
- "osm":<br>
- {<br>
- "provider": {"name": "proxy", "provider": "OPENSTREETMAP"},<br>
- "png options": {"palette": "<a href="http://tilestache.org/example-palette-openstreetmap-mapnik.act">http://tilestache.org/example-palette-openstreetmap-mapnik.act</a>"}<br>
- }<br>
- <br>
-The example OSM palette above is a real file with a 32 color (5 bit) selection<br>
-of colors appropriate for use with OpenStreetMap's default Mapnik cartography.<br>
- <br>
-To generate an .act file, convert an existing image in Photoshop to indexed<br>
-color, and access the color table under Image -> Mode -> Color Table. Saving<br>
-the color table results in a usable .act file, internally structured as a<br>
-fixed-size 772-byte table with 256 3-byte RGB triplets, followed by a two-byte<br>
-unsigned int with the number of defined colors (may be less than 256) and a<br>
-finaly two-byte unsigned int with the optional index of a transparent color<br>
-in the lookup table. If the final byte is 0xFFFF, there is no transparency.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="PIL.Image.html">PIL.Image</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-add"><strong>add</strong></a>(...)</dt><dd><tt><a href="#-add">add</a>(a, b) -- Same as a + b.</tt></dd></dl>
- <dl><dt><a name="-apply_palette"><strong>apply_palette</strong></a>(image, palette, t_index)</dt><dd><tt>Apply a palette array to an image, return a new image.</tt></dd></dl>
- <dl><dt><a name="-apply_palette256"><strong>apply_palette256</strong></a>(image)</dt><dd><tt>Get PIL to generate and apply an optimum 256 color palette to the given image and return it</tt></dd></dl>
- <dl><dt><a name="-ceil"><strong>ceil</strong></a>(...)</dt><dd><tt><a href="#-ceil">ceil</a>(x)<br>
- <br>
-Return the ceiling of x as a float.<br>
-This is the smallest integral value >= x.</tt></dd></dl>
- <dl><dt><a name="-load_palette"><strong>load_palette</strong></a>(file_href)</dt><dd><tt>Load colors from a Photoshop .act file, return palette info.<br>
- <br>
-Return tuple is an array of [ (r, g, b), (r, g, b), ... ],<br>
-bit depth of the palette, and a numeric transparency index<br>
-or None if not defined.</tt></dd></dl>
- <dl><dt><a name="-log"><strong>log</strong></a>(...)</dt><dd><tt><a href="#-log">log</a>(x[, base])<br>
- <br>
-Return the logarithm of x to the given base.<br>
-If the base not specified, returns the natural logarithm (base e) of x.</tt></dd></dl>
- <dl><dt><a name="-pack"><strong>pack</strong></a>(...)</dt><dd><tt>Return string containing values v1, v2, ... packed according to fmt.</tt></dd></dl>
- <dl><dt><a name="-palette_color"><strong>palette_color</strong></a>(r, g, b, palette, t_index)</dt><dd><tt>Return best palette match index.<br>
- <br>
-Find the closest color in the palette based on dumb euclidian distance,<br>
-assign its index in the palette to a mapping from 24-bit color tuples.</tt></dd></dl>
- <dl><dt><a name="-sqrt"><strong>sqrt</strong></a>(...)</dt><dd><tt><a href="#-sqrt">sqrt</a>(x)<br>
- <br>
-Return the square root of x.</tt></dd></dl>
- <dl><dt><a name="-unpack"><strong>unpack</strong></a>(...)</dt><dd><tt>Unpack the string containing packed C structure data, according to fmt.<br>
-Requires len(string) == calcsize(fmt).</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Providers.html b/doc/TileStache.Providers.html
deleted file mode 100644
index 7e637eb..0000000
--- a/doc/TileStache.Providers.html
+++ /dev/null
@@ -1,224 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Providers</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Providers</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>The provider bits of TileStache.<br>
- <br>
-A Provider is the part of TileStache that actually renders imagery. A few default<br>
-providers are found here, but it's possible to define your own and pull them into<br>
-TileStache dynamically by class name.<br>
- <br>
-Built-in providers:<br>
-- mapnik (Mapnik.ImageProvider)<br>
-- proxy (<a href="#Proxy">Proxy</a>)<br>
-- vector (TileStache.Vector.Provider)<br>
-- url template (<a href="#UrlTemplate">UrlTemplate</a>)<br>
-- mbtiles (TileStache.MBTiles.Provider)<br>
-- mapnik grid (Mapnik.GridProvider)<br>
- <br>
-Example built-in provider, for JSON configuration file:<br>
- <br>
- "layer-name": {<br>
- "provider": {"name": "mapnik", "mapfile": "style.xml"},<br>
- ...<br>
- }<br>
- <br>
-Example external provider, for JSON configuration file:<br>
- <br>
- "layer-name": {<br>
- "provider": {"class": "Module:Classname", "kwargs": {"frob": "yes"}},<br>
- ...<br>
- }<br>
- <br>
-- The "class" value is split up into module and classname, and dynamically<br>
- included. If this doesn't work for some reason, TileStache will fail loudly<br>
- to let you know.<br>
-- The "kwargs" value is fed to the class constructor as a dictionary of keyword<br>
- args. If your defined class doesn't accept any of these keyword arguments,<br>
- TileStache will throw an exception.<br>
- <br>
-A provider must offer one of two methods for rendering map areas.<br>
- <br>
-The renderTile() method draws a single tile at a time, and has these arguments:<br>
- <br>
-- width, height: in pixels<br>
-- srs: projection as Proj4 string.<br>
- "+proj=longlat +ellps=WGS84 +datum=WGS84" is an example, <br>
- see <a href="http://spatialreference.org">http://spatialreference.org</a> for more.<br>
-- coord: Coordinate object representing a single tile.<br>
- <br>
-The renderArea() method draws a variably-sized area, and is used when drawing<br>
-metatiles. It has these arguments:<br>
- <br>
-- width, height: in pixels<br>
-- srs: projection as Proj4 string.<br>
- "+proj=longlat +ellps=WGS84 +datum=WGS84" is an example, <br>
- see <a href="http://spatialreference.org">http://spatialreference.org</a> for more.<br>
-- xmin, ymin, xmax, ymax: coordinates of bounding box in projected coordinates.<br>
-- zoom: zoom level of final map. Technically this can be derived from the other<br>
- arguments, but that's a hassle so we'll pass it in explicitly.<br>
- <br>
-A provider may offer a method for custom response type, getTypeByExtension().<br>
-This method accepts a single argument, a filename extension string (e.g. "png",<br>
-"json", etc.) and returns a tuple with twon strings: a mime-type and a format.<br>
-Note that for image and non-image tiles alike, renderArea() and renderTile()<br>
-methods on a provider class must return a object with a save() method that<br>
-can accept a file-like object and a format name, e.g. this should word:<br>
- <br>
- provder.renderArea(...).save(fp, "TEXT")<br>
- <br>
-... if "TEXT" is a valid response format according to getTypeByExtension().<br>
- <br>
-Non-image providers and metatiles do not mix.<br>
- <br>
-For an example of a non-image provider, see TileStache.Vector.Provider.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Geography.html">TileStache.Geography</a><br>
-<a href="PIL.Image.html">PIL.Image</a><br>
-</td><td width="25%" valign=top><a href="ModestMaps.html">ModestMaps</a><br>
-<a href="TileStache.Vector.html">TileStache.Vector</a><br>
-</td><td width="25%" valign=top><a href="logging.html">logging</a><br>
-<a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="urllib.html">urllib</a><br>
-<a href="urllib2.html">urllib2</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Providers.html#Proxy">Proxy</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Providers.html#UrlTemplate">UrlTemplate</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Providers.html#Verbatim">Verbatim</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Proxy">class <strong>Proxy</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt><a href="#Proxy">Proxy</a> provider, to pass through and cache tiles from other places.<br>
- <br>
-This provider is identified by the name "proxy" in the TileStache config.<br>
- <br>
-Additional arguments:<br>
- <br>
-- url (optional)<br>
- URL template for remote tiles, for example:<br>
- "<a href="http://tile.openstreetmap.org/{Z}/{X}/{Y}.png">http://tile.openstreetmap.org/{Z}/{X}/{Y}.png</a>"<br>
-- provider (optional)<br>
- Provider name string from Modest Maps built-ins.<br>
- See ModestMaps.builtinProviders.keys() for a list.<br>
- Example: "OPENSTREETMAP".<br>
-- timeout (optional)<br>
- Defines a timeout in seconds for the request.<br>
- If not defined, the global default timeout setting will be used.<br>
- <br>
- <br>
-Either url or provider is required. When both are present, url wins.<br>
- <br>
-Example configuration:<br>
- <br>
-{<br>
- "name": "proxy",<br>
- "url": "<a href="http://tile.openstreetmap.org/{Z}/{X}/{Y}.png">http://tile.openstreetmap.org/{Z}/{X}/{Y}.png</a>"<br>
-}<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Proxy-__init__"><strong>__init__</strong></a>(self, layer, url<font color="#909090">=None</font>, provider_name<font color="#909090">=None</font>, timeout<font color="#909090">=None</font>)</dt><dd><tt>Initialize <a href="#Proxy">Proxy</a> provider with layer and url.</tt></dd></dl>
-
-<dl><dt><a name="Proxy-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt></dl>
-
-<hr>
-Static methods defined here:<br>
-<dl><dt><a name="Proxy-prepareKeywordArgs"><strong>prepareKeywordArgs</strong></a>(config_dict)</dt><dd><tt>Convert configured parameters to keyword args for <a href="#Proxy-__init__">__init__</a>().</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="UrlTemplate">class <strong>UrlTemplate</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Built-in URL Template provider. Proxies map images from WMS servers.<br>
- <br>
-This provider is identified by the name "url template" in the TileStache config.<br>
- <br>
-Additional arguments:<br>
- <br>
-- template (required)<br>
- String with substitutions suitable for use in string.Template.<br>
- <br>
-- referer (optional)<br>
- String to use in the "Referer" header when making HTTP requests.<br>
- <br>
-- source projection (optional)<br>
- Projection to transform coordinates into before making request<br>
-- timeout (optional)<br>
- Defines a timeout in seconds for the request.<br>
- If not defined, the global default timeout setting will be used.<br>
- <br>
-More on string substitutions:<br>
-- <a href="http://docs.python.org/library/string.html#template-strings">http://docs.python.org/library/string.html#template-strings</a><br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="UrlTemplate-__init__"><strong>__init__</strong></a>(self, layer, template, referer<font color="#909090">=None</font>, source_projection<font color="#909090">=None</font>, timeout<font color="#909090">=None</font>)</dt><dd><tt>Initialize a <a href="#UrlTemplate">UrlTemplate</a> provider with layer and template string.<br>
- <br>
-<a href="http://docs.python.org/library/string.html#template-strings">http://docs.python.org/library/string.html#template-strings</a></tt></dd></dl>
-
-<dl><dt><a name="UrlTemplate-renderArea"><strong>renderArea</strong></a>(self, width, height, srs, xmin, ymin, xmax, ymax, zoom)</dt><dd><tt>Return an image for an area.<br>
- <br>
-Each argument (width, height, etc.) is substituted into the template.</tt></dd></dl>
-
-<hr>
-Static methods defined here:<br>
-<dl><dt><a name="UrlTemplate-prepareKeywordArgs"><strong>prepareKeywordArgs</strong></a>(config_dict)</dt><dd><tt>Convert configured parameters to keyword args for <a href="#UrlTemplate-__init__">__init__</a>().</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Verbatim">class <strong>Verbatim</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper for PIL.Image that saves raw input bytes if modes and formats match.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Verbatim-__init__"><strong>__init__</strong></a>(self, bytes)</dt></dl>
-
-<dl><dt><a name="Verbatim-convert"><strong>convert</strong></a>(self, mode)</dt></dl>
-
-<dl><dt><a name="Verbatim-crop"><strong>crop</strong></a>(self, bbox)</dt></dl>
-
-<dl><dt><a name="Verbatim-image"><strong>image</strong></a>(self)</dt><dd><tt>Return a guaranteed instance of PIL.Image.</tt></dd></dl>
-
-<dl><dt><a name="Verbatim-save"><strong>save</strong></a>(self, output, format)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-getProviderByName"><strong>getProviderByName</strong></a>(name)</dt><dd><tt>Retrieve a provider object by name.<br>
- <br>
-Raise an exception if the name doesn't work out.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Redis.html b/doc/TileStache.Redis.html
deleted file mode 100644
index e4cc61c..0000000
--- a/doc/TileStache.Redis.html
+++ /dev/null
@@ -1,105 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Redis</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Redis</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Caches tiles to Redis<br>
- <br>
-Requires redis-py and redis-server<br>
- https://pypi.python.org/pypi/redis/<br>
- <a href="http://redis.io/">http://redis.io/</a><br>
- <br>
- sudo apt-get install redis-server<br>
- pip install redis<br>
- <br>
- <br>
-Example configuration:<br>
- <br>
- "cache": {<br>
- "name": "Redis",<br>
- "host": "localhost",<br>
- "port": 6379,<br>
- "db": 0,<br>
- "key prefix": "unique-id"<br>
- }<br>
- <br>
-Redis cache parameters:<br>
- <br>
- host<br>
- Defaults to "localhost" if omitted.<br>
- <br>
- port<br>
- Integer; Defaults to 6379 if omitted.<br>
- <br>
- db<br>
- Integer; Redis database number, defaults to 0 if omitted.<br>
- <br>
- key prefix<br>
- Optional string to prepend to generated key.<br>
- Useful when running multiple instances of TileStache<br>
- that share the same Redis database to avoid key<br>
- collisions (though the prefered solution is to use a different<br>
- db number). The key prefix will be prepended to the<br>
- key name. Defaults to "".</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="redis.html">redis</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Redis.html#Cache">Cache</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Cache">class <strong>Cache</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Cache-__init__"><strong>__init__</strong></a>(self, host<font color="#909090">='localhost'</font>, port<font color="#909090">=6379</font>, db<font color="#909090">=0</font>, key_prefix<font color="#909090">=''</font>)</dt></dl>
-
-<dl><dt><a name="Cache-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt><dd><tt>Acquire a cache lock for this tile.<br>
-Returns nothing, but blocks until the lock has been acquired.</tt></dd></dl>
-
-<dl><dt><a name="Cache-read"><strong>read</strong></a>(self, layer, coord, format)</dt><dd><tt>Read a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt><dd><tt>Remove a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt><dd><tt>Save a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt><dd><tt>Release a cache lock for this tile.</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-tile_key"><strong>tile_key</strong></a>(layer, coord, format, key_prefix)</dt><dd><tt>Return a tile key string.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>absolute_import</strong> = _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0), 16384)</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.S3.html b/doc/TileStache.S3.html
deleted file mode 100644
index aae6e87..0000000
--- a/doc/TileStache.S3.html
+++ /dev/null
@@ -1,109 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.S3</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.S3</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Caches tiles to Amazon S3.<br>
- <br>
-Requires boto (2.0+):<br>
- <a href="http://pypi.python.org/pypi/boto">http://pypi.python.org/pypi/boto</a><br>
- <br>
-Example configuration:<br>
- <br>
- "cache": {<br>
- "name": "S3",<br>
- "bucket": "<bucket name>",<br>
- "access": "<access key>",<br>
- "secret": "<secret key>"<br>
- }<br>
- <br>
-S3 cache parameters:<br>
- <br>
- bucket<br>
- Required bucket name for S3. If it doesn't exist, it will be created.<br>
- <br>
- access<br>
- Optional access key ID for your S3 account.<br>
- <br>
- secret<br>
- Optional secret access key for your S3 account.<br>
- <br>
- policy<br>
- Optional S3 ACL policy for uploaded tiles. Default is 'public-read'.<br>
- <br>
- use_locks<br>
- Optional boolean flag for whether to use the locking feature on S3.<br>
- True by default. A good reason to set this to false would be the<br>
- additional price and time required for each lock set in S3.<br>
- <br>
- path<br>
- Optional path under bucket to use as the cache dir. ex. 'cache' will <br>
- put tiles under <bucket>/cache/<br>
- <br>
- reduced_redundancy<br>
- If set to true, use S3's Reduced Redundancy Storage feature. Storage is<br>
- cheaper but has lower redundancy on Amazon's servers. Defaults to false.<br>
- <br>
-Access and secret keys are under "Security Credentials" at your AWS account page:<br>
- <a href="http://aws.amazon.com/account/">http://aws.amazon.com/account/</a><br>
- <br>
-When access or secret are not provided, the environment variables<br>
-AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY will be used<br>
- <a href="http://docs.pythonboto.org/en/latest/s3_tut.html#creating-a-connection">http://docs.pythonboto.org/en/latest/s3_tut.html#creating-a-connection</a></tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.S3.html#Cache">Cache</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Cache">class <strong>Cache</strong></a></font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Cache-__init__"><strong>__init__</strong></a>(self, bucket, access<font color="#909090">=None</font>, secret<font color="#909090">=None</font>, use_locks<font color="#909090">=True</font>, path<font color="#909090">=''</font>, reduced_redundancy<font color="#909090">=False</font>, policy<font color="#909090">='public-read'</font>)</dt></dl>
-
-<dl><dt><a name="Cache-lock"><strong>lock</strong></a>(self, layer, coord, format)</dt><dd><tt>Acquire a cache lock for this tile.<br>
- <br>
-Returns nothing, but blocks until the lock has been acquired.<br>
-Does nothing and returns immediately if `use_locks` is false.</tt></dd></dl>
-
-<dl><dt><a name="Cache-read"><strong>read</strong></a>(self, layer, coord, format)</dt><dd><tt>Read a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-remove"><strong>remove</strong></a>(self, layer, coord, format)</dt><dd><tt>Remove a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-save"><strong>save</strong></a>(self, body, layer, coord, format)</dt><dd><tt>Save a cached tile.</tt></dd></dl>
-
-<dl><dt><a name="Cache-unlock"><strong>unlock</strong></a>(self, layer, coord, format)</dt><dd><tt>Release a cache lock for this tile.</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-strptime"><strong>strptime</strong></a>(...)</dt><dd><tt><a href="#-strptime">strptime</a>(string, format) -> struct_time<br>
- <br>
-Parse a string to a time tuple according to a format specification.<br>
-See the library reference manual for formatting codes (same as strftime()).</tt></dd></dl>
- <dl><dt><a name="-tile_key"><strong>tile_key</strong></a>(layer, coord, format, path<font color="#909090">=''</font>)</dt><dd><tt>Return a tile key string.</tt></dd></dl>
- <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>() -> floating point number<br>
- <br>
-Return the current time in seconds since the Epoch.<br>
-Fractions of a second may be present if the system clock provides them.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Sandwich.html b/doc/TileStache.Sandwich.html
deleted file mode 100644
index 64150fd..0000000
--- a/doc/TileStache.Sandwich.html
+++ /dev/null
@@ -1,201 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Sandwich</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Sandwich</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Layered, composite rendering for TileStache.<br>
- <br>
-The Sandwich <a href="#Provider">Provider</a> supplies a Photoshop-like rendering pipeline, making it<br>
-possible to use the output of other configured tile layers as layers or masks<br>
-to create a combined output. Sandwich is modeled on Lars Ahlzen's TopOSM.<br>
- <br>
-The external "Blit" library is required by Sandwich, and can be installed<br>
-via Pip, easy_install, or directly from Github:<br>
- <br>
- https://github.com/migurski/Blit<br>
- <br>
-The "stack" configuration parameter describes a layer or stack of layers that<br>
-can be combined to create output. A simple stack that merely outputs a single<br>
-color orange tile looks like this:<br>
- <br>
- {"color" "#ff9900"}<br>
- <br>
-Other layers in the current TileStache configuration can be reference by name,<br>
-as in this example stack that simply echoes another layer:<br>
- <br>
- {"src": "layer-name"}<br>
- <br>
-Bitmap images can also be referenced by local filename or URL, and will be<br>
-tiled seamlessly, assuming 256x256 parent tiles:<br>
- <br>
- {"src": "image.png"}<br>
- {"src": "<a href="http://example.com/image.png">http://example.com/image.png</a>"}<br>
- <br>
-Layers can be limited to appear at certain zoom levels, given either as a range<br>
-or as a single number:<br>
- <br>
- {"src": "layer-name", "zoom": "12"}<br>
- {"src": "layer-name", "zoom": "12-18"}<br>
- <br>
-Layers can also be used as masks, as in this example that uses one layer<br>
-to mask another layer:<br>
- <br>
- {"mask": "layer-name", "src": "other-layer"}<br>
- <br>
-Many combinations of "src", "mask", and "color" can be used together, but it's<br>
-an error to provide all three.<br>
- <br>
-Layers can be combined through the use of opacity and blend modes. Opacity is<br>
-specified as a value from 0.0-1.0, and blend mode is specified as a string.<br>
-This example layer is blended using the "hard light" mode at 50% opacity:<br>
- <br>
- {"src": "hillshading", "mode": "hard light", "opacity": 0.5}<br>
- <br>
-Currently-supported blend modes include "screen", "add", "multiply", "subtract",<br>
-"linear light", and "hard light".<br>
- <br>
-Layers can also be affected by adjustments. Adjustments are specified as an<br>
-array of names and parameters. This example layer has been slightly darkened<br>
-using the "curves" adjustment, moving the input value of 181 (light gray)<br>
-to 50% gray while leaving black and white alone:<br>
- <br>
- {"src": "hillshading", "adjustments": [ ["curves", [0, 181, 255]] ]}<br>
- <br>
-Available adjustments:<br>
- "threshold" - Blit.adjustments.threshold()<br>
- "curves" - Blit.adjustments.curves()<br>
- "curves2" - Blit.adjustments.curves2()<br>
- <br>
-See detailed information about adjustments in Blit documentation:<br>
- <br>
- https://github.com/migurski/Blit#readme<br>
- <br>
-Finally, the stacking feature allows layers to combined in more complex ways.<br>
-This example stack combines a background color and foreground layer:<br>
- <br>
- [<br>
- {"color": "#ff9900"},<br>
- {"src": "layer-name"}<br>
- ]<br>
- <br>
-A complete example configuration might look like this:<br>
- <br>
- {<br>
- "cache":<br>
- {<br>
- "name": "Test"<br>
- },<br>
- "layers": <br>
- {<br>
- "base":<br>
- {<br>
- "provider": {"name": "mapnik", "mapfile": "mapnik-base.xml"}<br>
- },<br>
- "halos":<br>
- {<br>
- "provider": {"name": "mapnik", "mapfile": "mapnik-halos.xml"},<br>
- "metatile": {"buffer": 128}<br>
- },<br>
- "outlines":<br>
- {<br>
- "provider": {"name": "mapnik", "mapfile": "mapnik-outlines.xml"},<br>
- "metatile": {"buffer": 16}<br>
- },<br>
- "streets":<br>
- {<br>
- "provider": {"name": "mapnik", "mapfile": "mapnik-streets.xml"},<br>
- "metatile": {"buffer": 128}<br>
- },<br>
- "sandwiches":<br>
- {<br>
- "provider":<br>
- {<br>
- "name": "Sandwich",<br>
- "stack":<br>
- [<br>
- {"src": "base"},<br>
- {"src": "outlines", "mask": "halos"},<br>
- {"src": "streets"}<br>
- ]<br>
- }<br>
- }<br>
- }<br>
- }</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Core.html">TileStache.Core</a><br>
-</td><td width="25%" valign=top><a href="PIL.Image.html">PIL.Image</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Sandwich.html#Provider">Provider</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Sandwich <a href="#Provider">Provider</a>.<br>
- <br>
-Stack argument is a list of layer dictionaries described in module docs.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, stack)</dt></dl>
-
-<dl><dt><a name="Provider-draw_stack"><strong>draw_stack</strong></a>(self, coord, tiles)</dt><dd><tt>Render this image stack.<br>
- <br>
-Given a coordinate, return an output image with the results of all the<br>
-layers in this stack pasted on in turn.<br>
- <br>
-Final argument is a dictionary used to temporarily cache results<br>
-of layers retrieved from <a href="#-layer_bitmap">layer_bitmap</a>(), to speed things up in case<br>
-of repeatedly-used identical images.</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt></dl>
-
-<hr>
-Static methods defined here:<br>
-<dl><dt><a name="Provider-prepareKeywordArgs"><strong>prepareKeywordArgs</strong></a>(config_dict)</dt><dd><tt>Convert configured parameters to keyword args for <a href="#Provider-__init__">__init__</a>().</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-in_zoom"><strong>in_zoom</strong></a>(coord, range)</dt><dd><tt>Return True if the coordinate zoom is within the textual range.<br>
- <br>
-Range might look like "1-10" or just "5".</tt></dd></dl>
- <dl><dt><a name="-layer_bitmap"><strong>layer_bitmap</strong></a>(layer, coord)</dt><dd><tt>Return Blit.Bitmap representation of tile from a given layer.<br>
- <br>
-Uses TileStache.getTile(), so caches are read and written as normal.</tt></dd></dl>
- <dl><dt><a name="-local_bitmap"><strong>local_bitmap</strong></a>(source, config, coord, dim)</dt><dd><tt>Return Blit.Bitmap representation of a raw image.</tt></dd></dl>
- <dl><dt><a name="-make_color"><strong>make_color</strong></a>(color)</dt><dd><tt>Convert colors expressed as HTML-style RGB(A) strings to Blit.Color.<br>
- <br>
-Examples:<br>
- white: "#ffffff", "#fff", "#ffff", "#ffffffff"<br>
- black: "#000000", "#000", "#000f", "#000000ff"<br>
- null: "#0000", "#00000000"<br>
- orange: "#f90", "#ff9900", "#ff9900ff"<br>
- transparent orange: "#f908", "#ff990088"</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Vector.Arc.html b/doc/TileStache.Vector.Arc.html
deleted file mode 100644
index 7627ec6..0000000
--- a/doc/TileStache.Vector.Arc.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module TileStache.Vector.Arc</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.<a href="TileStache.Vector.html"><font color="#ffffff">Vector</font></a>.Arc</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>Arc-specific Vector provider helpers.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-add"><strong>add</strong></a>(...)</dt><dd><tt><a href="#-add">add</a>(a, b) -- Same as a + b.</tt></dd></dl>
- <dl><dt><a name="-reserialize_to_arc"><strong>reserialize_to_arc</strong></a>(content, point_objects)</dt><dd><tt>Convert from "geo" (GeoJSON) to ESRI's GeoServices REST serialization.<br>
- <br>
-Second argument is a boolean flag for whether to use the class<br>
-_amfGeometryMapPoint for points in ring and path arrays, or tuples.<br>
-The formal class is needed for AMF responses, plain tuples otherwise.<br>
- <br>
-Much of this cribbed from sample server queries and page 191+ of:<br>
- <a href="http://www.esri.com/library/whitepapers/pdfs/geoservices-rest-spec.pdf">http://www.esri.com/library/whitepapers/pdfs/geoservices-rest-spec.pdf</a></tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>geometry_types</strong> = {'LineString': 'esriGeometryPolyline', 'MultiLineString': 'esriGeometryPolyline', 'MultiPoint': 'esriGeometryMultipoint', 'MultiPolygon': 'esriGeometryPolygon', 'Point': 'esriGeometryPoint', 'Polygon': 'esriGeometryPolygon'}<br>
-<strong>pyamf_classes</strong> = {<class 'TileStache.Vector.Arc._amfFeatureSet'>: 'com.esri.ags.tasks.FeatureSet', <class 'TileStache.Vector.Arc._amfSpatialReference'>: 'com.esri.ags.SpatialReference', <class 'TileStache.Vector.Arc._amfFeature'>: 'com.esri.ags.Feature', <class 'TileStache.Vector.Arc._amfGeometryMapPoint'>: 'com.esri.ags.geometry.MapPoint', <class 'TileStache.Vector.Arc._amfGeometryPolyline'>: 'com.esri.ags.geometry.Polyline', <class 'Tile [...]
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.Vector.html b/doc/TileStache.Vector.html
deleted file mode 100644
index 0b9929d..0000000
--- a/doc/TileStache.Vector.html
+++ /dev/null
@@ -1,236 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package TileStache.Vector</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="TileStache.html"><font color="#ffffff">TileStache</font></a>.Vector</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt><a href="#Provider">Provider</a> that returns vector representation of features in a data source.<br>
- <br>
-This is a provider that does not return an image, but rather queries<br>
-a data source for raw features and replies with a vector representation<br>
-such as GeoJSON. For example, it's possible to retrieve data for<br>
-locations of OpenStreetMap points of interest or street centerlines<br>
-contained within a tile's boundary.<br>
- <br>
-Many Polymaps (<a href="http://polymaps.org">http://polymaps.org</a>) examples use GeoJSON vector data tiles,<br>
-which can be effectively created using this provider.<br>
- <br>
-Vector functionality is provided by OGR (<a href="http://www.gdal.org/ogr/">http://www.gdal.org/ogr/</a>).<br>
-Thank you, Frank Warmerdam.<br>
- <br>
-Currently two serializations and three encodings are supported for a total<br>
-of six possible kinds of output with these tile name extensions:<br>
- <br>
- GeoJSON (.geojson):<br>
- See <a href="http://geojson.org/geojson-spec.html">http://geojson.org/geojson-spec.html</a><br>
- <br>
- Arc GeoServices JSON (.arcjson):<br>
- See <a href="http://www.esri.com/library/whitepapers/pdfs/geoservices-rest-spec.pdf">http://www.esri.com/library/whitepapers/pdfs/geoservices-rest-spec.pdf</a><br>
- <br>
- GeoBSON (.geobson) and Arc GeoServices BSON (.arcbson):<br>
- BSON-encoded GeoJSON and Arc JSON, see <a href="http://bsonspec.org/#/specification">http://bsonspec.org/#/specification</a><br>
- <br>
- GeoAMF (.geoamf) and Arc GeoServices AMF (.arcamf):<br>
- AMF0-encoded GeoJSON and Arc JSON, see:<br>
- <a href="http://opensource.adobe.com/wiki/download/attachments/1114283/amf0_spec_121207.pdf">http://opensource.adobe.com/wiki/download/attachments/1114283/amf0_spec_121207.pdf</a><br>
- <br>
-Possible future supported formats might include KML and others. Get in touch<br>
-via Github to suggest other formats: <a href="http://github.com/migurski/TileStache">http://github.com/migurski/TileStache</a>.<br>
- <br>
-Common parameters:<br>
- <br>
- driver:<br>
- String used to identify an OGR driver. Currently, "ESRI Shapefile",<br>
- "PostgreSQL", "MySQL", Oracle, Spatialite and "GeoJSON" are supported as <br>
- data source drivers, with "postgis" and "shapefile" accepted as synonyms. <br>
- Not case-sensitive.<br>
- <br>
- OGR's complete list of potential formats can be found here:<br>
- <a href="http://www.gdal.org/ogr/ogr_formats.html">http://www.gdal.org/ogr/ogr_formats.html</a>. Feel free to get in touch via<br>
- Github to suggest new formats: <a href="http://github.com/migurski/TileStache">http://github.com/migurski/TileStache</a>.<br>
- <br>
- parameters:<br>
- Dictionary of parameters for each driver.<br>
- <br>
- PostgreSQL:<br>
- "dbname" parameter is required, with name of database.<br>
- "host", "user", and "password" are optional connection parameters.<br>
- One of "table" or "query" is required, with a table name in the first<br>
- case and a complete SQL query in the second.<br>
- <br>
- Shapefile and GeoJSON:<br>
- "file" parameter is required, with filesystem path to data file.<br>
- <br>
- properties:<br>
- Optional list or dictionary of case-sensitive output property names.<br>
- <br>
- If omitted, all fields from the data source will be included in response.<br>
- If a list, treated as a whitelist of field names to include in response.<br>
- If a dictionary, treated as a whitelist and re-mapping of field names.<br>
- <br>
- clipped:<br>
- Default is true.<br>
- Boolean flag for optionally clipping the output geometries to the<br>
- bounds of the enclosing tile, or the string value "padded" for clipping<br>
- to the bounds of the tile plus 5%. This results in incomplete geometries,<br>
- dramatically smaller file sizes, and improves performance and<br>
- compatibility with Polymaps (<a href="http://polymaps.org">http://polymaps.org</a>).<br>
- <br>
- projected:<br>
- Default is false.<br>
- Boolean flag for optionally returning geometries in projected rather than<br>
- geographic coordinates. Typically this means EPSG:900913 a.k.a. spherical<br>
- mercator projection. Stylistically a poor fit for GeoJSON, but useful<br>
- when returning Arc GeoServices responses.<br>
- <br>
- precision:<br>
- Default is 6.<br>
- Optional number of decimal places to use for floating point values.<br>
- <br>
- spacing:<br>
- Optional number of tile pixels for spacing geometries in responses. Used<br>
- to cut down on the number of returned features by ensuring that only those<br>
- features at least this many pixels apart are returned. Order of features<br>
- in the data source matters: early features beat out later features.<br>
- <br>
- verbose:<br>
- Default is false.<br>
- Boolean flag for optionally expanding output with additional whitespace<br>
- for readability. Results in larger but more readable GeoJSON responses.<br>
- <br>
- id_property:<br>
- Default is None.<br>
- Sets the id of the geojson feature to the specified field of the data source.<br>
- This can be used, for example, to identify a unique key field for the feature.<br>
- <br>
-Example TileStache provider configuration:<br>
- <br>
- "vector-postgis-points":<br>
- {<br>
- "provider": {"name": "vector", "driver": "PostgreSQL",<br>
- "parameters": {"dbname": "geodata", "user": "geodata",<br>
- "table": "planet_osm_point"}}<br>
- }<br>
- <br>
- "vector-postgis-lines":<br>
- {<br>
- "provider": {"name": "vector", "driver": "postgis",<br>
- "parameters": {"dbname": "geodata", "user": "geodata",<br>
- "table": "planet_osm_line"}}<br>
- }<br>
- <br>
- "vector-shapefile-points":<br>
- {<br>
- "provider": {"name": "vector", "driver": "ESRI Shapefile",<br>
- "parameters": {"file": "oakland-uptown-point.shp"},<br>
- "properties": ["NAME", "HIGHWAY"]}<br>
- }<br>
- <br>
- "vector-shapefile-lines":<br>
- {<br>
- "provider": {"name": "vector", "driver": "shapefile",<br>
- "parameters": {"file": "oakland-uptown-line.shp"},<br>
- "properties": {"NAME": "name", "HIGHWAY": "highway"}}<br>
- }<br>
- <br>
- "vector-postgis-query":<br>
- {<br>
- "provider": {"name": "vector", "driver": "PostgreSQL",<br>
- "parameters": {"dbname": "geodata", "user": "geodata",<br>
- "query": "SELECT osm_id, name, highway, way FROM planet_osm_line WHERE SUBSTR(name, 1, 1) = '1'"}}<br>
- }<br>
- <br>
- "vector-sf-streets":<br>
- {<br>
- "provider": {"name": "vector", "driver": "GeoJSON",<br>
- "parameters": {"file": "stclines.json"},<br>
- "properties": ["STREETNAME"]}<br>
- }<br>
- <br>
-Caveats:<br>
- <br>
-Your data source must have a valid defined projection, or OGR will not know<br>
-how to correctly filter and reproject it. Although response tiles are typically<br>
-in web (spherical) mercator projection, the actual vector content of responses<br>
-is unprojected back to plain WGS84 latitude and longitude.<br>
- <br>
-If you are using PostGIS and spherical mercator a.k.a. SRID 900913,<br>
-you can save yourself a world of trouble by using this definition:<br>
- <a href="http://github.com/straup/postgis-tools/raw/master/spatial_ref_900913-8.3.sql">http://github.com/straup/postgis-tools/raw/master/spatial_ref_900913-8.3.sql</a></tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Vector.Arc.html">Arc</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.Vector.html#Provider">Provider</a>
-</font></dt><dt><font face="helvetica, arial"><a href="TileStache.Vector.html#VectorResponse">VectorResponse</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Vector <a href="#Provider">Provider</a> for OGR datasources.<br>
- <br>
-See module documentation for explanation of constructor arguments.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, driver, parameters, clipped, verbose, projected, spacing, properties, precision, id_property)</dt></dl>
-
-<dl><dt><a name="Provider-getTypeByExtension"><strong>getTypeByExtension</strong></a>(self, extension)</dt><dd><tt>Get mime-type and format by file extension.<br>
- <br>
-This only accepts "geojson" for the time being.</tt></dd></dl>
-
-<dl><dt><a name="Provider-renderTile"><strong>renderTile</strong></a>(self, width, height, srs, coord)</dt><dd><tt>Render a single tile, return a <a href="#VectorResponse">VectorResponse</a> instance.</tt></dd></dl>
-
-<hr>
-Static methods defined here:<br>
-<dl><dt><a name="Provider-prepareKeywordArgs"><strong>prepareKeywordArgs</strong></a>(config_dict)</dt><dd><tt>Convert configured parameters to keyword args for <a href="#Provider-__init__">__init__</a>().</tt></dd></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="VectorResponse">class <strong>VectorResponse</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper class for Vector response that makes it behave like a PIL.Image object.<br>
- <br>
-TileStache.getTile() expects to be able to save one of these to a buffer.<br>
- <br>
-Constructor arguments:<br>
-- content: Vector data to be serialized, typically a dictionary.<br>
-- verbose: Boolean flag to expand response for better legibility.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="VectorResponse-__init__"><strong>__init__</strong></a>(self, content, verbose, precision<font color="#909090">=6</font>)</dt></dl>
-
-<dl><dt><a name="VectorResponse-save"><strong>save</strong></a>(self, out, format)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>pyamf_classes</strong> = {<class 'TileStache.Vector.Arc._amfFeatureSet'>: 'com.esri.ags.tasks.FeatureSet', <class 'TileStache.Vector.Arc._amfSpatialReference'>: 'com.esri.ags.SpatialReference', <class 'TileStache.Vector.Arc._amfFeature'>: 'com.esri.ags.Feature', <class 'TileStache.Vector.Arc._amfGeometryMapPoint'>: 'com.esri.ags.geometry.MapPoint', <class 'TileStache.Vector.Arc._amfGeometryPolyline'>: 'com.esri.ags.geometry.Polyline' [...]
-</body></html>
\ No newline at end of file
diff --git a/doc/TileStache.html b/doc/TileStache.html
deleted file mode 100644
index df6b847..0000000
--- a/doc/TileStache.html
+++ /dev/null
@@ -1,196 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package TileStache</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>TileStache</strong></big></big> (version 1.50.0)</font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>A stylish alternative for caching your map tiles.<br>
- <br>
-TileStache is a Python-based server application that can serve up map tiles<br>
-based on rendered geographic data. You might be familiar with TileCache<br>
-(<a href="http://tilecache.org">http://tilecache.org</a>), the venerable open source WMS server from MetaCarta.<br>
-TileStache is similar, but we hope simpler and better-suited to the needs of<br>
-designers and cartographers.<br>
- <br>
-Documentation available at <a href="http://tilestache.org/doc/">http://tilestache.org/doc/</a></tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.Caches.html">Caches</a><br>
-<a href="TileStache.Config.html">Config</a><br>
-<a href="TileStache.Core.html">Core</a><br>
-<a href="TileStache.Geography.html">Geography</a><br>
-</td><td width="25%" valign=top><a href="TileStache.Goodies.html"><strong>Goodies</strong> (package)</a><br>
-<a href="TileStache.MBTiles.html">MBTiles</a><br>
-<a href="TileStache.Mapnik.html">Mapnik</a><br>
-<a href="TileStache.Memcache.html">Memcache</a><br>
-</td><td width="25%" valign=top><a href="TileStache.PixelEffects.html">PixelEffects</a><br>
-<a href="TileStache.Pixels.html">Pixels</a><br>
-<a href="TileStache.Providers.html">Providers</a><br>
-<a href="TileStache.Redis.html">Redis</a><br>
-</td><td width="25%" valign=top><a href="TileStache.S3.html">S3</a><br>
-<a href="TileStache.Sandwich.html">Sandwich</a><br>
-<a href="TileStache.Vector.html"><strong>Vector</strong> (package)</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="TileStache.html#WSGITileServer">WSGITileServer</a>
-</font></dt></dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="WSGITileServer">class <strong>WSGITileServer</strong></a></font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Create a WSGI application that can handle requests from any server that talks WSGI.<br>
- <br>
-This class is documented as part of TileStache's public API:<br>
- <a href="http://tilestache.org/doc/#wsgi">http://tilestache.org/doc/#wsgi</a><br>
- <br>
-The WSGI application is an instance of this class. Example:<br>
- <br>
- app = <a href="#WSGITileServer">WSGITileServer</a>('/path/to/tilestache.cfg')<br>
- werkzeug.serving.run_simple('localhost', 8080, app)<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="WSGITileServer-__call__"><strong>__call__</strong></a>(self, environ, start_response)</dt></dl>
-
-<dl><dt><a name="WSGITileServer-__init__"><strong>__init__</strong></a>(self, config, autoreload<font color="#909090">=False</font>)</dt><dd><tt>Initialize a callable WSGI instance.<br>
- <br>
-Config parameter can be a file path string for a JSON configuration<br>
-file or a configuration object with 'cache', 'layers', and<br>
-'dirpath' properties.<br>
- <br>
-Optional autoreload boolean parameter causes config to be re-read<br>
-on each request, applicable only when config is a JSON file.</tt></dd></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-cgiHandler"><strong>cgiHandler</strong></a>(environ, config<font color="#909090">='./tilestache.cfg'</font>, debug<font color="#909090">=False</font>)</dt><dd><tt>Read environment PATH_INFO, load up configuration, talk to stdout by CGI.<br>
- <br>
-This function is documented as part of TileStache's public API:<br>
- <a href="http://tilestache.org/doc/#cgi">http://tilestache.org/doc/#cgi</a><br>
- <br>
-Calls <a href="#-requestHandler">requestHandler</a>().<br>
- <br>
-Config parameter can be a file path string for a JSON configuration file<br>
-or a configuration object with 'cache', 'layers', and 'dirpath' properties.</tt></dd></dl>
- <dl><dt><a name="-getPreview"><strong>getPreview</strong></a>(layer)</dt><dd><tt>Get a type string and dynamic map viewer HTML for a given layer.</tt></dd></dl>
- <dl><dt><a name="-getTile"><strong>getTile</strong></a>(layer, coord, extension, ignore_cached<font color="#909090">=False</font>)</dt><dd><tt>Get a type string and tile binary for a given request layer tile.<br>
- <br>
-This function is documented as part of TileStache's public API:<br>
- <a href="http://tilestache.org/doc/#tilestache-gettile">http://tilestache.org/doc/#tilestache-gettile</a><br>
- <br>
-Arguments:<br>
-- layer: instance of Core.Layer to render.<br>
-- coord: one ModestMaps.Core.Coordinate corresponding to a single tile.<br>
-- extension: filename extension to choose response type, e.g. "png" or "jpg".<br>
-- ignore_cached: always re-render the tile, whether it's in the cache or not.<br>
- <br>
-This is the main entry point, after site configuration has been loaded<br>
-and individual tiles need to be rendered.</tt></dd></dl>
- <dl><dt><a name="-getcwd"><strong>getcwd</strong></a>(...)</dt><dd><tt><a href="#-getcwd">getcwd</a>() -> path<br>
- <br>
-Return a string representing the current working directory.</tt></dd></dl>
- <dl><dt><a name="-mergePathInfo"><strong>mergePathInfo</strong></a>(layer, coord, extension)</dt><dd><tt>Converts layer name, coordinate and extension back to a PATH_INFO string.<br>
- <br>
-See also <a href="#-splitPathInfo">splitPathInfo</a>().</tt></dd></dl>
- <dl><dt><a name="-modpythonHandler"><strong>modpythonHandler</strong></a>(request)</dt><dd><tt>Handle a mod_python request.<br>
- <br>
-TODO: Upgrade to new <a href="#-requestHandler">requestHandler</a>() so this can return non-200 HTTP.<br>
- <br>
-Calls <a href="#-requestHandler">requestHandler</a>().<br>
- <br>
-Example Apache configuration for TileStache:<br>
- <br>
-<Directory /home/migurski/public_html/TileStache><br>
- AddHandler mod_python .py<br>
- PythonHandler TileStache::modpythonHandler<br>
- PythonOption config /etc/tilestache.cfg<br>
-</Directory><br>
- <br>
-Configuration options, using PythonOption directive:<br>
-- config: path to configuration file, defaults to "tilestache.cfg",<br>
- using request.filename as the current working directory.</tt></dd></dl>
- <dl><dt><a name="-parseConfigfile"><strong>parseConfigfile</strong></a>(configpath)</dt><dd><tt>Parse a configuration file and return a Configuration object.<br>
- <br>
-Configuration file is formatted as JSON with two sections, "cache" and "layers":<br>
- <br>
- {<br>
- "cache": { ... },<br>
- "layers": {<br>
- "layer-1": { ... },<br>
- "layer-2": { ... },<br>
- ...<br>
- }<br>
- }<br>
- <br>
-The full path to the file is significant, used to<br>
-resolve any relative paths found in the configuration.<br>
- <br>
-See the Caches module for more information on the "caches" section,<br>
-and the Core and Providers modules for more information on the<br>
-"layers" section.</tt></dd></dl>
- <dl><dt><a name="-requestHandler"><strong>requestHandler</strong></a>(config_hint, path_info, query_string<font color="#909090">=None</font>)</dt><dd><tt>Generate a mime-type and response body for a given request.<br>
- <br>
-This function is documented as part of TileStache's public API:<br>
- <a href="http://tilestache.org/doc/#tilestache-requesthandler">http://tilestache.org/doc/#tilestache-requesthandler</a><br>
- <br>
-TODO: replace this with <a href="#-requestHandler2">requestHandler2</a>() in TileStache 2.0.0.<br>
- <br>
-Calls <a href="#-requestHandler2">requestHandler2</a>().</tt></dd></dl>
- <dl><dt><a name="-requestHandler2"><strong>requestHandler2</strong></a>(config_hint, path_info, query_string<font color="#909090">=None</font>, script_name<font color="#909090">=''</font>)</dt><dd><tt>Generate a set of headers and response body for a given request.<br>
- <br>
-TODO: Replace <a href="#-requestHandler">requestHandler</a>() with this function in TileStache 2.0.0.<br>
- <br>
-Requires a configuration and PATH_INFO (e.g. "/example/0/0/0.png").<br>
- <br>
-Config_hint parameter can be a path string for a JSON configuration file<br>
-or a configuration object with 'cache', 'layers', and 'dirpath' properties.<br>
- <br>
-Query string is optional, currently used for JSON callbacks.<br>
- <br>
-Calls Layer.getTileResponse() to render actual tiles, and <a href="#-getPreview">getPreview</a>() to render preview.html.</tt></dd></dl>
- <dl><dt><a name="-requestLayer"><strong>requestLayer</strong></a>(config, path_info)</dt><dd><tt>Return a Layer.<br>
- <br>
-Requires a configuration and PATH_INFO (e.g. "/example/0/0/0.png").<br>
- <br>
-Config parameter can be a file path string for a JSON configuration file<br>
-or a configuration object with 'cache', 'layers', and 'dirpath' properties.</tt></dd></dl>
- <dl><dt><a name="-splitPathInfo"><strong>splitPathInfo</strong></a>(pathinfo)</dt><dd><tt>Converts a PATH_INFO string to layer name, coordinate, and extension parts.<br>
- <br>
-Example: "/layer/0/0/0.png", leading "/" optional.</tt></dd></dl>
- <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>() -> floating point number<br>
- <br>
-Return the current time in seconds since the Epoch.<br>
-Fractions of a second may be present if the system clock provides them.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>__version__</strong> = '1.50.0'<br>
-<strong>stdout</strong> = <open file '<stdout>', mode 'w'></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/index.html b/doc/index.html
deleted file mode 100644
index b00319c..0000000
--- a/doc/index.html
+++ /dev/null
@@ -1,2269 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <title>TileStache API</title>
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <style type="text/css" title="text/css">
- <!--
-
- body
- {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 14px;
- line-height: 18px;
- color: black;
- }
-
- h2 { font-size: 1.5em; }
- h3 { font-size: 1.2em; }
- h4, h5 { font-size: 1em; }
-
- pre, p samp, dl samp, p code, dl code
- {
- font-family: Monaco, monospace;
- font-size: 0.9em;
- }
-
- pre { font-size: 0.8em; }
-
- body { margin-left: 56px; margin-bottom: 4em; }
- #intro { margin-left: -28px; }
- h1, h2, h3, h4 { margin: 1em 56px 1em -28px; }
- h5 { margin: 1em 0; }
- dd, li { margin-left: 14px; }
- ul { padding-left: 0; list-style-type: none; }
- #index { float: right; width: 20em; padding-bottom: 2em; }
-
- h2 { margin-top: 2em; border-top: 1px solid #ccc; padding-top: 1em;}
-
- body, #index { background-color: white; }
- pre .bg { color: #aaa; }
-
- p, dd, pre { width: 50em; }
-
- var, samp, code { white-space: nowrap; }
- samp, pre { background-color: #eee; }
- dt { display: inline; font-weight: bold; }
- var { background-color: #fe7; }
-
- dd dl { margin: 0; }
-
- samp, pre, var { padding: 0 2px; margin: 0 -2px; border-radius: 2px; }
- pre { margin: -4px 10px; padding: 4px; border: 1px solid #ddd; border-radius: 3px; }
-
- a.permalink
- {
- font-weight: normal;
- text-decoration: none;
- opacity: 0.35;
- }
-
- -->
- </style>
-</head>
-<body>
-
-<h1>TileStache API</h1>
-
-<div id="intro">
-
- <p>
- TileStache is a Python-based server application that can serve up map tiles
- based on rendered geographic data. You might be familiar with
- <a href="http://tilecache.org">TileCache</a> the venerable open source WMS
- server from MetaCarta. TileStache is similar, but we hope simpler and
- better-suited to the needs of designers and cartographers.
- </p>
-
- <p>
- <strong>This document covers TileStache version 1.50.0</strong>.
- </p>
-
- <p>
- See also <a href="TileStache.html">detailed module and class reference</a>.
- </p>
-
-</div>
-
-<ul id="index">
- <li>
- <a href="#requesting-tiles">Requesting Tiles</a>
- <ul>
- <li><a href="#over-http">Over HTTP</a></li>
- <li>
- <a href="#in-code">In Code</a>
-<!--
- <ul>
- <li><a href="#tilestache-gettile"><code>TileStache.getTile</code></a></li>
- <li><a href="#tilestache-requesthandler"><code>TileStache.requestHandler</code></a></li>
- </ul>
- -->
- </li>
- </ul>
- </li>
- <li>
- <a href="#serving-tiles">Serving Tiles</a>
- <ul>
- <li><a href="#wsgi">WSGI</a></li>
- <li><a href="#cgi">CGI</a></li>
- <li><a href="#mod-python">mod_python</a></li>
- </ul>
- </li>
- <li>
- <a href="#configuring-tilestache">Configuring TileStache</a>
- <ul>
- <li>
- <a href="#caches">Caches</a>
-<!--
- <ul>
- <li><a href="#test-cache">Test</a></li>
- <li><a href="#disk-cache">Disk</a></li>
- <li><a href="#multi-cache">Multi</a></li>
- <li><a href="#memcache-cache">Memcache</a></li>
- <li><a href="#s3-cache">S3</a></li>
- </ul>
- -->
- </li>
- <li><a href="#layers">Layers</a></li>
- <li>
- <a href="#providers">Providers</a>
-<!--
- <ul>
- <li><a href="#mapnik-provider">Mapnik</a></li>
- <li><a href="#proxy-provider">Proxy</a></li>
- <li><a href="#url-template-provider">URL Template</a></li>
- <li><a href="#mbtiles-provider">MBTiles</a></li>
- <li><a href="#mapnik-grid-provider">Mapnik Grid</a></li>
- <li><a href="#sandwich-provider">Pixel Sandwich</a></li>
- </ul>
- -->
- </li>
- <li><a href="#projections">Projections</a></li>
- <li><a href="#metatiles">Metatiles</a></li>
- <li><a href="#preview">Preview</a></li>
- <li><a href="#index-page">Index Page</a></li>
- <li><a href="#logging">Logging</a></li>
- </ul>
- </li>
- <li>
- <a href="#extending-tilestache">Extending TileStache</a>
- <ul>
- <li>
- <a href="#custom-providers">Providers</a>
-<!--
- <ul>
- <li><a href="#provider-rendertile"><code>provider.renderTile</code></a></li>
- <li><a href="#provider-renderarea"><code>provider.renderArea</code></a></li>
- <li><a href="#provider-gettypebyextension"><code>provider.getTypeByExtension</code></a></li>
- </ul>
- -->
- </li>
- <li><a href="#custom-caches">Caches</a></li>
- <li><a href="#custom-configuration">Configuration</a></li>
- </ul>
- </li>
-</ul>
-
-<h2><a id="requesting-tiles" name="requesting-tiles">Requesting Tiles</a> <a href="#requesting-tiles" class="permalink">¶</a></h2>
-
-<h3><a id="over-http" name="over-http">Over HTTP</a> <a href="#over-http" class="permalink">¶</a></h3>
-
-<p>
-TileStache URLs are based on a Google Maps-like scheme:
-</p>
-
-<pre>
-/{layer name}/{zoom}/{column}/{row}.{extension}
-</pre>
-
-<p>
-An example tile URL might look like this:
-</p>
-
-<pre>
-http://example.org/path/tile.cgi/streets/12/656/1582.png
-</pre>
-
-<p>
-For JSON responses such as those from the <a href="#vector-provider">Vector provider</a>, URLs
-can include an optional callback for <a href="http://en.wikipedia.org/wiki/JSONP">JSONP</a> support:
-</p>
-
-<pre>
-http://example.org/path/tile.cgi/streets/12/656/1582.json?callback=funcname
-</pre>
-
-<p>
-Interactive, slippy-map previews of tiles are also available:
-</p>
-
-<pre>
-/{layer name}/preview.html
-</pre>
-
-<h3><a id="in-code" name="in-code">In Code</a> <a href="#in-code" class="permalink">¶</a></h3>
-
-<h4><a id="tilestache-gettile" name="tilestache-gettile"><code>TileStache.getTile</code></a> <a href="#tilestache-gettile" class="permalink">¶</a></h4>
-
-<p>
-Get a type string and tile binary for a given request layer tile.
-</p>
-
-<p>
-Arguments to <code>getTile</code>:
-</p>
-
-<dl>
- <dt>layer</dt>
- <dd>
- Instance of <code>Core.Layer</code> to render.
- </dd>
-
- <dt>coord</dt>
- <dd>
- One <code>ModestMaps.Core.Coordinate</code> corresponding to a single tile.
- </dd>
-
- <dt>extension</dt>
- <dd>
- Filename extension to choose response type, e.g. <samp>"png"</samp> or
- <samp>"jpg"</samp>.
- </dd>
-
- <dt>ignore_cached</dt>
- <dd>
- Optional boolean: always re-render the tile, whether it's in the cache or
- not. Default <samp>False</samp>.
- </dd>
-</dl>
-
-<p>
-Return value of <code>getTile</code> is a tuple containing a mime-type string
-such as <samp>"image/png"</samp> and a complete byte string representing the
-rendered tile.
-</p>
-
-<p>
-See
-<a href="TileStache.html#-getTile">TileStache.getTile</a>
-documentation for more information.
-</p>
-
-<h4><a id="tilestache-requesthandler" name="tilestache-requesthandler"><code>TileStache.requestHandler</code></a> <a href="#tilestache-requesthandler" class="permalink">¶</a></h4>
-
-<p>
-Generate a mime-type and response body for a given request. This is the function
-to use when creating new HTTP interfaces to TileStache.
-</p>
-
-<p>
-Arguments to <code>requestHandler</code>:
-</p>
-
-<dl>
- <dt>config</dt>
- <dd>
- Required file path string for a JSON configuration file or a configuration
- object with <var>cache</var>, <var>layers</var>, and <var>dirpath</var>
- properties, such as
- <a href="TileStache.Config.html#Configuration"><code>TileStache.Config.Configuration</code></a>.
- </dd>
-
- <dt>path_info</dt>
- <dd>
- Required end portion of a request URL including the layer name and tile
- coordinate, e.g. <samp>"/roads/12/656/1582.png"</samp>.
- </dd>
-
- <dt>query_string</dt>
- <dd>
- Optional query string. Currently used only for JSONP callbacks.
- </dd>
-
- <dt>script_name</dt>
- <dd>
- Optional script name corresponds to CGI environment variable <var>SCRIPT_NAME</var>, used to calculate correct 302 redirects.
- </dd>
-</dl>
-
-<p>
-Return value of <code>requestHandler</code> is a tuple containing a mime-type string
-such as <samp>"image/png"</samp> and a complete byte string representing the
-rendered tile.
-</p>
-
-<p>
-See
-<a href="TileStache.html#-requestHandler">TileStache.requestHandler</a>
-documentation for more information.
-</p>
-
-<h2><a id="serving-tiles" name="serving-tiles">Serving Tiles</a> <a href="#serving-tiles" class="permalink">¶</a></h2>
-
-<p>
-We currently provide three scripts for serving tiles: one for a WSGI-based
-webserver, one for a CGI-based webserver, and one for Apache <code>mod_python</code>.
-</p>
-
-<h4><a id="wsgi" name="wsgi">WSGI</a> <a href="#wsgi" class="permalink">¶</a></h4>
-
-<p>
-TileStache comes with a WSGI application and a
-<a href="http://werkzeug.pocoo.org/">Werkzeug</a> web server. To use the
-built-in server, run <tt>tilestache-server.py</tt>,
-which (by default) looks for a config file named <tt>tilestache.cfg</tt>
-in the current directory and then serves tiles on
-<tt>http://127.0.0.1:8080/</tt>. Check <tt>tilestache-server.py --help</tt>
-to change these defaults.
-</p>
-
-<p>Alternatively, any WSGI server can be pointed at an instance of
-<tt>TileStache.WSGITileServer</tt>. Here’s how to use it with
-<a href="http://gunicorn.org/">gunicorn</a>:
-</p>
-
-<pre>
-$ gunicorn "TileStache:WSGITileServer('/path/to/tilestache.cfg')"
-</pre>
-
-<p>The same configuration can be served with <a
- href="http://projects.unbit.it/uwsgi/">uWSGI</a> like so. Note the
-usage of the <tt>--eval</tt> option over <tt>--module</tt> as this latter
-option does not support argument passing:
-
-<pre>
-$ uwsgi --http :8080 --eval 'import TileStache; \
-application = TileStache.WSGITileServer("/path/to/tilestache.cfg")'
-</pre>
-
-<p>
-See
-<a href="TileStache.html#WSGITileServer"><code>TileStache.WSGITileServer</code></a>
-documentation for more information.
-</p>
-
-<h4><a id="cgi" name="cgi">CGI</a> <a href="#cgi" class="permalink">¶</a></h4>
-
-<p>
-Using TileStache through CGI supports basic tile serving, and is useful for
-simple testing and low-to-medium traffic websites. This is a complete, working
-CGI script that looks for configuration in a local file called
-<tt>tilestache.cfg</tt>:
-</p>
-
-<pre>
-#!/usr/bin/python
-import os, TileStache
-TileStache.cgiHandler(os.environ, 'tilestache.cfg', debug=True)
-</pre>
-
-<p>
-See
-<a href="TileStache.html#-cgiHandler"><code>TileStache.cgiHandler</code></a>
-documentation for more information.
-</p>
-
-<h4><a id="mod-python" name="mod-python">mod_python</a> <a href="#mod-python" class="permalink">¶</a></h4>
-
-<p>
-Using TileStache through <code>mod_python</code> improves performance by
-caching imported modules, but must be configured via the Apache webserver
-config. This is a complete example configuration for a webserver publishing
-tiles configured by a file in <code>/etc</code>:
-</p>
-
-<pre>
-<Directory /var/www/tiles>
- AddHandler mod_python .py
- PythonHandler TileStache::modpythonHandler
- PythonOption config /etc/tilestache.cfg
-</Directory>
-</pre>
-
-<p>
-See
-<a href="TileStache.html#-modPythonHandler"><code>TileStache.modPythonHandler</code></a>
-documentation for more information.
-</p>
-
-<h2><a id="configuring-tilestache" name="configuring-tilestache">Configuring TileStache</a> <a href="#configuring-tilestache" class="permalink">¶</a></h2>
-
-<p>
-TileStache configuration is stored in JSON files, and is composed of two main
-top-level sections: <samp>"cache"</samp> and <samp>"layers"</samp>. There are
-examples of both in this minimal sample configuration:
-</p>
-
-<pre>
-{
- "cache": {"name": "Test"},
- "layers": {
- "ex": {
- "provider": {"name": "mapnik", "mapfile": "style.xml"},
- "projection": "spherical mercator"
- }
- }
-}
-</pre>
-
-<h3><a id="caches" name="caches">Caches</a> <a href="#caches" class="permalink">¶</a></h3>
-
-<p>
-A Cache is the part of TileStache that stores static files to speed up future
-requests. A few default caches are shown here, with additional cache classes
-defined in
-<a href="TileStache.Goodies.Caches.html"><code>TileStache.Goodies.Caches</code></a>.
-</p>
-
-<p>
-Jump to <a href="#test-cache">Test</a>, <a href="#disk-cache">Disk</a>,
-<a href="#multi-cache">Multi</a>, <a href="#memcache-cache">Memcache</a>,
-<a href="#redis-cache">Redis</a>,
-or <a href="#s3-cache">S3</a> cache.
-</p>
-
-<h4><a id="test-cache" name="test-cache">Test</a> <a href="#test-cache" class="permalink">¶</a></h4>
-
-<p>
-Simple cache that doesn’t actually cache anything.
-</p>
-
-<p>
-Activity is optionally logged, though.
-</p>
-
-<p>
-Example configuration:
-</p>
-
-<pre>
-<span class="bg">{</span>
- "cache": {
- "name": "Test",
- "verbose": true
- }<span class="bg">,
- "layers": { … }
-}</span>
-</pre>
-
-<p>
-Test cache parameters:
-</p>
-
-<dl>
- <dt>verbose</dt>
- <dd>
- Optional boolean flag to write cache activities to a logging function,
- defaults to <samp>False</samp> if omitted.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Caches.html#Test">TileStache.Caches.Test</a>
-documentation for more information.
-</p>
-
-<h4><a id="disk-cache" name="disk-cache">Disk</a> <a href="#disk-cache" class="permalink">¶</a></h4>
-
-<p>
-Caches files to disk.
-</p>
-
-<p>
-Example configuration:
-</p>
-
-<pre>
-<span class="bg">{</span>
- "cache": {
- "name": "Disk",
- "path": "/tmp/stache",
- "umask": "0000",
- "dirs": "portable",
- "gzip": ["xml", "json"]
- }<span class="bg">,
- "layers": { … }
-}</span>
-</pre>
-
-<p>
-Disk cache parameters:
-</p>
-
-<dl>
- <dt>path</dt>
- <dd>
- Required local directory path where files should be stored.
- </dd>
-
- <dt>umask</dt>
- <dd>
- Optional string representation of octal permission mask for stored files.
- Defaults to <samp>"0022"</samp>.
- </dd>
-
- <dt>dirs</dt>
- <dd>
- Optional string saying whether to create cache directories that are safe or
- portable. For an example tile <samp>12/656/1582.png</samp>,
- <samp>"portable"</samp> creates matching directory trees while
- <samp>"safe"</samp> guarantees directories with fewer files, e.g.
- <samp>12/000/656/001/582.png</samp>. Defaults to <samp>"safe"</samp>.
- </dd>
-
- <dt>gzip</dt>
- <dd>
- Optional list of file formats that should be stored in a
- compressed form. Defaults to <samp>["txt", "text", "json", "xml"]</samp>.
- Provide an empty list in the configuration for no compression.
- </dd>
-</dl>
-
-<p>
-If your configuration file is loaded from a remote location, e.g.
-<samp>http://example.com/tilestache.cfg</samp>, the path <strong>must</strong>
-be an unambiguous filesystem path, e.g. <samp>"file:///tmp/cache"</samp>.
-</p>
-
-<p>
-See
-<a href="TileStache.Caches.html#Disk">TileStache.Caches.Disk</a>
-documentation for more information.
-</p>
-
-<h4><a id="multi-cache" name="multi-cache">Multi</a> <a href="#multi-cache" class="permalink">¶</a></h4>
-
-<p>
-Caches tiles to multiple, ordered caches.
-</p>
-
-<p>
-Multi cache is well-suited for a speed-to-capacity gradient, for example a
-combination of <a href="#memcache-cache">Memcache</a> and <a href="#s3-cache">S3</a>
-to take advantage of the high speed of memcache and the high capacity of S3.
-Each tier of caching is checked sequentially when reading from the cache, while
-all tiers are used together for writing. Locks are only used with the first cache.
-</p>
-
-<p>
-Example configuration:
-</p>
-
-<pre>
-<span class="bg">{</span>
- "cache": {
- "name": "Multi",
- "tiers": [
- {
- "name": "Memcache",
- "servers": ["127.0.0.1:11211"]
- },
- {
- "name": "Disk",
- "path": "/tmp/stache"
- }
- ]
- }<span class="bg">,
- "layers": { … }
-}</span>
-</pre>
-
-<p>
-Multi cache parameters:
-</p>
-
-<dl>
- <dt>tiers</dt>
- <dd>
- Required list of cache configurations. The fastest, most local cache should
- be at the beginning of the list while the slowest or most remote cache
- should be at the end. Memcache and S3 together make a great pair.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Caches.html#Multi">TileStache.Caches.Multi</a>
-documentation for more information.
-</p>
-
-<h4><a id="memcache-cache" name="memcache-cache">Memcache</a> <a href="#memcache-cache" class="permalink">¶</a></h4>
-
-<p>
-Caches tiles to <a href="http://memcached.org/">Memcache</a>,
-requires <a href="http://www.tummy.com/Community/software/python-memcached/">python-memcached</a>.
-</p>
-
-<p>
-Example configuration:
-</p>
-
-<pre>
-<span class="bg">{</span>
- "cache": {
- "name": "Memcache",
- "servers": ["127.0.0.1:11211"],
- "revision": 0,
- "key prefix": "unique-id"
- }<span class="bg">,
- "layers": { … }
-}</span>
-</pre>
-
-<p>
-Memcache cache parameters:
-</p>
-
-<dl>
- <dt>servers</dt>
- <dd>
- Optional array of servers, list of <samp>"{host}:{port}"</samp> pairs.
- Defaults to <samp>["127.0.0.1:11211"]</samp> if omitted.
- </dd>
-
- <dt>revision</dt>
- <dd>
- Optional revision number for mass-expiry of cached tiles regardless of lifespan.
- Defaults to <samp>0</samp>.
- </dd>
-
- <dt>key prefix</dt>
- <dd>
- Optional string to prepend to Memcache generated key.
- Useful when running multiple instances of TileStache
- that share the same Memcache instance to avoid key
- collisions. The key prefix will be prepended to the
- key name. Defaults to <samp>""</samp>.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Memcache.html#Cache">TileStache.Memcache.Cache</a>
-documentation for more information.
-</p>
-
-<h4><a id="redis-cache" name="redis-cache">Redis</a> <a href="#redis-cache" class="permalink">¶</a></h4>
-
-<p>
-Caches tiles to <a href="http://redis.io/">Redis</a>,
-requires <a href="https://pypi.python.org/pypi/redis/">redis-py</a> and <a href="http://redis.io/">redis server</a>.
-</p>
-
-<p>
-Example configuration:
-</p>
-
-<pre>
-<span class="bg">
-{</span>
- "cache": {
- "name": "Redis",
- "host": "localhost",
- "port": 6379,
- "db": 0,
- "key prefix": "unique-id"
- }<span class="bg">,
- "layers": { … }
-}</span>
-</pre>
-
-<p>
-Redis cache parameters:
-</p>
-
-<dl>
- <dt>host</dt>
- <dd>
- Defaults to <samp>"localhost"</samp> if omitted.
- </dd>
-
- <dt>port</dt>
- <dd>
- Integer; Defaults to <samp>6379</samp> if omitted.
- </dd>
-
- <dt>db</dt>
- <dd>
- Integer; Redis database number, defaults to <samp>0</samp> if omitted.
- </dd>
-
- <dt>key prefix</dt>
- <dd>
- Optional string to prepend to generated key.
- Useful when running multiple instances of TileStache
- that share the same Redis database to avoid key
- collisions (though the prefered solution is to use a different
- db number). The key prefix will be prepended to the
- key name. Defaults to <samp>""</samp>.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Redis.html#Cache">TileStache.Redis.Cache</a>
-documentation for more information.
-</p>
-
-<h4><a id="s3-cache" name="s3-cache">S3</a> <a href="#s3-cache" class="permalink">¶</a></h4>
-
-<p>
-Caches tiles to <a href="https://s3.amazonaws.com/">Amazon S3</a>,
-requires <a href="http://pypi.python.org/pypi/boto">boto</a> (2.0+).
-</p>
-
-<p>
-Example configuration:
-</p>
-
-<pre>
-<span class="bg">{</span>
- "cache": {
- "name": "S3",
- "bucket": "<bucket name>",
- "access": "<access key>",
- "secret": "<secret key>"
- "reduced_redundancy": False
- }<span class="bg">,
- "layers": { … }
-}</span>
-</pre>
-
-<p>
-S3 cache parameters:
-</p>
-
-<dl>
- <dt>bucket</dt>
- <dd>
- Required bucket name for S3. If it doesn’t exist, it will be created.
- </dd>
-
- <dt>access</dt>
- <dd>
- Optional access key ID for your S3 account. You can find this under “Security
- Credentials” at your <a href="http://aws.amazon.com/account/">AWS account page</a>.
- </dd>
-
- <dt>secret</dt>
- <dd>
- Optional secret access key for your S3 account. You can find this under “Security
- Credentials” at your <a href="http://aws.amazon.com/account/">AWS account page</a>.
- </dd>
-
- <dt>use_locks</dt>
- <dd>
- Optional boolean flag for whether to use the locking feature on S3.
- <samp>True</samp> by default. A good reason to set this to
- <samp>false</samp> would be the additional price and time required for each
- lock set in S3.
- </dd>
-
- <dt>path</dt>
- <dd>
- Optional path under bucket to use as the cache directory. ex. <samp>'path': 'cache'</samp> will
- put tiles under <samp>{bucket}/cache/</samp>
- </dd>
-
- <dt>reduced_redundancy</dt>
- <dd>
- Optional boolean specifying whether to use Reduced Redundancy Storage mode in S3.
- Files stored with RRS incur less cost but have reduced redundancy in Amazon's storage
- system.
- </dd>
-</dl>
-
-<p>
-When access or secret are not provided, the environment variables
-AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY will be used.
-See <a href="http://docs.pythonboto.org/en/latest/s3_tut.html#creating-a-connection">Boto documentation</a>
-for more information.
-</p>
-
-<p>
-See
-<a href="TileStache.S3.html#Cache">TileStache.S3.Cache</a>
-documentation for more information.
-</p>
-
-<h4><a id="additional-caches" name="additional-caches">Additional Caches</a> <a href="#additional-caches" class="permalink">¶</a></h4>
-
-<p>
-New caches with functionality that’s not strictly core to TileStache first appear in
-<a href="TileStache.Goodies.Caches.html">TileStache.Goodies.Caches</a>.
-</p>
-
-<h5>LimitedDisk</h5>
-
-<p>
-Cache that stores a limited amount of data. This is an example cache that uses
-a SQLite database to track sizes and last-read times for cached tiles, and
-removes least-recently-used tiles whenever the total size of the cache exceeds
-a set limit. See
-<a href="TileStache.Goodies.Caches.LimitedDisk.html">TileStache.Goodies.Caches.LimitedDisk</a>
-for more information.
-</p>
-
-<h3><a id="layers" name="layers">Layers</a> <a href="#layers" class="permalink">¶</a></h3>
-
-<p>
-A Layer represents a set of tiles in TileStache. It keeps references to
-providers, projections, a Configuration instance, and other details required
-for to the storage and rendering of a tile set.
-</p>
-
-<p>
-Example layer configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": …,
- "layers":
- {</span>
- "example-name":
- {
- "provider": { … },
- "metatile": { … },
- "preview": { … },
- "stale lock timeout": …,
- "cache lifespan": …,
- "projection": …,
- "write cache": …,
- "bounds": { … },
- "allowed origin": …,
- "maximum cache age": …,
- "redirects": …,
- "tile height": …,
- "jpeg options": …,
- "png options": …,
- "pixel effect": { … }
- }
- <span class="bg">}
-}</span>
-</pre>
-
-<p>
-The public-facing URL of a single tile for this layer might look like this:
-</p>
-
-<pre>
-http://example.com/tilestache.cgi/example-name/0/0/0.png
-</pre>
-
-<p>
-Shared layer parameters:
-</p>
-
-<dl>
- <dt>provider</dt>
- <dd>
- Refers to a Provider, explained in detail under
- <a href="#providers">Providers</a>.
- </dd>
-
- <dt>metatile</dt>
- <dd>
- Optionally makes it possible for multiple individual tiles to be rendered
- at one time, for greater speed and efficiency. This is commonly used for
- bitmap providers such as Mapnik. See <a href="#metatiles">Metatiles</a>
- for more information.
- </dd>
-
- <dt>preview</dt>
- <dd>
- Optionally overrides the starting point for the built-in per-layer slippy
- map preview, useful for image-based layers where appropriate. See
- <a href="#preview">Preview</a> for more information.
- </dd>
-
- <dt>projection</dt>
- <dd>
- Names a geographic projection, explained in
- <a href="#projections">Projections</a>. If omitted, defaults to
- <samp>"spherical mercator"</samp>.
- </dd>
-
- <dt>stale lock timeout</dt>
- <dd>
- An optional number of seconds to wait before forcing a lock that might be
- stuck. This is defined on a per-layer basis, rather than for an entire
- cache at one time, because you may have different expectations for the
- rendering speeds of different layer configurations. Defaults to
- <samp>15</samp>.
- </dd>
-
- <dt>cache lifespan</dt>
- <dd>
- An optional number of seconds that cached tiles should be stored. This is
- defined on a per-layer basis. Defaults to forever if <samp>None</samp>,
- <samp>0</samp> or omitted.
- </dd>
-
- <dt>write cache</dt>
- <dd>
- An optional boolean value to allow skipping cache write altogether.
- This is defined on a per-layer basis. Defaults to true if omitted.
- </dd>
-
- <dt>bounds</dt>
- <dd>
- An optional dictionary of six tile boundaries to limit the rendered area:
- <var>low</var> (lowest zoom level), <var>high</var> (highest zoom level),
- <var>north</var>, <var>west</var>, <var>south</var>, and <var>east</var>
- (all in degrees). When any of these are omitted, default values are
- <samp>north=89</samp>, <samp>west=-180</samp>, <samp>south=-89</samp>,
- <samp>east=180</samp>, <samp>low=0</samp>, and <samp>high=31</samp>.
- A list of dictionaries will also be accepted, indicating a set of possible
- bounding boxes any one of which includes possible tiles.
- </dd>
-
- <dt>allowed origin</dt>
- <dd>
- An optional string that shows up in the response HTTP header
- <a href="http://www.w3.org/TR/cors/#access-control-allow-origin-response-hea">Access-Control-Allow-Origin</a>,
- useful for when you need to provide javascript direct access to response
- data such as GeoJSON or pixel values. The header is part of a
- <a href="http://www.w3.org/TR/cors/">W3C working draft</a>.
- Pro-tip: if you want to allow maximum permissions and minimal
- security headache, use a value of <samp>"*"</samp> for this.
- </dd>
-
- <dt>maximum cache age</dt>
- <dd>
- An optional number of seconds used to control behavior of downstream caches.
- Causes TileStache responses to include
- <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">Cache-Control</a>
- and <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21">Expires</a>
- HTTP response headers. Useful when TileStache is itself hosted behind an HTTP
- cache such as Squid, Cloudfront, or Akamai.
- </dd>
-
- <dt>redirects</dt>
- <dd>
- An optional dictionary of per-extension HTTP redirects, treated as
- lowercase. Useful in cases where your tile provider can support many
- formats but you want to enforce limits to save on cache usage. If a request
- is made for a tile with an extension in the dictionary keys, a response can
- be generated that redirects the client to the same tile with another
- extension. For example, use the setting <samp>{"jpg": "png"}</samp>
- to force all requests for JPEG tiles to be redirected to PNG tiles.
- </dd>
-
- <dt>tile height</dt>
- <dd>
- An optional integer gives the height of the image tile in pixels. You
- almost always want to leave this at the default value of <samp>256</samp>,
- but you can use a value of <samp>512</samp> to create double-size,
- double-resolution tiles for high-density phone screens.
- </dd>
-
- <dt>jpeg options</dt>
- <dd>
- An optional dictionary of JPEG creation options, passed through
- <a href="http://effbot.org/imagingbook/format-jpeg.htm">to PIL</a>.
- Valid options include <var>quality</var> (integer), <var>progressive</var>
- (boolean), and <var>optimize</var> (boolean).
- </dd>
-
- <dt>png options</dt>
- <dd>
- An optional dictionary of PNG creation options, passed through
- <a href="http://effbot.org/imagingbook/format-png.htm">to PIL</a>.
- Valid options include <var>palette</var> (URL or filename), <var>palette256</var>
- (boolean) and <var>optimize</var> (boolean).
- </dd>
-
- <dt>pixel effect</dt>
- <dd>
- An optional dictionary that defines an effect to be applied for all tiles
- of this layer. Pixel effect can be any of these: <samp>blackwhite</samp>,
- <samp>greyscale</samp>, <samp>desaturate</samp>, <samp>pixelate</samp>,
- <samp>halftone</samp>, or <samp>blur</samp>.
- </dd>
-</dl>
-
-<h3><a id="providers" name="providers">Providers</a> <a href="#providers" class="permalink">¶</a></h3>
-
-<p>
-A Provider is the part of TileStache that stores static files to speed up
-future requests. A few default providers are shown here, with additional
-provider classes defined in
-<a href="TileStache.Goodies.Providers.html"><code>TileStache.Goodies.Providers</code></a>
-</p>
-
-<p>
-Jump to <a href="#mapnik-provider">Mapnik (image)</a>, <a href="#proxy-provider">Proxy</a>,
-<a href="#vector-provider">Vector</a>, <a href="#url-template-provider">URL Template</a>,
-<a href="#mbtiles-provider">MBTiles</a>, <a href="#mapnik-grid-provider">Mapnik (grid)</a>,
-or <a href="#sandwich-provider">Pixel Sandwich</a> provider.
-</p>
-
-<h4><a id="mapnik-provider" name="mapnik-provider">Mapnik</a> <a href="#mapnik-provider" class="permalink">¶</a></h4>
-
-<p>
-Built-in Mapnik provider, renders map images from Mapnik XML files.
-</p>
-
-<p>
-Example Mapnik provider configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": { … }.
- "layers":
- {
- "roads":
- {</span>
- "provider":
- {
- "name": "mapnik",
- "mapfile": "style.xml"
- }
- <span class="bg">}
- }
-}</span>
-</pre>
-
-<p>
-Mapnik provider parameters:
-</p>
-
-<dl>
- <dt>mapfile</dt>
- <dd>
- Required local file path to Mapnik XML file.
- </dd>
- <dt>fonts</dt>
- <dd>
- Optional relative directory path to <i>*.ttf</i> font files
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Mapnik.html#ImageProvider">TileStache.Mapnik.ImageProvider</a>
-for more information.
-</p>
-
-<h4><a id="proxy-provider" name="proxy-provider">Proxy</a> <a href="#proxy-provider" class="permalink">¶</a></h4>
-
-<p>
-Proxy provider, to pass through and cache tiles from other places.
-</p>
-
-<p>
-Example Proxy provider configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": { … }.
- "layers":
- {
- "roads":
- {</span>
- "provider":
- {
- "name": "proxy",
- "url": "http://tile.openstreetmap.org/{Z}/{X}/{Y}.png"
- }
- <span class="bg">}
- }
-}</span>
-</pre>
-
-<p>
-Proxy provider parameters:
-</p>
-
-<dl>
- <dt>url</dt>
- <dd>
- Optional URL template for remote tiles, for example:
- <samp>"http://tile.openstreetmap.org/{Z}/{X}/{Y}.png"</samp>
- </dd>
- <dt>provider</dt>
- <dd>
- Optional provider name string from Modest Maps built-ins. See
- <code>ModestMaps.builtinProviders.keys()</code> for a list. Example:
- <samp>"OPENSTREETMAP"</samp>.
- </dd>
- <dt>timeout</dt>
- Defines a timeout in seconds for the request.
- If not defined, the global default timeout setting will be used.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Providers.html#Proxy">TileStache.Providers.Proxy</a>
-for more information.
-</p>
-
-<h4><a id="vector-provider" name="vector-provider">Vector</a> <a href="#vector-provider" class="permalink">¶</a></h4>
-
-<p>
-Provider that returns vector representation of features in a data source.
-</p>
-
-<p>
-Currently two serializations and three encodings are supported for a total
-of six possible kinds of output with these tile name extensions:
-</p>
-
-<dl>
- <dt>GeoJSON (<samp>.geojson</samp>)</dt>
- <dd>
- Conforms to the <a href="http://geojson.org/geojson-spec.html">GeoJSON specification</a>.
- </dd>
- <dt>Arc GeoServices JSON (<samp>.arcjson</samp>)</dt>
- <dd>
- Conforms to ESRI’s <a href="http://www.esri.com/library/whitepapers/pdfs/geoservices-rest-spec.pdf">GeoServices REST specification</a>.
- </dd>
- <dt>GeoBSON (<samp>.geobson</samp>) and Arc GeoServices BSON (<samp>.arcbson</samp>)</dt>
- <dd>
- <a href="http://bsonspec.org/#/specification">BSON-encoded</a> GeoJSON and Arc JSON.
- </dd>
- <dt>GeoAMF (<samp>.geoamf</samp>) and Arc GeoServices AMF (<samp>.arcamf</samp>)</dt>
- <dd>
- <a href="http://opensource.adobe.com/wiki/download/attachments/1114283/amf0_spec_121207.pdf">AMF0-encoded</a> GeoJSON and Arc JSON.
- </dd>
-</dl>
-
-<p>
-Example Vector provider configurations:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": { … }.
- "layers":
- {
- "vector-postgis-points":
- {</span>
- "provider": {"name": "vector", "driver": "PostgreSQL",
- "parameters": {"dbname": "geodata", "user": "geodata",
- "table": "planet_osm_point"}}
- <span class="bg">},
- "vector-shapefile-lines":
- {</span>
- "provider": {"name": "vector", "driver": "shapefile",
- "parameters": {"file": "oakland-uptown-line.latlon.shp"},
- "properties": {"NAME": "name", "HIGHWAY": "highway"}}
- <span class="bg">},
- "vector-sf-streets":
- {</span>
- "provider": {"name": "vector", "driver": "GeoJSON",
- "parameters": {"file": "stclines.json"},
- "properties": ["STREETNAME"]}
- <span class="bg">},
- {</span>
- "provider": {"name": "vector", "driver": "MySQL",
- "parameters": {"dbname": "geodata", "port": "3306",
- "user": "geotest", "table": "test"},
- "properties": ["name"], "id_property": "oid"}
- <span class="bg">},
- {</span>
- "provider": {"name": "vector", "driver": "Oracle",
- "parameters": {"dbname": "ORCL", "port": "3306",
- "user": "scott", "password": "tiger",
- "table": "test"}}
- <span class="bg">},
- {</span>
- "provider": {"name": "vector", "driver": "Spatialite",
- "parameters": {"file": "test.sqlite", "layer": "test"}}
- <span class="bg">}
- }
-}</span>
-</pre>
-
-<p>
-Vector provider parameters:
-</p>
-
-<dl>
- <dt>driver</dt>
- <dd>
- String used to identify an OGR driver. Currently, only
- <samp>"ESRI Shapefile"</samp>, <samp>"PostgreSQL"</samp>, and
- <samp>"GeoJSON"</samp> are supported as data source drivers, with
- <samp>"postgis"</samp> and <samp>"shapefile"</samp> accepted as
- synonyms. Not case-sensitive.
- </dd>
- <dt>parameters</dt>
- <dd>
- Dictionary of parameters for each driver.
- <br>
- <dl>
- <dt>PostgreSQL, MySQL and Oracle</dt>
- <dd>
- <samp>"dbname"</samp> parameter is required, with name of database.
- <samp>"host"</samp>, <samp>"user"</samp>, and <samp>"password"</samp>
- are optional connection parameters. One of <samp>"table"</samp> or
- <samp>"query"</samp> is required, with a table name in the first case
- and a complete SQL query in the second.
- </dd>
- <dt>Shapefile and GeoJSON</dt>
- <dd>
- <samp>"file"</samp> parameter is required, with filesystem path to
- data file.
- </dd>
- <dt>Spatialite</dt>
- <dd>
- <samp>"file"</samp> parameter is required, with filesystem path to
- data file.
- <samp>"layer"</samp> parameter is required, and is the name of
- the SQLite table.
- </dd>
- </dl>
- </dd>
- <dt>properties</dt>
- <dd>
- Optional list or dictionary of case-sensitive output property names.
- <br>
- If omitted, all fields from the data source will be included in response.
- If a list, treated as a whitelist of field names to include in response.
- If a dictionary, treated as a whitelist and re-mapping of field names.
- </dd>
- <dt>clipped</dt>
- <dd>
- Default is <samp>true</samp>.
- <br>
- Boolean flag for optionally clipping the output geometries to the
- bounds of the enclosing tile, or the string value <samp>"padded"</samp>
- for clipping to the bounds of the tile plus 5%. This results in incomplete
- geometries, dramatically smaller file sizes, and improves performance and
- compatibility with <a href="http://polymaps.org">Polymaps</a>.
- </dd>
- <dt>projected</dt>
- <dd>
- Default is <samp>false</samp>.
- <br>
- Boolean flag for optionally returning geometries in projected rather than
- geographic coordinates. Typically this means <samp>EPSG:900913</samp> a.k.a.
- spherical mercator projection. Stylistically a poor fit for GeoJSON, but
- useful when returning Arc GeoServices responses.
- </dd>
- <dt>precision</dt>
- <dd>
- Default is <samp>6</samp>.
- <br>
- Optional number of decimal places to use for floating point values.
- </dd>
- <dt>spacing</dt>
- <dd>
- Optional number of tile pixels for spacing geometries in responses. Used
- to cut down on the number of returned features by ensuring that only those
- features at least this many pixels apart are returned. Order of features
- in the data source matters: early features beat out later features.
- </dd>
- <dt>verbose</dt>
- <dd>
- Default is <samp>false</samp>.
- <br>
- Boolean flag for optionally expanding output with additional whitespace
- for readability. Results in larger but more readable GeoJSON responses.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Vector.html">TileStache.Vector</a>
-for more information.
-</p>
-
-<h4><a id="url-template-provider" name="url-template-provider">URL Template</a> <a href="#url-template-provider" class="permalink">¶</a></h4>
-
-<p>
-Templated URL provider, to pass through and cache tiles from WMS servers.
-</p>
-
-<p>
-Example UrlTemplate provider configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": { … }.
- "layers":
- {
- "roads":
- {</span>
- "provider":
- {
- "name": "url template",
- "template": "http://example.com/?bbox=$xmin,$ymin,$xmax,$ymax"
- }
- <span class="bg">}
- }
-}</span>
-</pre>
-
-<p>
-UrlTemplate provider parameters:
-</p>
-
-<dl>
- <dt>template</dt>
- <dd>
- String with substitutions suitable for use in
- <a href="http://docs.python.org/library/string.html#string.Template">string.Template</a>.
- The variables available for substitution are <var>width</var>,
- <var>height</var> (in pixels), <var>srs</var> (in
- <a href="http://trac.osgeo.org/proj/wiki/GenParms">PROJ.4 format</a>),
- <var>xmin</var>, <var>ymin</var>, <var>xmax</var>, <var>ymax</var> (in
- projected map units), and <var>zoom</var>.
- Example:
- <samp>"http://example.com/?bbox=$xmin,$ymin,$xmax,$ymax&bboxSR=102113&size=$width,$height&imageSR=102113&format=jpg&f=image"</samp>.
- </dd>
- <dt>referer</dt>
- <dd>
- Optional string with HTTP Referer URL to send to WMS server.
- Some WMS servers use the Referer request header to authenticate requests;
- this parameter provides one.
- </dd>
- <dt>source projection</dt>
- Names a geographic projection, explained in <a href="#projections">Projections</a>, that
- coordinates should be transformed to for requests.
- </dd>
- <dt>timeout</dt>
- Defines a timeout in seconds for the request.
- If not defined, the global default timeout setting will be used.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Providers.html#UrlTemplate">TileStache.Providers.UrlTemplate</a>
-for more information.
-</p>
-
-<h4><a id="mbtiles-provider" name="mbtiles-provider">MBTiles</a> <a href="#mbtiles-provider" class="permalink">¶</a></h4>
-
-<p>
-Provider that reads stored images from <a href="http://mbtiles.org/">MBTiles tilesets</a>.
-</p>
-
-<p>
-Example MBTiles provider configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": { … }.
- "layers":
- {
- "roads":
- {</span>
- "provider":
- {
- "name": "mbtiles",
- "tileset": "collection.mbtiles"
- }
- <span class="bg">}
- }
-}</span>
-</pre>
-
-<p>
-MBTiles provider parameters:
-</p>
-
-<dl>
- <dt>tileset</dt>
- <dd>
- Required local file path to MBTiles tileset file, a SQLite 3 database file.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.MBTiles.html#Provider">TileStache.MBTiles.Provider</a>
-for more information.
-</p>
-
-<h4><a id="mapnik-grid-provider" name="mapnik-grid-provider">Mapnik Grid</a> <a href="#mapnik-grid-provider" class="permalink">¶</a></h4>
-
-<p>
-Built-in Mapnik <a href="https://github.com/mapbox/utfgrid-spec/blob/master/1.2/utfgrid.md">UTF Grid</a> provider,
-renders JSON raster objects from Mapnik 2.0+.
-</p>
-
-<p>
-Example Mapnik Grid provider configurations:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": { … }.
- "layers":
- {
- "one-grid":
- {</span>
- "provider":
- {
- "name": "mapnik grid",
- "mapfile": "style.xml",
- "layer_index": 1
- },
- <span class="bg">}
- "two-grids":
- {</span>
- "provider":
- {
- "name": "mapnik grid",
- "mapfile": "style.xml",
- "layers":
- [
- [2, ["population"]],
- [0, ["name", "population"]]
- ]
- }
- <span class="bg">}
- }
-}</span>
-</pre>
-
-<p>
-Mapnik Grid provider parameters:
-</p>
-
-<dl>
- <dt>mapfile</dt>
- <dd>
- Required local file path to Mapnik XML file.
- </dd>
- <dt>fields</dt>
- <dd>
- Optional array of field names to return in the response, defaults to all.
- An empty list will return no field names, while a value of <samp>null</samp>
- is equivalent to all.
- </dd>
- <dt>layer_index</dt>
- <dd>
- Optional layer from the mapfile to render, defaults to <samp>0</samp> (first layer).
- </dd>
- <dt>layers</dt>
- <dd>
- Optional ordered list of (layer_index, fields) to combine; if provided
- <var>layers</var> overrides both <var>layer_index</var> and <var>fields</var>
- arguments.
- </dd>
- <dt>scale</dt>
- <dd>
- Optional scale factor of output raster, defaults to <samp>4</samp> (64×64).
- </dd>
- <dt>layer_id_key</dt>
- <dd>
- Optional. If set, each item in the <samp>"data"</samp> property will have
- its source mapnik layer name added, keyed by this value. Useful for
- distingushing between data items.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Mapnik.html#GridProvider">TileStache.Mapnik.GridProvider</a>
-for more information.
-</p>
-
-<h4><a id="sandwich-provider" name="sandwich-provider">Pixel Sandwich</a> <a href="#sandwich-provider" class="permalink">¶</a></h4>
-
-<p>
-The Sandwich Provider supplies a Photoshop-like rendering pipeline, making it
-possible to use the output of other configured tile layers as layers or masks
-to create a combined output. Sandwich is modeled on Lars Ahlzen’s
-<a href="http://www.toposm.com/">TopOSM</a>.
-</p>
-
-<p>
-Sandwich require the external <a href="http://github.com/migurski/Blit">Blit library</a> to function.
-</p>
-
-<p>
-Example Sandwich provider configurations:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": { … }.
- "layers":
- {
- </span>"sandwiches":
- {
- "provider":
- {
- "name": "Sandwich",
- "stack":
- [
- {"src": "base"},
- {"src": "outlines", "mask": "halos"},
- {"src": "streets"}
- ]
- }
- }<span class="bg">,
- </span>"base"<span class="bg">:
- {
- "provider": {"name": "mapnik", "mapfile": "mapnik-base.xml"}
- },
- </span>"halos"<span class="bg">:
- {
- "provider": {"name": "mapnik", "mapfile": "mapnik-halos.xml"},
- "metatile": {"buffer": 128}
- },
- </span>"outlines"<span class="bg">:
- {
- "provider": {"name": "mapnik", "mapfile": "mapnik-outlines.xml"},
- "metatile": {"buffer": 16}
- },
- </span>"streets"<span class="bg">:
- {
- "provider": {"name": "mapnik", "mapfile": "mapnik-streets.xml"},
- "metatile": {"buffer": 128}
- }
- }
-}</span>
-</pre>
-
-<p>
-Sandwich provider parameters:
-</p>
-
-<dl>
- <dt>stack</dt>
- <dd>
- Required layer or stack of layers that can be combined to create output.
- The stack is a list, with solid color or raster layers from elsewhere
- in the configuration, and is described in detail in the dedicated
- <a href="TileStache.Sandwich.html">Sandwich documentation</a>.
- </dd>
-</dl>
-
-<p>
-See
-<a href="TileStache.Sandwich.html">TileStache.Sandwich</a>
-for more information.
-</p>
-
-<h4><a id="additional-providers" name="additional-providers">Additional Providers</a> <a href="#additional-providers" class="permalink">¶</a></h4>
-
-<p>
-New providers with functionality that’s not strictly core to TileStache first appear in
-<a href="TileStache.Goodies.Providers.html">TileStache.Goodies.Providers</a>.
-</p>
-
-<h5>Grid</h5>
-
-<p>
-Grid rendering for TileStache. UTM provider draws gridlines in tiles,
-in transparent images suitable for use as map overlays. See
-<a href="TileStache.Goodies.Providers.Grid.html">TileStache.Goodies.Providers.Grid</a>
-for more information.
-</p>
-
-<h5>PostGeoJSON</h5>
-
-<p>
-Provider that returns GeoJSON data responses from PostGIS queries. This is an
-example of a provider that does not return an image, but rather queries a
-database for raw data and replies with a string of GeoJSON. For example, it’s
-possible to retrieve data for locations of OpenStreetMap points of interest
-based on a query with a bounding box intersection. See
-<a href="TileStache.Goodies.Providers.PostGeoJSON.html">TileStache.Goodies.Providers.PostGeoJSON</a>
-for more information.
-</p>
-
-<h5>SolrGeoJSON</h5>
-
-<p>
-Provider that returns GeoJSON data responses from Solr spatial queries. This is
-an example of a provider that does not return an image, but rather queries a
-Solr instance for raw data and replies with a string of GeoJSON. See
-<a href="TileStache.Goodies.Providers.SolrGeoJSON.html">TileStache.Goodies.Providers.SolrGeoJSON</a>
-for more information.
-</p>
-
-<h5>Composite</h5>
-
-<p>
-Layered, composite rendering for TileStache. See
-<a href="TileStache.Goodies.Providers.Composite.html">TileStache.Goodies.Providers.Composite</a>
-for more information.
-</p>
-
-<h5>MirrorOSM</h5>
-
-<p>
-Requests for tiles have the side effect of running
-<a href="http://wiki.openstreetmap.org/wiki/Osm2pgsql">osm2pgsql</a> to populate
-a PostGIS database of OpenStreetMap data from a remote API source. It would be
-normal to use this provider outside the regular confines of a web server,
-perhaps with a call to <code>tilestache-seed.py</code> governed by a cron job or
-some other out-of-band process. See
-<a href="TileStache.Goodies.Providers.MirrorOSM.html">TileStache.Goodies.Providers.MirrorOSM</a>
-for more information.
-</p>
-
-<h3><a id="projections" name="projections">Projections</a> <a href="#projections" class="permalink">¶</a></h3>
-
-<p>
-A Projection defines the relationship between the rendered tiles and the
-underlying geographic data. Generally, just one popular projection is used for
-most web maps, <samp>"spherical mercator"</samp>.
-</p>
-
-<p>
-Provided projections:
-</p>
-
-<dl>
- <dt>spherical mercator</dt>
- <dd>
- Projection for most commonly-used web map tile scheme, equivalent to
- <code>EPSG:900913</code>. The simplified projection used here is described
- in greater detail at
- <a href="http://trac.openlayers.org/wiki/SphericalMercator">openlayers.org</a>.
- </dd>
-
- <dt>WGS84</dt>
- <dd>
- Unprojected projection for the other commonly-used web map tile scheme,
- equivalent to <code>EPSG:4326</code>.
- </dd>
-</dl>
-
-<p>
-You can define your own projection, with a module and object name as arguments:
-</p>
-
-<pre>
-<span class="bg">"layer-name": {
- ...</span>
- "projection": "Module:Object",
-<span class="bg">}</span>
-</pre>
-
-<p>
-The object must include methods that convert between coordinates, points, and
-locations. See the included mercator and WGS84 implementations for example.
-You can also instantiate a projection class using this syntax:
-</p>
-
-<pre>
-<span class="bg">"layer-name": {
- ...</span>
- "projection": "Module:Object()"
-<span class="bg">}</span>
-</pre>
-
-<p>
-See
-<a href="TileStache.Geography.html">TileStache.Geography</a>
-for more information.
-</p>
-
-<h4><a id="metatiles" name="metatiles">Metatiles</a> <a href="#metatiles" class="permalink">¶</a></h4>
-
-<p>
-Metatiles are larger areas to be rendered at one time, often used because it’s
-more efficient to render a large number of contiguous tiles at once than each
-one separately.
-</p>
-
-<p>
-Example metatile configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": …,
- "layers":
- {
- "example-name":
- {
- "provider": { … },</span>
- "metatile":
- {
- "rows": 4,
- "columns": 4,
- "buffer": 64
- }
- <span class="bg">}
- }
-}</span>
-</pre>
-
-<p>
-This example metatile is four rows tall and four columns wide with a buffer
-of 64 pixels, for a total bitmap size of 4 × 256 + 64 × 2 = <strong>1152</strong>.
-</p>
-
-<p>
-Metatile parameters:
-</p>
-
-<dl>
- <dt>rows</dt>
- <dd>
- Height of the metatile measured in tiles.
- </dd>
-
- <dt>columns</dt>
- <dd>
- Width of the metatile measured in tiles.
- </dd>
-
- <dt>buffer</dt>
- <dd>
- Buffer area around the metatile, measured in pixels. This is useful for
- providers with labels or icons, where it’s necessary to draw a bit extra
- around the edges to ensure that text is not cut off.
- </dd>
-</dl>
-
-<h4><a id="preview" name="preview">Preview</a> <a href="#preview" class="permalink">¶</a></h4>
-
-<p>
-TileStache includes a built-in slippy map preview, that can be viewed in a
-browser using the URL <samp>/{layer name}/preview.html</samp>, e.g.
-<samp>http://example.org/example-name/preview.html</samp>. The settings for
-this preview are completely optional, but can be set on a per-layer basis
-for control over starting location and file extension.
-</p>
-
-<p>
-Example preview configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": …,
- "layers":
- {
- "example-name":
- {
- "provider": { … },</span>
- "preview":
- {
- "lat": 37.80439,
- "lon": -122.27127,
- "zoom": 15,
- "ext": "jpg"
- }
- <span class="bg">}
- }
-}</span>
-</pre>
-
-<p>
-This example preview displays JPG tiles, and is centered on
-<a href="http://osm.org/go/TZNQsg5C--">37.80439, -122.27127 at zoom 15</a>.
-</p>
-
-<p>
-Preview parameters:
-</p>
-
-<dl>
- <dt>lat</dt>
- <dd>
- Starting latitude in degrees.
- </dd>
-
- <dt>lon</dt>
- <dd>
- Starting longitude in degrees.
- </dd>
-
- <dt>zoom</dt>
- <dd>
- Starting zoom level.
- </dd>
-
- <dt>ext</dt>
- <dd>
- Filename extension, e.g. <samp>"png"</samp>.
- </dd>
-</dl>
-
-<h4><a id="index-page" name="index-page">Index Page</a> <a href="#index-page" class="permalink">¶</a></h4>
-
-<p>
-TileStache supports configurable index pages for the front page of an instance.
-A custom index can be specified as a filename relative to the configuration
-location. Typically an HTML document would be given here, but other kinds of
-files such as images can be used, with MIME content-type headers determined by
-<a href="http://docs.python.org/library/mimetypes.html#mimetypes.guess_type">mimetypes.guess_type</a>.
-A simple text greeting is displayed if no index is provided.
-</p>
-
-<p>
-Example index page configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": …,
- "layers": …,</span>
- "index": "filename.html"
- <span class="bg">}
-}</span>
-</pre>
-
-<p>
-Example index page configuration using a remote image:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": …,
- "layers": …,</span>
- "index": "http://tilestache.org/mustaches.jpg"
- <span class="bg">}
-}</span>
-</pre>
-
-<h4><a id="logging" name="logging">Logging</a> <a href="#logging" class="permalink">¶</a></h4>
-
-<p>
-TileStache includes basic support for Python’s built-in
-<a href="http://docs.python.org/library/logging.html">logging system</a>, with
-a logging level settable in the main configuration file. Possible logging levels
-include <samp>"debug"</samp>, <samp>"info"</samp>, <samp>"warning"</samp>,
-<samp>"error"</samp> and <samp>"critical"</samp>, described in the
-<a href="http://docs.python.org/howto/logging.html">basic logging tutorial</a>.
-</p>
-
-<p>
-Example logging configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": …,
- "layers": …,</span>
- "logging": "debug"
- <span class="bg">}
-}</span>
-</pre>
-
-<h2><a id="extending-tilestache" name="extending-tilestache">Extending TileStache</a> <a href="#extending-tilestache" class="permalink">¶</a></h2>
-
-<p>
-TileStache relies on <a href="http://en.wikipedia.org/wiki/Duck_typing">duck typing</a>
-rather than inheritance for extensibility, so all guidelines for customization
-below explain what methods and properties must be defined on objects for them
-to be valid as providers, caches, and configurations.
-</p>
-
-<h3><a id="custom-providers" name="custom-providers">Providers</a> <a href="#custom-providers" class="permalink">¶</a></h3>
-
-<p>
-Example external provider configuration:
-</p>
-
-<pre>
-<span class="bg">{
- "cache": …,
- "layers":
- {
- "example-name":
- {</span>
- "provider":
- {
- "class": "Module:Classname",
- "kwargs": {"frob": "yes"}
- }
- <span class="bg">}
- }
-}</span>
-</pre>
-
-<p>
-The <var>class</var> value is split up into module and classname, and
-dynamically included. If this doesn’t work for some reason, TileStache will
-fail loudly to let you know. The <var>kwargs</var> value is fed to the class
-constructor as a dictionary of keyword args. If your defined class doesn’t
-accept any of these keyword arguments, TileStache will throw an exception.
-</p>
-
-<p>
-A provider must offer at least one of two methods for rendering map areas:
-<code>renderTile</code> or <code>renderArea</code>. A provider must also accept
-an instance of <code>Layer</code> as the first argument to its constructor.
-</p>
-
-<p>
-Return value of both <code>renderTile</code> and <code>renderArea</code> is an
-object with a <code>save</code> method that can accept a file-like object and
-a format name, typically an instance of the <code>PIL.Image</code> object but
-allowing for creation of providers that save text, raw data or other non-image
-response.
-</p>
-
-<p>
-A minimal provider stub class:
-</p>
-
-<pre>
-class ProviderStub:
-
- def __init__(self, layer):
- # create a new provider for a layer
- raise NotImplementedError
-
- def renderTile(self, width, height, srs, coord):
- # return an object with a PIL-like save() method for a tile
- raise NotImplementedError
-
- def renderArea(self, width, height, srs, xmin, ymin, xmax, ymax, zoom):
- # return an object with a PIL-like save() method for an area
- raise NotImplementedError
-</pre>
-
-<p>
-In cases where a provider generates a response that should not be cached,
-<code>renderTile</code> and <code>renderArea</code> may raise the
-<a href="TileStache.Core.html#NoTileLeftBehind">Core.NoTileLeftBehind</a>
-exception in lieu of a normal response. The exception is constructed using the
-intended response object, but nothing will be written to cache. This feature
-might useful in cases where a full tileset is being rendered for static
-hosting, and you don’t want millions of identical ocean tiles.
-</p>
-
-<p>
-See
-<a href="TileStache.Providers.html">TileStache.Providers</a>
-for more information on custom providers and
-<a href="TileStache.Goodies.Providers.html">TileStache.Goodies.Providers</a>
-for examples of custom providers.
-</p>
-
-<h4><a id="provider-rendertile" name="provider-rendertile"><code>provider.renderTile</code></a> <a href="#provider-rendertile" class="permalink">¶</a></h4>
-
-<p>
-Draws a single tile at a time.
-</p>
-
-<p>
-Arguments to <code>renderTile</code>:
-</p>
-
-<dl>
- <dt>width</dt>
- <dd>
- Pixel width of tile, typically <samp>256</samp>.
- </dd>
-
- <dt>height</dt>
- <dd>
- Pixel height of tile, typically <samp>256</samp>.
- </dd>
-
- <dt>srs</dt>
- <dd>
- Projection as Proj4 string.
- <samp>"+proj=longlat +ellps=WGS84 +datum=WGS84"</samp> is an example, see
- <a href="TileStache.Geography.html">TileStache.Geography</a>
- for actual values.
- </dd>
-
- <dt>coord</dt>
- <dd>
- Coordinate object representing a single tile.
- </dd>
-</dl>
-
-<p>
-Return value of <code>renderTile</code> is a
-<a href="http://effbot.org/imagingbook/image.htm#Image.save"><code>PIL.Image</code></a>
-or other saveable object, used like this:
-</p>
-
-<pre>
-provider.renderTile(…).save(file, "XML")
-</pre>
-
-<h4><a id="provider-renderarea" name="provider-renderarea"><code>provider.renderArea</code></a> <a href="#provider-renderarea" class="permalink">¶</a></h4>
-
-<p>
-Draws a variably-sized area, and is used when drawing metatiles.
-</p>
-
-<p>
-Non-image providers and metatiles do not mix. If your provider returns JSON,
-plaintext, XML, or some other non-PIL format, implement only the
-<code>renderTile</code> method.
-</p>
-
-<p>
-Arguments to <code>renderArea</code>:
-</p>
-
-<dl>
- <dt>width</dt>
- <dd>
- Pixel width of tile, typically <samp>256</samp>.
- </dd>
-
- <dt>height</dt>
- <dd>
- Pixel height of tile, typically <samp>256</samp>.
- </dd>
-
- <dt>srs</dt>
- <dd>
- Projection as Proj4 string.
- <samp>"+proj=longlat +ellps=WGS84 +datum=WGS84"</samp> is an example, see
- <a href="TileStache.Geography.html">TileStache.Geography</a>
- for actual values.
- </dd>
-
- <dt>xmin</dt>
- <dd>
- Minimum <var>x</var> boundary of rendered area in projected coordinates.
- </dd>
-
- <dt>ymin</dt>
- <dd>
- Minimum <var>y</var> boundary of rendered area in projected coordinates.
- </dd>
-
- <dt>xmax</dt>
- <dd>
- Maximum <var>x</var> boundary of rendered area in projected coordinates.
- </dd>
-
- <dt>ymax</dt>
- <dd>
- Maximum <var>y</var> boundary of rendered area in projected coordinates.
- </dd>
-
- <dt>zoom</dt>
- <dd>
- Zoom level of final map. Technically this can be derived from the other
- arguments, but that’s a hassle so we’ll pass it in explicitly.
- </dd>
-</dl>
-
-<p>
-Return value of <code>renderArea</code> is a
-<a href="http://effbot.org/imagingbook/image.htm#Image.save"><code>PIL.Image</code></a>
-or other saveable object, used like this:
-</p>
-
-<pre>
-provider.renderArea(…).save(file, "PNG")
-</pre>
-
-<h4><a id="provider-gettypebyextension" name="provider-gettypebyextension"><code>provider.getTypeByExtension</code></a> <a href="#provider-gettypebyextension" class="permalink">¶</a></h4>
-
-<p>
-A provider may offer a method for custom response types,
-<code>getTypeByExtension</code>. This method returns a tuple with two strings:
-a mime-type and a format.
-</p>
-
-<p>
-Arguments to <code>getTypeByExtension</code>:
-</p>
-
-<dl>
- <dt>extension</dt>
- <dd>
- Filename extension string, e.g. <samp>"png"</samp>, <samp>"json"</samp>, etc.
- </dd>
-</dl>
-
-<h3><a id="custom-caches" name="custom-caches">Caches</a> <a href="#custom-caches" class="permalink">¶</a></h3>
-
-<p>
-Example external provider configuration:
-</p>
-
-<pre>
-<span class="bg">{</span>
- "cache":
- {
- "class": "Module:Classname",
- "kwargs": {"frob": "yes"}
- },
- <span class="bg">"layers": { … }
-}</span>
-</pre>
-
-<p>
-The <var>class</var> value is split up into module and classname, and
-dynamically included. If this doesn’t work for some reason, TileStache will
-fail loudly to let you know. The <var>kwargs</var> value is fed to the class
-constructor as a dictionary of keyword args. If your defined class doesn’t
-accept any of these keyword arguments, TileStache will throw an exception.
-</p>
-
-<p>
-A cache must provide all of these five methods: <code>lock</code>,
-<code>unlock</code>, <code>remove</code>, <code>read</code>, and <code>save</code>.
-</p>
-
-<p>
-Each method requires three arguments:
-</p>
-
-<dl>
- <dt>layer</dt>
- <dd>
- Instance of a layer.
- </dd>
-
- <dt>coord</dt>
- <dd>
- Single Coordinate that represents a tile.
- </dd>
-
- <dt>format</dt>
- <dd>
- String like <samp>"png"</samp> or <samp>"jpg"</samp> that is used as a
- filename extension.
- </dd>
-</dl>
-
-<p>
-The <code>save</code> method accepts an additional argument <i>before the others</i>:
-</p>
-
-<dl>
- <dt>body</dt>
- <dd>
- Raw content to save to the cache.
- </dd>
-</dl>
-
-<p>
-A minimal cache stub class:
-</p>
-
-<pre>
-class CacheStub:
-
- def lock(self, layer, coord, format):
- # lock a tile
- raise NotImplementedError
-
- def unlock(self, layer, coord, format):
- # unlock a tile
- raise NotImplementedError
-
- def remove(self, layer, coord, format):
- # remove a tile
- raise NotImplementedError
-
- def read(self, layer, coord, format):
- # return raw tile content from cache
- raise NotImplementedError
-
- def save(self, body, layer, coord, format):
- # save raw tile content to cache
- raise NotImplementedError
-</pre>
-
-<p>
-See
-<a href="TileStache.Caches.html">TileStache.Caches</a>
-for more information on custom caches and
-<a href="TileStache.Goodies.Caches.html">TileStache.Goodies.Caches</a>
-for examples of custom caches.
-</p>
-
-<h3><a id="custom-configuration" name="custom-configuration">Configuration</a> <a href="#custom-configuration" class="permalink">¶</a></h3>
-
-<p>
-A complete configuration object includes <var>cache</var>,
-<var>layers</var>, and <var>dirpath</var> properties and
-optional <var>index</var> property:
-</p>
-
-<dl>
- <dt>cache</dt>
- <dd>
- Cache instance, e.g.
- <code><a href="TileStache.Caches.html#Disk">TileStache.Caches.Disk</a></code>
- etc. See
- <a href="TileStache.Caches.html">TileStache.Caches</a>
- for details on what makes a usable cache.
- </dd>
-
- <dt>layers</dt>
- <dd>
- Dictionary of layers keyed by name.
- </dd>
-
- <dt>dirpath</dt>
- <dd>
- Local filesystem path for this configuration, useful for expanding relative
- paths.
- </dd>
-
- <dt>index</dt>
- <dd>
- Two-element tuple with mime-type and content for installation index page.
- </dd>
-</dl>
-
-<p>
-When creating a custom <var>layers</var> dictionary, e.g. for dynamic layer
-collections backed by some external configuration, these
-<a href="http://docs.python.org/library/stdtypes.html#mapping-types-dict">dictionary methods</a>
-must be provided for a complete collection of layers:
-</p>
-
-<dl>
- <dt>keys</dt>
- <dd>
- Return list of layer name strings.
- </dd>
-
- <dt>items</dt>
- <dd>
- Return list of (name, layer) pairs.
- </dd>
-
- <dt>__contains__</dt>
- <dd>
- Return boolean true if given key is an existing layer.
- </dd>
-
- <dt>__getitem__</dt>
- <dd>
- Return existing layer object for given key or raise <code>KeyError</code>.
- </dd>
-</dl>
-
-<p>
-A minimal layers dictionary stub class:
-</p>
-
-<pre>
-class LayersStub:
-
- def keys(self):
- # return a list of key strings
- raise NotImplementedError
-
- def items(self):
- # return a list of (key, layer) tuples
- raise NotImplementedError
-
- def __contains__(self, key):
- # return True if the key is here
- raise NotImplementedError
-
- def __getitem__(self, key):
- # return the layer named by the key
- raise NotImplementedError
-</pre>
-
-</body>
-</html>
diff --git a/doc/tilestache-clean.html b/doc/tilestache-clean.html
deleted file mode 100644
index a81c525..0000000
--- a/doc/tilestache-clean.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module tilestache-clean</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>tilestache-clean</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>tilestache-clean.py will flush your cache.<br>
- <br>
-This script is intended to be run directly. This example cleans the area around<br>
-West Oakland (<a href="http://sta.mn/ck">http://sta.mn/ck</a>) in the "osm" layer, for zoom levels 12-15:<br>
- <br>
- tilestache-clean.py -c ./config.json -l osm -b 37.79 -122.35 37.83 -122.25 -e png 12 13 14 15<br>
- <br>
-See `tilestache-clean.py --help` for more information.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-generateCoordinates"><strong>generateCoordinates</strong></a>(ul, lr, zooms, padding)</dt><dd><tt>Generate a stream of (offset, count, coordinate) tuples for seeding.<br>
- <br>
-Flood-fill coordinates based on two corners, a list of zooms and padding.</tt></dd></dl>
- <dl><dt><a name="-listCoordinates"><strong>listCoordinates</strong></a>(filename)</dt><dd><tt>Generate a stream of (offset, count, coordinate) tuples for seeding.<br>
- <br>
-Read coordinates from a file with one Z/X/Y coordinate per line.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>defaults</strong> = {'bbox': (37.777, -122.352, 37.839, -122.226), 'extension': 'png', 'padding': 0, 'verbose': True}<br>
-<strong>parser</strong> = <optparse.OptionParser instance><br>
-<strong>path</strong> = ['', '/Library/Frameworks/SQLite3.framework/Versions/B/Python/2.7', '/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7', '/Library/Python/2.7/site-packages/numpy-override', '/Library/Frameworks/GDAL.framework/Versions/1.10/Python/2.7/site-packages', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python27.zip', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python2.7', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python2.7/plat-darwin' [...]
-<strong>stderr</strong> = <open file '<stderr>', mode 'w'></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/tilestache-compose.html b/doc/tilestache-compose.html
deleted file mode 100644
index 99de22a..0000000
--- a/doc/tilestache-compose.html
+++ /dev/null
@@ -1,163 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module tilestache-compose</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>tilestache-compose</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ModestMaps.html">ModestMaps</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
-<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ModestMaps.Providers.html#IMapProvider">ModestMaps.Providers.IMapProvider</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="tilestache-compose.html#Provider">Provider</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="tilestache-compose.html#BadComposure">BadComposure</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="BadComposure">class <strong>BadComposure</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
-
-<tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="tilestache-compose.html#BadComposure">BadComposure</a></dd>
-<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list of weak references to the object (if defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><a name="BadComposure-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#BadComposure-__init__">__init__</a>(...) initializes x; see help(type(x)) for signature</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#BadComposure-__new__">__new__</a>(S, ...) -> a new object with type S, a subtype of T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><a name="BadComposure-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#BadComposure-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl>
-
-<dl><dt><a name="BadComposure-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#BadComposure-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl>
-
-<dl><dt><a name="BadComposure-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#BadComposure-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl>
-
-<dl><dt><a name="BadComposure-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#BadComposure-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br>
- <br>
-Use of negative indices is not supported.</tt></dd></dl>
-
-<dl><dt><a name="BadComposure-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="BadComposure-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#BadComposure-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl>
-
-<dl><dt><a name="BadComposure-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#BadComposure-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl>
-
-<dl><dt><a name="BadComposure-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="BadComposure-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#BadComposure-__str__">__str__</a>() <==> str(x)</tt></dd></dl>
-
-<dl><dt><a name="BadComposure-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom> <br>
-<font color="#000000" face="helvetica, arial"><a name="Provider">class <strong>Provider</strong></a>(<a href="ModestMaps.Providers.html#IMapProvider">ModestMaps.Providers.IMapProvider</a>)</font></td></tr>
-
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
-<td colspan=2><tt>Wrapper for TileStache Layer objects that makes them behave like ModestMaps <a href="#Provider">Provider</a> objects.<br>
- <br>
-Requires ModestMaps 1.3.0 or better to support "file://" URLs.<br> </tt></td></tr>
-<tr><td> </td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Provider-__del__"><strong>__del__</strong></a>(self)</dt><dd><tt>Delete any tile that was saved in <a href="#Provider-getTileUrls">getTileUrls</a>().</tt></dd></dl>
-
-<dl><dt><a name="Provider-__init__"><strong>__init__</strong></a>(self, layer, verbose<font color="#909090">=False</font>, ignore_cached<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Provider-getTileUrls"><strong>getTileUrls</strong></a>(self, coord)</dt><dd><tt>Return tile URLs that start with file://, by first retrieving them.</tt></dd></dl>
-
-<dl><dt><a name="Provider-tileHeight"><strong>tileHeight</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Provider-tileWidth"><strong>tileWidth</strong></a>(self)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ModestMaps.Providers.html#IMapProvider">ModestMaps.Providers.IMapProvider</a>:<br>
-<dl><dt><a name="Provider-coordinateLocation"><strong>coordinateLocation</strong></a>(self, location)</dt></dl>
-
-<dl><dt><a name="Provider-locationCoordinate"><strong>locationCoordinate</strong></a>(self, location)</dt></dl>
-
-<dl><dt><a name="Provider-sourceCoordinate"><strong>sourceCoordinate</strong></a>(self, coordinate)</dt></dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-allocate_lock"><strong>allocate_lock</strong></a>(...)</dt><dd><tt><a href="#-allocate_lock">allocate_lock</a>() -> lock object<br>
-(allocate() is an obsolete synonym)<br>
- <br>
-Create a new lock object. See help(LockType) for information about locks.</tt></dd></dl>
- <dl><dt><a name="-close"><strong>close</strong></a>(...)</dt><dd><tt><a href="#-close">close</a>(fd)<br>
- <br>
-Close a file descriptor (for low level IO).</tt></dd></dl>
- <dl><dt><a name="-printlocked"><strong>printlocked</strong></a>(lock, *stuff)</dt></dl>
- <dl><dt><a name="-unlink"><strong>unlink</strong></a>(...)</dt><dd><tt><a href="#-unlink">unlink</a>(path)<br>
- <br>
-Remove a file (same as remove(path)).</tt></dd></dl>
- <dl><dt><a name="-write"><strong>write</strong></a>(...)</dt><dd><tt><a href="#-write">write</a>(fd, string) -> byteswritten<br>
- <br>
-Write a string to a file descriptor.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>defaults</strong> = {'center': (37.8044, -122.2712), 'dimensions': (900, 600), 'verbose': True, 'zoom': 14}<br>
-<strong>mmaps_version</strong> = (1, 4, 6)<br>
-<strong>parser</strong> = <optparse.OptionParser instance><br>
-<strong>path</strong> = ['', '/Library/Frameworks/SQLite3.framework/Versions/B/Python/2.7', '/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7', '/Library/Python/2.7/site-packages/numpy-override', '/Library/Frameworks/GDAL.framework/Versions/1.10/Python/2.7/site-packages', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python27.zip', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python2.7', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python2.7/plat-darwin' [...]
-<strong>stderr</strong> = <open file '<stderr>', mode 'w'></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/tilestache-list.html b/doc/tilestache-list.html
deleted file mode 100644
index af5f611..0000000
--- a/doc/tilestache-list.html
+++ /dev/null
@@ -1,52 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module tilestache-list</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>tilestache-list</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>tilestache-list.py will list your tiles.<br>
- <br>
-This script is intended to be run directly. This example lists tiles in the area<br>
-around West Oakland (<a href="http://sta.mn/ck">http://sta.mn/ck</a>) in the "osm" layer, for zoom levels 12-15:<br>
- <br>
- tilestache-list.py -b 37.79 -122.35 37.83 -122.25 12 13 14 15<br>
- <br>
-See `tilestache-list.py --help` for more information.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="TileStache.MBTiles.html">TileStache.MBTiles</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-generateCoordinates"><strong>generateCoordinates</strong></a>(ul, lr, zooms, padding)</dt><dd><tt>Generate a stream of coordinates for seeding.<br>
- <br>
-Flood-fill coordinates based on two corners, a list of zooms and padding.</tt></dd></dl>
- <dl><dt><a name="-tilesetCoordinates"><strong>tilesetCoordinates</strong></a>(filename)</dt><dd><tt>Generate a stream of (offset, count, coordinate) tuples for seeding.<br>
- <br>
-Read coordinates from an MBTiles tileset filename.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>defaults</strong> = {'bbox': (37.777, -122.352, 37.839, -122.226), 'padding': 0}<br>
-<strong>parser</strong> = <optparse.OptionParser instance><br>
-<strong>path</strong> = ['', '/Library/Frameworks/SQLite3.framework/Versions/B/Python/2.7', '/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7', '/Library/Python/2.7/site-packages/numpy-override', '/Library/Frameworks/GDAL.framework/Versions/1.10/Python/2.7/site-packages', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python27.zip', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python2.7', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python2.7/plat-darwin' [...]
-<strong>stderr</strong> = <open file '<stderr>', mode 'w'></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/tilestache-render.html b/doc/tilestache-render.html
deleted file mode 100644
index cf134ab..0000000
--- a/doc/tilestache-render.html
+++ /dev/null
@@ -1,48 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module tilestache-render</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>tilestache-render</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>tilestache-render.py will warm your cache.<br>
- <br>
-This script is *deprecated* and will be removed in a future TileStache 2.0.<br>
- <br>
-This script is intended to be run directly. This example will save two tiles<br>
-for San Francisco and Oakland to local temporary files:<br>
- <br>
- tilestache-render.py -c ./config.json -l osm 12/655/1582.png 12/656/1582.png<br>
- <br>
-Output for this sample might look like this:<br>
- <br>
- /tmp/tile-_G3uHX.png<br>
- /tmp/tile-pWNfQQ.png<br>
- <br>
-...where each line corresponds to one of the given coordinates, in order.<br>
-You are expected to use these files and then dispose of them.<br>
- <br>
-See `tilestache-render.py --help` for more information.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
-<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="re.html">re</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>parser</strong> = <optparse.OptionParser instance><br>
-<strong>pathinfo_pat</strong> = <_sre.SRE_Pattern object></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/tilestache-seed.html b/doc/tilestache-seed.html
deleted file mode 100644
index 6cd0aee..0000000
--- a/doc/tilestache-seed.html
+++ /dev/null
@@ -1,50 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module tilestache-seed</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>tilestache-seed</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>tilestache-seed.py will warm your cache.<br>
- <br>
-This script is intended to be run directly. This example seeds the area around<br>
-West Oakland (<a href="http://sta.mn/ck">http://sta.mn/ck</a>) in the "osm" layer, for zoom levels 12-15:<br>
- <br>
- tilestache-seed.py -c ./config.json -l osm -b 37.79 -122.35 37.83 -122.25 -e png 12 13 14 15<br>
- <br>
-See `tilestache-seed.py --help` for more information.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-
-<tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td>
-<td width="100%"><dl><dt><a name="-generateCoordinates"><strong>generateCoordinates</strong></a>(ul, lr, zooms, padding)</dt><dd><tt>Generate a stream of (offset, count, coordinate) tuples for seeding.<br>
- <br>
-Flood-fill coordinates based on two corners, a list of zooms and padding.</tt></dd></dl>
- <dl><dt><a name="-listCoordinates"><strong>listCoordinates</strong></a>(filename)</dt><dd><tt>Generate a stream of (offset, count, coordinate) tuples for seeding.<br>
- <br>
-Read coordinates from a file with one Z/X/Y coordinate per line.</tt></dd></dl>
- <dl><dt><a name="-parseConfigfile"><strong>parseConfigfile</strong></a>(configpath)</dt><dd><tt>Parse a configuration file and return a raw dictionary and dirpath.<br>
- <br>
-Return value can be passed to TileStache.Config.buildConfiguration().</tt></dd></dl>
- <dl><dt><a name="-tilesetCoordinates"><strong>tilesetCoordinates</strong></a>(filename)</dt><dd><tt>Generate a stream of (offset, count, coordinate) tuples for seeding.<br>
- <br>
-Read coordinates from an MBTiles tileset filename.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
-<tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
-<td width="100%"><strong>defaults</strong> = {'bbox': (37.777, -122.352, 37.839, -122.226), 'enable_retries': False, 'padding': 0, 'verbose': True}<br>
-<strong>parser</strong> = <optparse.OptionParser instance><br>
-<strong>path</strong> = ['', '/Library/Frameworks/SQLite3.framework/Versions/B/Python/2.7', '/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7', '/Library/Python/2.7/site-packages/numpy-override', '/Library/Frameworks/GDAL.framework/Versions/1.10/Python/2.7/site-packages', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python27.zip', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python2.7', '/Users/migurski/Sites/TileStache/venv-tilestache/lib/python2.7/plat-darwin' [...]
-<strong>stderr</strong> = <open file '<stderr>', mode 'w'></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/tilestache-server.html b/doc/tilestache-server.html
deleted file mode 100644
index 1e8bf42..0000000
--- a/doc/tilestache-server.html
+++ /dev/null
@@ -1,37 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module tilestache-server</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom> <br>
-<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>tilestache-server</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a></font></td></tr></table>
- <p><tt>tilestache-server.py will serve your cache.<br>
- <br>
-This script is intended to be run directly from the command line.<br>
- <br>
-It is intended for direct use only during development or for debugging TileStache.<br>
- <br>
-For the proper way to configure TileStach for serving tiles see the docs at:<br>
- <br>
-<a href="http://tilestache.org/doc/#serving-tiles">http://tilestache.org/doc/#serving-tiles</a><br>
- <br>
-To use this built-in server, install werkzeug and then run tilestache-server.py:<br>
- <br>
- tilestache-server.py<br>
- <br>
-By default the script looks for a config file named tilestache.cfg in the current directory and then serves tiles on <a href="http://127.0.0.1:8080/">http://127.0.0.1:8080/</a>. <br>
- <br>
-You can then open your browser and view a url like:<br>
- <br>
- <a href="http://localhost:8080/osm/0/0/0.png">http://localhost:8080/osm/0/0/0.png</a><br>
- <br>
-The above layer of 'osm' (defined in the tilestache.cfg) will display an OpenStreetMap<br>
-tile proxied from <a href="http://tile.osm.org/0/0/0.png">http://tile.osm.org/0/0/0.png</a><br>
- <br>
-Check tilestache-server.py --help to change these defaults.</tt></p>
-
-</body></html>
\ No newline at end of file
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/tilestache.git
More information about the Pkg-grass-devel
mailing list