Provided by: tilecache_2.11+ds-3_all bug

NAME

       tilecache - Cache and serve map tiles

DESCRIPTION

       TileCache  is  a BSD licensed tile caching mechanism.  The goal is to make it easy to set up a WMS or TMS
       frontend to any backend data services you might be interested in, using a pluggable caching and rendering
       mechanism.

       TileCache was developed by MetaCarta Labs and released to the public under a BSD license.

       The TileCache was designed as a companion to OpenLayers, the BSD licensed web mapping interface.  If  you
       are using TileCache with OpenLayers, please read the section of this readme which describes how to do so.
       For  additional  help  with  setting  up  TileCache  for use with OpenLayers, please feel free to stop by
       #openlayers, on irc.freenode.net, or to send email to tilecache@openlayers.org.

RUNNING UNDER CGI

       • TileCache should have a cgi installed under /usr/lib/cgi-bin, called tilecache.cgi.  This is accessible
         from http://yourmachine.example.com/cgi-bin/tilecache.cgi.

       • Edit /etc/tilecache.cfg to point the DiskCache to the location you wish to cache tiles, and the  layers
         to point to the map file or WMS server you wish to cache.

       • Visit:

         http://yourmachine.example.com/cgi-bin/tilecache.cgi?LAYERS=basic&SERVICE=WMS&BBOX=-180,-90,0,90

       • Or visit:

         http://yourmachine.example.com/cgi-bin/tilecache.cgi/1.0.0/basic/0/0/0.png

       • If you see a tile, TileCache is working correctly.

RUNNING UNDER MOD_PYTHON

       • Edit  /etc/tilecache.cfg to point the DiskCache to the location you wish to cache tiles, and the layers
         to point to the map file or WMS server you wish to cache.

       • Add the following to your Apache configuration:

         Alias /tiles /var/lib/python-support/python2.4/tilecache/
         <Directory /var/lib/python-support/python2.4/>
              SetHandler python-program
              PythonHandler TileCache.Service
              PythonOption TileCacheConfig /etc/tilecache.cfg
         </Directory>

       • Visit one of the URLs described above, replacing tilecache.cgi with tilecache.py

       • If you see a tile you have set up your configuration correctly. Congrats!

RUNNING STANDALONE (UNDER WSGI)

       TileCache includes standalone HTTP server which uses the WSGI handler.  This  implementation  depends  on
       Python Paste , which can be installed via the python-paste package.

       For versions of Python earlier than 2.5, you will also need to install wsgiref:

       http://cheeseshop.python.org/pypi/wsgiref

       Once you have all the prerequisites installed, simply run:

       /usr/sbin/tilecache_http_server

       This will start a webserver listening on port 8080 (by default), after which you should be able to open:

       http://yourmachine.example.com:8080/1.0.0/basic/0/0/0.png

       to see your first tile.

RUNNING UNDER FASTCGI

       TileCache  includes  a  fastcgi  implementation.  In  order  to use this implementation, you will need to
       install flup, available from:

       http://trac.saddi.com/flup

       This implementation also depends on Python Paste, which can be downloaded via the python-paste package:

       Once you have done this, you can configure your fastcgi server to use tilecache.fcgi.

       Configuring FastCGI is beyond the scope of this documentation.

CONFIGURATION

       TileCache is configured by a config file, defaulting to /etc/tilecache.cfg.  There are several parameters
       to control TileCache layers that are applicable to all layers:

       bbox   The bounding box of the Layer. The resolutions array defaults  to  having  resolutions  which  are
              equal to the bbox divided by 512 (two standard tiles).

       debug  Whether to send debug output to the error.log. Defaults to "yes", can be set to "no"

       description
              Layer description, used in some metadata responses. Default is blank.

       extension
              File  extension  of  the  layer.  Used to request images from WMS servers, as well as when writing
              cache files.

       layers A string used to describe the layers. Typically passed directly  to  the  renderer.  The  WMSLayer
              sends this in the HTTP request, and the MapServerLayer chooses which layer to render based on this
              string. If no layer is provided, the layer name is used to fill this property.

       levels An  integer,  describing  the  number  of  ´zoom  levels´  or  scales  to  support.  Overridden by
              resolutions, if passed.

       mapfile
              The absolute file location of a mapfile. Required for MapServer and Mapnik layers.

       maxResolution
              The maximum resolution. If this is set, a resolutions array is automatically calculated  up  to  a
              number of levels controlled by the ´levels´ option.

       metaTile
              set  to  "yes"  to turn on metaTiling. This will request larger tiles, and split them up using the
              Python Imaging library.  Defaults to "no".

       metaBuffer
              an integer number of pixels to request around the outside of the rendered tile. This  is  good  to
              combat edge effects in various map renderers. Defaults to 10.

       metaSize
              A  comma  separated pair of integers, which is used to determine how many tiles should be rendered
              when using metaTiling. Default is 5,5.

       resolutions
              Comma separate list of resolutions you want the TileCache instance to support.

       size   Comma separated set of integers, describing the width/height of the tiles. Defaults to 256,256

       srs    String describing the SRS value. Default is "EPSG:4326"

       type   The type of layer. Options are: WMSLayer, MapnikLayer, MapServerLayer, ImageLayer, GDAL, ArcXML

       url    URL to use when requesting images from a remote WMS server. Required for WMSLayer.

       watermarkImage
              The watermarkImage parameter is assigned on a per-layer basis.  This is a fully qualified path  to
              an  image  you  would  like to apply to each tile. We recommend you use a watermark image the same
              size as your tiles.  If using the default tile size, you should use a 256x256 image.  NOTE: Python
              Imaging Library DOES NOT support interlaced images.

       watermarkOpacity
              The watermarkOpacity parameter is assigned on a per-layer basis.  This configures the  opacity  of
              the  watermark over the tile, it is a floating point number between 0 and 1. Usage is optional and
              will otherwise default.

       extent_type
              Setting this to ´loose´ will allow TileCache to generate tiles outside the maximum  bounding  box.
              Useful for clients that don´t know when to stop asking for tiles.

       tms_type
              Setting  this to "google" will cause tiles to switch vertical order (that is, following the Google
              style x/y pattern).

USING TILECACHE WITH OPENLAYERS

       To run OpenLayers with TileCache the URL passed to the OpenLayers.Layer.WMS constructor must point to the
       TileCache script, i.e. tilecache.cgi or  tilecache.py.  As  an  example  see  the  example-cgi.html  file
       included in the TileCache distribution, under /usr/share/doc/tilecache/examples/.

       Note:  example-cgi.html  assumes TileCache is set up under CGI (see above). If you set up TileCache under
       mod_python you´d need to slighly modify example-cgi.html: the  URL  passed  to  the  OpenLayers.Layer.WMS
       constructor  must  point to the mod_python script as opposed to the CGI script. Similarly, you would need
       to edit this URL if you were to use TileCache with the standalone HTTP Server or FastCGI.

       The most important thing to do is to ensure that the  OpenLayers  Layer  has  the  same  resolutions  and
       bounding  box as your TileCache layer. You can define the resolutions in OpenLayers via the ´resolutions´
       option or the ´maxResolution´ option on the layer. The maxExtent should be  defined  to  match  the  bbox
       parameter of the TileCache layer.

USING TILECACHE WITH MAPSERVER

       MapServer  has  a  map  level  metadata option, labelcache_map_edge_buffer, which is set automatically by
       TileCache to the metaBuffer plus five when metaTiling is on, if it is not set in the mapfile.

       If you are using MetaTiling, be aware that MapServer generates interlaced PNG files, which PIL  will  not
       read. See http://mapserver.gis.umn.edu/docs/faq/pil_mapscript on how to resolve this.

SEEDING YOUR TILECACHE

       The  tilecache_seed utility will seed tiles in a cache automatically. You will need to have TileCache set
       up in one of the previously described configurations.

   Usage
       /usr/sbin/tilecache_seed [options] <layer> [<zoom start> <zoom stop>]

   Options
       --version
              show the program's version number and exit

       -h, --help
              show the program's help message and exit

       -f, --force
              force recreation of tiles even if they are already in cache

       -b BBOX, --bbox=BBOX
              restrict to specified bounding box where BBOX is in the format "left, bottom, right, top"

       -c TILECACHECONFIG, --config=TILECACHECONFIG
              path to configuration file

       -d DELAY, --delay=DELAY
              delay time between requests (default: 0)

       -p PADDING, --padding=PADDING
              extra margin tiles to seed around target area.  Defaults to 0 (some edge tiles might be  missing).
              A value of 1 ensures all tiles will be created, but some tiles may be wholly outside your bbox

       -r, --reverse
              reverse order of seeding tiles

   Arguments
       layer  same layer name that is in the tilecache.cfg

       zoom start
              Zoom level to start the process

       zoom stop
              Zoom level to end the process

   Seeding by center point and radius
       If  called  without zoom level arguments, tilecache_seed.py will seed zoom levels 5 to 17 and assume that
       it needs to read a list of points and radii from standard input, in the form:

       <lat>,<lon>,<radius>
       <lat>,<lon>,<radius>
       <lat>,<lon>,<radius>
       <lat>,<lon>,<radius>
       <ctrl + d>

       The format of this file is:

       lon    the position(s) to seed longitude

       lat    the position(s) to seed latitude

       radius the radius around the lon/lat to seed in degrees

   Examples
       An example with zoom levels 5 through 12 would be like;

       $ /usr/sbin/tilecache_seed -c /etc/tilecache.cfg -b "-118.12500,31.952162238,-116.015625,34.3071438563" Zip_Codes 5 12

       The bbox can be dropped and defaults to world lonlat(-180,-90,180,90):

       $ /usr/sbin/tilecache_seed.py -c /etc/tilecache.cfg Zip_Codes 0 9

       In center point/radius mode, the zoom level range is not specifiable from the  command-line.  An  example
       usage might look like:

       $ /usr/sbin/tilecache_seed.py -c /etc/tilecache.cfg Zip_Codes
       -118.12500,31.952162238,0.05
       -121.46327,32.345345645,0.08
       <Ctrl+D>

       ... the seeding will then commence ...

CLEANING YOUR TILECACHE

       The  tilecache_clean  utility  will  remove  the  least  recently  accessed tiles from a cache, down to a
       specified size.

   Usage
       /usr/sbin/tilecache_clean [options] <cache_location>

   Options
       --version
              show program´s version number and exit

       -h , --help
              show this help message and exit

       -s SIZE, --size SIZE
              Maximum cache size, in megabytes.

       -e ENTRIES, --entries ENTRIES
              Maximum cache entries. This limits the amount of memory that will be  used  to  store  information
              about tiles to remove.

   Notes
       The  --entries  option to tilecache_clean.py is optional, and is used to regulate how much memory it uses
       to do its bookkeeping. The default value of 1 million will hopefully keep  RAM  utilization  under  about
       100M  on  a  32-bit x86 Linux machine. If tilecache_clean.py doesn´t appear to be keeping your disk cache
       down to an appropriate size, try upping this value.

       tilecache_clean is designed to be run from a cronjob like so:

       00 05 * * *  /usr/sbin/tilecache_clean.py -s500 /var/www/tilecache

TROUBLESHOOTING

       Occasionally, for some reason, when using meta tiles, your server may leave behind lock  files.  If  this
       happens,  there  will be files in your cache directory with the extension ´.lck´. If you are seeing tiles
       not render and taking multiple minutes before returning a 500 error, you may be suffering under  a  stuck
       lock.

       Removing all files with extension ´.lck´ from the cache directory will resolve this problem.

SEE ALSO

       memcached(8)

       http://tilecache.org/

       http://openlayers.org/

       http://wiki.osgeo.org/index.php/WMS_Tiling_Client_Recommendation

       http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification

AUTHOR

       crschmidt@metacarta.com

COPYRIGHT

       (c) 2006-2007 MetaCarta, Inc.  Distributed under the BSD license.

2.03                                               2008-05-19                                       tilecache(8)