Nej det är inte Jul riktigt än, utan det är ”Tiles” jag tänker på.
Tiles är rasterbilder i ett fördefinierat rutmönster som renderas mot tänkta skalnivåer (zoom) och skall göra det snabbare att visa kartor via nätet.
Exempelvis så används Tiles av både Google, Open Street Map och många av de andra stora aktörerna i sina tjänster. Även exempelvis GeoServer kan generera tiles via GeoWebCache.
Tiles kan ha lite olika konfiguration men det vanligaste är OSGeo specifikationen TMS (Tile Map Service).
Dessa Tiles får ett eget koordinatsystem (se bilden ovan) som räknas från ett ursprung, ofta i det nedre vänstra hörnet, och därefter åt höger och uppåt.
Beroende på zoomnivå så blir det olika många Tiles och för globala serier så är nivå 0 en Tile som täcker hela jorden och nivå 18 en Tile med sidan 152 meter (ca). Det normala är 18 nivåer, men det går att skapa ännu mera detaljerade Tiles om man önskar.
Varje Tile är normalt 256×256 pixlar stor även om det finns varianter, vilket gör att pixelstorleken i nivå 18 är ca en halv meter. För en del bildkällor så räcker kanske detta inte, men för de flesta situationer så är det tillräckligt.
För varje zoomnivå så skapas ett rutmönster av Tiles i det aktuella området. Dessa lagras i en katalog döpt efter zoomnivån, så om det är nivå 10 så heter katalogen ”10”.
Första nivån av underkataloger är döpta efter vilken kolumn i ordningen (utifrån ursprunget, se bild ovan) rutorna befinner sig i och sedan är själva filerna döpta efter vilken rad de är placerade på enligt samma system.
Om det är ett litet område med Tiles så blir det få filer, medan ett större område i höga zoomnivåer genererar desto fler. Hela jorden i nivå 18 blir exempelvis 68 719 476 736 rutor!
Som framgår av bilden så är det png-filer som används, men om man vill få ner storleken så går det att använda jpg också. Då får man dock inte någon transparens, vilket kan generera svarta fält i kanten av området.
Det finns formler för att räkna ut hur stora alla Tiles blir och vad de skall heta med mera, men det tänkte jag inte gå in på här. Är du intresserad så finns det massor att läsa om på http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames, där det även finns kodexempel om man vill bygga in funktionen i något skript eller program.
Nästa vecka är det Jul, men det blir några inlägg i alla fall. Det första handlar om hur man kan använda Tiles för att föra över rasterkartor till en iPhone eller iPad…
Ja, och om några timmar kommer min julklapp till er.