calculateBaseTilesSingle method
Calculates the query parameters for a single tile.
Implementation
void calculateBaseTilesSingle(Tile tile, SubFileParameter subFileParameter) {
if (tile.zoomLevel < subFileParameter.baseZoomLevel) {
// calculate the XY numbers of the upper left and lower right sub-tiles
int zoomLevelDifference = subFileParameter.baseZoomLevel - tile.zoomLevel;
fromBaseTileX = tile.tileX << zoomLevelDifference;
fromBaseTileY = tile.tileY << zoomLevelDifference;
toBaseTileX = fromBaseTileX + (1 << zoomLevelDifference) - 1;
toBaseTileY = fromBaseTileY + (1 << zoomLevelDifference) - 1;
useTileBitmask = false;
} else if (tile.zoomLevel > subFileParameter.baseZoomLevel) {
// calculate the XY numbers of the parent base tile
int zoomLevelDifference = tile.zoomLevel - subFileParameter.baseZoomLevel;
fromBaseTileX = tile.tileX >> zoomLevelDifference;
fromBaseTileY = tile.tileY >> zoomLevelDifference;
toBaseTileX = fromBaseTileX;
toBaseTileY = fromBaseTileY;
useTileBitmask = true;
queryTileBitmask = QueryCalculations.calculateSingleTileBitmask(tile, zoomLevelDifference);
} else {
// use the tile XY numbers of the requested tile
fromBaseTileX = tile.tileX;
fromBaseTileY = tile.tileY;
toBaseTileX = fromBaseTileX;
toBaseTileY = fromBaseTileY;
useTileBitmask = false;
}
}