Talk:WMS Tile Caching

From OSGeo
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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: id_4 = 0b10001011. id_3 = 0b00111111 & id_4 = 0b001011
      • 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)