Talk:WMS Tile Caching

I want to inform you, that I am currently hacking on some kind of proxy server doing almost exactly the described thing.

What I am doing:


 * Mercator projection instead of EPSG:4236. This is because the application behind (Openstreetmap applet) is using Mercator as current projection. Implication of this is, that I cannot draw the poles at all.
 * My world is squared. I will accept bounding boxed from longitude -180 to 180 and latitude roughly -85 to 85. In the end, the projection will be exact squared. ;)
 * Currently I use 256x256 tiles, but I'll probably change this to 512x512.
 * At zoom=0, the world is one tile. Zoom=1 means 4 quarters etc.. Limit is currently zoom=16
 * I use an 32-bit integer as identifier for a tile every tile (in every zoom) has one identifier. The identifier is unique among a specific zoom level (so id+zoom is unique). The construction of this id is as follow:
 * 0 is the world
 * the next zoom level is by having the next two bits (lower bits first) set to bottom/left, which means 1 for bottom half and next 1 for left half.
 * As example, the id for the upper right quarter of the world is 0b00 = 0. The id for the upper left quarter is 0b10 = 2...
 * Then, the next zoom level is calculated by using the next two higher order bits.
 * Note, that this id scheme makes it very easy to get every tile, a specific tile is part of
 * To get the id of a lower zoom level, where your id of a higher is in, just and with 2^(zoom*2)-1
 * Example:
 * This is very fast for invalidation all tiles up to zoom=0
 * The algorithm to calculate the id of a tile from a specific lat/lon is very fast this way (especally no table lookup is involved).
 * I will provide an other, non-WMS-standard access method to the server like ...&id=xxx&zoom=yy which is not suffering from any rounding lat/lon problems and such things anymore ;-)

--Imi 16:54, 31 March 2006 (CEST)