Tile constructor
@param tileX the X number of the tile. @param tileY the Y number of the tile. @param zoomLevel the zoom level of the tile. @throws IllegalArgumentException if any of the parameters is invalid.
Implementation
Tile(this.tileX, this.tileY, this.zoomLevel, this.indoorLevel)
: assert(tileX >= 0),
assert(tileY >= 0),
assert(zoomLevel >= 0) {
int maxTileNumber = getMaxTileNumber(zoomLevel);
if (tileX > maxTileNumber) {
throw new Exception(
"invalid tileX number on zoom level $zoomLevel: $tileX");
} else if (tileY > maxTileNumber) {
throw new Exception(
"invalid tileY number on zoom level $zoomLevel: $tileY (max is $maxTileNumber)");
}
}