<?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-Imi</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-Imi"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Wiki-Imi"/>
	<updated>2026-04-12T16:27:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Talk:WMS_Tile_Caching&amp;diff=3060</id>
		<title>Talk:WMS Tile Caching</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Talk:WMS_Tile_Caching&amp;diff=3060"/>
		<updated>2006-03-31T14:54:34Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Imi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I want to inform you, that I am currently hacking on some kind of proxy server doing almost exactly the described thing.&lt;br /&gt;
&lt;br /&gt;
What I am doing:&lt;br /&gt;
&lt;br /&gt;
* Mercator projection instead of EPSG:4236. This is because the application behind ([http://www.openstreetmap.org Openstreetmap applet]) is using Mercator as current projection. Implication of this is, that I cannot draw the poles at all.&lt;br /&gt;
* 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. ;)&lt;br /&gt;
* Currently I use 256x256 tiles, but I'll probably change this to 512x512.&lt;br /&gt;
* At zoom=0, the world is one tile. Zoom=1 means 4 quarters etc.. Limit is currently zoom=16&lt;br /&gt;
* 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:&lt;br /&gt;
** 0 is the world&lt;br /&gt;
** 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.&lt;br /&gt;
*** 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...&lt;br /&gt;
** Then, the next zoom level is calculated by using the next two higher order bits.&lt;br /&gt;
** Note, that this id scheme makes it very easy to get every tile, a specific tile is part of&lt;br /&gt;
*** To get the id of a lower zoom level, where your id of a higher is in, just and with 2^(zoom*2)-1&lt;br /&gt;
*** Example: &amp;lt;code&amp;gt;id_4 = 0b10001011.  id_3 = 0b00111111 &amp;amp; id_4 = 0b001011&amp;lt;/code&amp;gt;&lt;br /&gt;
*** This is very fast for invalidation all tiles up to zoom=0&lt;br /&gt;
*** 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).&lt;br /&gt;
* I will provide an other, non-WMS-standard access method to the server like ...&amp;amp;id=xxx&amp;amp;zoom=yy which is not suffering from any rounding lat/lon problems and such things anymore ;-)&lt;br /&gt;
&lt;br /&gt;
--[[User:Imi|Imi]] 16:54, 31 March 2006 (CEST)&lt;/div&gt;</summary>
		<author><name>Wiki-Imi</name></author>
	</entry>
</feed>