<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Joshli</id>
	<title>OSGeo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Joshli"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Wiki-Joshli"/>
	<updated>2026-04-13T21:29:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=WMS_Tile_Caching&amp;diff=2945</id>
		<title>WMS Tile Caching</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=WMS_Tile_Caching&amp;diff=2945"/>
		<updated>2006-03-29T23:20:19Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Joshli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Goal ==&lt;br /&gt;
&lt;br /&gt;
The goal of a '''WMS Tile Caching''' proposal, perhaps ''WMS-C'' for short, is to find a way to optimize the generation of map imagery for transmission across the Internet. The proposal needs to offer ideally a single means by which map clients can fetch tiles from existing servers, in such a way that map tiles can be cached on the server, or at an intermediate location, or even be completely pre-generated, if desired. The proposal should leverage the existing investment in OGC-compliant WMS servers on the 'Net.&lt;br /&gt;
&lt;br /&gt;
== Proposal ==&lt;br /&gt;
&lt;br /&gt;
=== WMS-C as WMS Profile ===&lt;br /&gt;
&lt;br /&gt;
One approach to take might be to define ''WMS-C'' (as in ''Web Mapping Service - Cached'') as a constrained profile of [http://www.opengeospatial.org/docs/01-068r2.pdf OGC WMS] that permits servers to optimize their image generation, and allows tiles to be cached at intermediate points. The basic idea is that, unlike with WMS, two different requests for a given WMS-C tile should form the exact same HTTP GET request. This invites several constraints on WMS ''GetMap'' requests:&lt;br /&gt;
&lt;br /&gt;
# Minimal query string arguments (i.e. no optional arguments permitted, versus &amp;amp;sect;7.2)&lt;br /&gt;
# Fixed query string argument ordering and case (versus &amp;amp;sect;6.4.1; q.v. also &amp;amp;sect;7.2.2, Table 8)&lt;br /&gt;
# Fixed range of possible bounding boxes, computed from the WMS-C profile parameters&lt;br /&gt;
# Fixed precision on bounding box values (clarifying &amp;amp;sect;6.5.6)&lt;br /&gt;
# Fixed tile size in pixels&lt;br /&gt;
# Fixed layer name and/or layer name ordering&lt;br /&gt;
# Fixed styling&lt;br /&gt;
# Fixed output format&lt;br /&gt;
&lt;br /&gt;
Some means of identifying these constraints programmatically on a per-server basis, a la ''GetCapabilities'' might be desirable. From the table below, it appears that minimum/maximum scale (and scale quantization factor, which should probably never be other than 2) are the only suggested tiling regime parameters that would be difficult to directly express in a WMS GetCapabilities document. Is there some existing way to add custom parameters to a GetCapabilities declaration?&lt;br /&gt;
&lt;br /&gt;
Note that the ''LAYERS'', ''STYLES'', ''SRS'', ''HEIGHT'', ''WIDTH'', and ''FORMAT'' arguments to a ''GetMap'' request would become fixed for a particular WMS-C tiled layer, but the WMS specification would still require the inclusion of these arguments in every WMS-C request (&amp;amp;sect; 7.2).&lt;br /&gt;
&lt;br /&gt;
A WMS-C proxy or server should be free to return an exception or a redirect, if it receives a WMS request that is not WMS-C compliant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Possible Tile Scheme Parameters ===&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| '''Parameter''' || '''Default value''' || '''Specifiable in WMS GetCapabilities?'''&lt;br /&gt;
|-&lt;br /&gt;
| Projection || EPSG:4326 || ''&amp;amp;lt;SRS&amp;amp;gt;'' &lt;br /&gt;
|-&lt;br /&gt;
| Maximal extent || (-180,-90,180,90) || ''&amp;amp;lt;BoundingBox&amp;amp;gt;'' (&amp;amp;sect;7.1.4.5.7)&lt;br /&gt;
|-&lt;br /&gt;
| Number of horizontal and vertical tiles at the maximal extent || ''none'' || Could be implied by ''&amp;amp;lt;ScaleHint&amp;amp;gt;'' (&amp;amp;sect;7.1.4.5.8, but note that the format is weakly specified)&lt;br /&gt;
|-&lt;br /&gt;
| Tile size in pixels || some power of 2 || &amp;amp;lt;Layer&amp;amp;gt; attribute ''fixedWidth'', ''fixedHeight'' (&amp;amp;sect;7.1.4.6)&lt;br /&gt;
|-&lt;br /&gt;
| Minimum scale || ''none'' || ''&amp;amp;lt;ScaleHint&amp;amp;gt;'' (see note, above)&lt;br /&gt;
|-&lt;br /&gt;
| Scale quantization factor || 2 || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calculating Valid Tile Extents for a Given WMS-C Request ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Existing Tiling Schemes ==&lt;br /&gt;
&lt;br /&gt;
* Mikel Maron's description of [http://lists.eogeo.org/pipermail/tiling/2006-March/000017.html OnEarth's LandSat tiling scheme]&lt;br /&gt;
* World Wind's tiling scheme: [http://www.ceteranet.com/nww-tile-struct.pdf PDF], [http://www.worldwindcentral.com/wiki/Making_Layers wiki]&lt;br /&gt;
&lt;br /&gt;
== Related Projects ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.ossim.org/tiki-read_article.php?articleId=3 osgPlanet]&lt;br /&gt;
* [http://worldwind.arc.nasa.gov/ NASA WorldWind] ([http://www.worldwindcentral.com/wiki/Main_page wiki])&lt;br /&gt;
* [http://mapbuilder.sf.net/ Community MapBuilder]&lt;br /&gt;
* other AJAX map clients, presumably&lt;br /&gt;
&lt;br /&gt;
== Interested Parties ==&lt;br /&gt;
* [[User:SchuylerErle|Schuyler Erle]]&lt;br /&gt;
* [[User&amp;quot;Adoyle&amp;quot;|Allan Doyle]]&lt;br /&gt;
* [[user&amp;quot;Nhv&amp;quot;|Norman Vine]]&lt;br /&gt;
* [[user&amp;quot;Joshli&amp;quot;|Josh Lieberman]]&lt;br /&gt;
* ''add yourself''&lt;/div&gt;</summary>
		<author><name>Wiki-Joshli</name></author>
	</entry>
</feed>