Tile constructor
Creates a new tile with the specified coordinates and zoom level.
tileX The X coordinate of the tile (0 to 2^zoomLevel - 1)
tileY The Y coordinate of the tile (0 to 2^zoomLevel - 1)
zoomLevel The zoom level (must be non-negative)
indoorLevel The indoor/floor level for multi-story mapping
Asserts that all coordinates are within valid ranges for the zoom level
Implementation
Tile(this.tileX, this.tileY, this.zoomLevel, this.indoorLevel)
: assert(tileX >= 0, "tileX $tileX must not be negative"),
assert(tileY >= 0, "tileY $tileY must not be negative"),
assert(zoomLevel >= 0) {
assert(tileX <= getMaxTileNumber(zoomLevel), "$tileX > ${getMaxTileNumber(zoomLevel)} for zoomlevel $zoomLevel");
assert(tileY <= getMaxTileNumber(zoomLevel), "$tileY > ${getMaxTileNumber(zoomLevel)} for zoomlevel $zoomLevel");
}