package com.robert.maps.applib.tileprovider;
public class TileURLGeneratorMS extends TileURLGeneratorBase {
private final String mImageFileNaming;
public TileURLGeneratorMS(String mName, final String aImageFileNaming) {
super(mName);
mImageFileNaming = aImageFileNaming;
}
@Override
public String Get(int x, int y, int z) {
return new StringBuilder().append(mName)
.append(encodeQuadTree(z, x, y))
.append(mImageFileNaming)
.toString();
}
protected static final char[] NUM_CHAR = { '0', '1', '2', '3' };
private String encodeQuadTree(int zoom, int tilex, int tiley) {
char[] tileNum = new char[zoom];
for (int i = zoom - 1; i >= 0; i--) {
// Binary encoding using ones for tilex and twos for tiley. if a bit
// is set in tilex and tiley we get a three.
int num = (tilex % 2) | ((tiley % 2) << 1);
tileNum[i] = NUM_CHAR[num];
tilex >>= 1;
tiley >>= 1;
}
return new String(tileNum);
}
}