tilecache(8)


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 dont
          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 youd 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 programs 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 doesnt 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.





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.