Tile constructor

Tile(
  1. int tileX,
  2. int tileY,
  3. int zoomLevel,
  4. int indoorLevel,
)

@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)");
  }
}