package com.robert.maps.applib.tileprovider;
public class TileURLGeneratorOrdnanceSurveyMap extends TileURLGeneratorBase {
private static final int OpenSpaceLayersArray[] = {2500, 1000, 500, 200, 100, 50, 25, 10, 5, 2, 1};
private static final int OpenSpaceUpperBoundArray[] = { 2, 5, 10, 25 , 50, 100, 200, 500, 1000, 2000, 4000};
private int mZoomMinLevel;
public TileURLGeneratorOrdnanceSurveyMap(String mName, final int aZoomMinLevel) {
super(mName);
mZoomMinLevel = aZoomMinLevel;
}
@Override
public String Get(int x, int y, int z) {
final int million = 1000000 / OpenSpaceUpperBoundArray[z - mZoomMinLevel];
final int size = OpenSpaceLayersArray[z-mZoomMinLevel] < 5 ? 250 : 200;
return new StringBuilder()
.append(mName)
.append("LAYERS=").append(OpenSpaceLayersArray[z-mZoomMinLevel])
.append("&SRS=EPSG%3A27700&BBOX=")
.append(million*x)
.append(",")
.append(million*(OpenSpaceUpperBoundArray[z - mZoomMinLevel]-1-y))
.append(",")
.append(million*(1+x))
.append(",")
.append(million*(1+(OpenSpaceUpperBoundArray[z - mZoomMinLevel]-1-y)))
.append("&WIDTH=").append(size).append("&HEIGHT=").append(size)
.toString();
}
}