getMaxTileNumber static method
Returns true if two tile areas, defined by upper left and lower right tiles, overlap. Precondition: zoom levels of upperLeft/lowerRight and upperLeftOther/lowerRightOther are the same.
@param upperLeft tile in upper left corner of area 1. @param lowerRight tile in lower right corner of area 1. @param upperLeftOther tile in upper left corner of area 2. @param lowerRightOther tile in lower right corner of area 2. @return true if the areas overlap, false if zoom levels differ or areas do not overlap. @return the maximum valid tile number for the given zoom level, 2zoomLevel -1.
Implementation
// static bool tileAreasOverlap(Tile upperLeft, Tile lowerRight, Tile upperLeftOther, Tile lowerRightOther) {
// if (upperLeft.zoomLevel != upperLeftOther.zoomLevel || upperLeft.indoorLevel != upperLeftOther.indoorLevel) {
// return false;
// }
// if (upperLeft == (upperLeftOther) && lowerRight == lowerRightOther) {
// return true;
// }
// return getBoundaryAbsoluteStatic(upperLeft, lowerRight).intersects(getBoundaryAbsoluteStatic(upperLeftOther, lowerRightOther));
// }
/// @return the maximum valid tile number for the given zoom level, 2<sup>zoomLevel</sup> -1.
static int getMaxTileNumber(int zoomLevel) {
if (zoomLevel < 0) {
throw new Exception("zoomLevel must not be negative: $zoomLevel");
} else if (zoomLevel == 0) {
return 0;
}
return (2 << zoomLevel - 1) - 1;
}