bionic (8) tilecache_http_server.8.gz

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

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