code: public static TileGrid getTileGridWGS84(BoundingBox boundingBox, int zoom) {
  
  		int tilesPerLat = tilesPerWGS84LatSide(zoom);
  		int tilesPerLon = tilesPerWGS84LonSide(zoom);
  
  		double tileSizeLat = tileSizeLatPerWGS84Side(tilesPerLat);
  		double tileSizeLon = tileSizeLonPerWGS84Side(tilesPerLon);
  
  		int minX = (int) ((boundingBox.getMinLongitude() + ProjectionConstants.WGS84_HALF_WORLD_LON_WIDTH) / tileSizeLon);
  		double tempMaxX = (boundingBox.getMaxLongitude() + ProjectionConstants.WGS84_HALF_WORLD_LON_WIDTH)
  				/ tileSizeLon;
  		int maxX = (int) tempMaxX;
  		if (tempMaxX % 1 == 0) {
  			maxX--;
  		}
  		maxX = Math.min(maxX, tilesPerLon - 1);
  
  		int minY = (int) (((boundingBox.getMaxLatitude() - ProjectionConstants.WGS84_HALF_WORLD_LAT_HEIGHT) * -1) / tileSizeLat);
  		double tempMaxY = ((boundingBox.getMinLatitude() - ProjectionConstants.WGS84_HALF_WORLD_LAT_HEIGHT) * -1)
  				/ tileSizeLat;
  		int maxY = (int) tempMaxY;
  		if (tempMaxY % 1 == 0) {
  			maxY--;
  		}
  		maxY = Math.min(maxY, tilesPerLat - 1);
  
  		TileGrid grid = new TileGrid(minX, minY, maxX, maxY);
  
  		return grid;
  	}
docs: Get the tile grid that includes the entire tile bounding box
  
  @param boundingBox
  wgs84 bounding box
  @param zoom
  zoom level
  
  @return tile grid
  @since 1.2.0