2

I am using TileCache from MetaCarta to create tiles for a WMS service. It creates a tile with an URL like http://example.com/tiles/Admin/06/000/000/357/000/000/158.png.

I am trying to understand how to start from Map Coordinates, and get the appropriate tile.

I am looking for some documentation which explains the Folder structure/hierarchy of the server cache directory

Devdatta Tengshe
  • 41,311
  • 35
  • 139
  • 263

2 Answers2

4

answer to my comment(this code is for my tms scheme and you can adapt it to your need):

var originShift = 2 * Math.PI * 6378137 / 2.0;
var initialResolution = 2 * Math.PI * 6378137 / 256; //tilesize

var lon = 10;
var lat = 20;

var mx = lon * originShift / 180.0;
var my = Math.log(Math.tan((90 + lat) * Math.PI / 360.0)) / (Math.PI / 180.0);

my = my * originShift / 180.0;

//MetersToPixel(mx, my, zooma)
var res = initialResolution / (Math.pow(2, zooma));
var px = (mx + originShift) / res;
var py = (my + originShift) / res;

//PixelsToTile(px, py)
var tx = Math.ceil(px / parseFloat(256)) - 1;
var ty = Math.ceil(py / parseFloat(256)) - 1;

tx and ty will give you to tms result as lanlot. if you want to know equivalent to google map, you can calculate the Y file name (Math.pow(2, zoom) - 1) - ty

Google Tile Mechanism: x/y/z.jpg

TMS Tile Mechanism: z/y/x.jpg

i hope it helps you...

urcm
  • 22,533
  • 4
  • 57
  • 109
  • 1
    It looks like TileCache is not a TMS, because the url of the tile (http://example.com/tiles/Admin/06/000/000/357/000/000/158.png) has 7 components (after the name of the service) and not just 3, like in your answer – Devdatta Tengshe Jun 12 '12 at 14:58
1

Not to be snarky, but just read the source.

tmcw
  • 4,286
  • 20
  • 22
  • 2
    While I agree, that the getKey function from the linked page, technically answers this question, your link is not an answer. It supposes that the reader understands Python. It would have been better if you could have explained the formula, and shown how the x, y & z make up the long url. – Devdatta Tengshe Jun 12 '12 at 14:56