[tiling] Tiling BOF at FOSS4G

Christopher Schmidt crschmidt at crschmidt.net
Tue Sep 12 18:23:26 PDT 2006


Earlier this evening (or, in Swiss time, yesterday evening, since it's
now 2:35AM), there was a BOF for discussing WMS tiling, as previously
discussed on the OSGeo wiki, at
http://wiki.osgeo.org/index.php/WMS_Tile_Caching .

Participants represented all walks of the tiling rainbow, and the
discussion was lively and interesting and largely productive.

Schuyler has much more detailed notes that he plans to type up, but
since the affect of jet lag on me is apparently to become unable to
sleep for more than 4 hours a night, I'm going to type up a few notes
now:

Decisions:
 * The discussion began on the principle that the tiling requests should
   be built on top of WMS -- in other words, a compliant tile request
   is a GetMap request, for backwards compatibility reasons.
 * Metadata for WMS-C will be stored as additional WMS metadata,
   availble via getcapabilities requests. 
 * A number of parameters are required to define the caching scheme in
   use by the server serving the tiles. 
    * Geographic origin of tiles
    * A set of resolutions for which tiles are available
      Resolution is defined as the number of map units per pixel.
    * Tile Size
    * Layer name
    * Projection
    * Format
   Some of these are contrary to the earlier definition on the OSGeo
   wiki: specifically, scale is no longer used, and scale no longer must
   be defined as a specific 'top level', and a factor from there. The
   primary complaint against this comes from cartogrpahers, who
   explained that each country has 'default' scales which are in use.
   (Think 1:24K USGS quads in the US.) Preventing the tiling scheme from
   being able to descirbe these tiles would have been a mistake.
 * However, although it is possible to define these in any way,
   depending on the needs of your client, there will be established a
   set of 'default' parameters which create the first WMS-C profile. The
   exact values of these parameters was a topic of discussion -- agreed
   at the meeting was:
    * Tile Size of 256x256
    * Projection of EPSG:4326
    * Resolutions must contain 1.40625 as top, and must contain at least
      one resolution: resolutions below 1.40625 should be divisors of 2
      of this value.
   Not decided when we ran out of time were:
    * Geographic origin of tiles (but I think we were close to
      '-180,-90' as a decision.)

   The idea here is that if you want your tiles to be used alongside
   other map tiles, the easiest way to do it is to support these
   properties. I feel like there was something else we hadn't yet
   finished discussing, but I don't remember what.
 * Layer name for tiled requests must be a *single layer* -- grouping
   should be done by the provider, or the provider can provide multiple
   caches for different layers if they are prepared to suffer the
   caching properties from having clients request them all.

Possible ideas brought up:   
 * Handling errors. Because tiles are specified requests, it should be
   possible to create a static, non-WMS backed tile server
   (pre-generating the tiles and load balancing over lightweight
   servers). This brought up the case of error handling: an idea was
   suggested to use standard HTTP error codes, but also to encourage the
   content of the 404 to be an image with text in it, to mimic the
   inimage exception (supported by Mapserver at least)
 * Support for 3 different modes (stated somewhere in metadata): "No
   tiling" ( default WMS), "Some tiling" (I serve tiles, but will also
   serve other WMS requests) or "only tiling" (I don't support your
   silly non-tiled matching requests), which is useful for static
   servers.
 
Not yet tackled, but needs to be:
 * Rounding. In order to support the same boxes, a standard for how to
   round bbox requests should be established.

Postponed:

 * Implementation of changes in clients in order to better support
   cachability was put aside for the time being. Although setting up a
   tiling specification does *allow* easier cachability, it doesn't
   depend on it. 
 * Implementation of a "GetTile" request, which requests tiles based on
   a grid with a 'zoom level', was postponed.

Future plans: 
 * Several volunteers (Schuyler Erle, Paul Spencer, Paul Ramsey) offered 
   to help write the prose version of the spec -- I'm hoping some of
   what I typed out will help.
 * The plan is to have a draft implementation prepared in time for the
   next OGC meeting, October 2nd.
 * Hopefully, it will be possible to demonstrate an implementation of
   the tiling schema by that time. 

Possibilities once tiling spec is complete:
 * Create generally useful datasets with fully cached fast served
   tiles. (VMap0, TIGER, etc.) These can then be used by most clients,
   saving the need for repition of effort in generating these tiles
 * (Personal, not brought up at meeting) Tiled WMS directory listing. 
   This is a bit similar to the geodata committee catalog idea brought
   up for OSGeo... only simpler, since you need only provide a single
   WMS URL in order to add it to the catalog

Testing tools:
 * There should be a testing tool which allows you to enter a set of
   caching params, and choose a grid ref (0,0, 0,1, etc.) and a zoom
   level, and have the bbox be generated -- clients can then test
   conformance against this URL. 
 * Server implementations are laregely already complete in the form of
   WMS.

General Info: 
 * Attendence at the BOF was high, around 40-50 people in total. 
 * Developers of Ka-Map, MapBuilder and OpenLayers were in attendance
   (and I feel like I'm missing some other tiling mapping client
   somewhere, but I don't know.)
 * Developers of MapServer and GeoServer.
 * Many many other developers, interested parties, contributors, etc.

All in all, it was far more productive and enjoyable than I expected it
ot be. It was good to see everyone in one room and discussing things
rationally :) 

Many thanks to all participants. Looking forward to seeing work continue
in this thread.

Regards,   
-- 
Christopher Schmidt
Web Developer


More information about the tiling mailing list