Javascript selecionar marcadores do Google para todas as possibilidades de condições de caixa de seleção

Eu estou colocando marcadores em um mapa do Google. Eu tenho um número de caixas de seleção (19 atualmente) em um formulário que estou tentando criar uma condição "e" dinâmica para exibir ou não exibir marcadores. O código funciona muito bem para as peças individuais quando uma única caixa de seleção é selecionada. Eu gostaria que o código fosse levado em consideração se várias caixas de seleção fossem selecionadas e exibissem apenas os marcadores que atendem a todas as condições, não apenas adicionando aqueles que atendam à próxima condição.

Givens:

Os IDs da caixa de seleção são "q" + #Cada marcador do Google tem valores de verdadeiro ou falso para cada q # (caixa de seleção) que o código está abaixo: createMarker (ponto, html, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12 , q13, q14, q15, q16, q17, q18, q19)Existem muitos pontos de marcador

Precisar:

Se as caixas de seleção 1 e 2 forem marcadas, apenas exiba os marcadores q1 = true "e" q2 = true nas variáveis ​​createMarker. Entretanto, também permite que uma única caixa de seleção seja marcada e os Marcadores corretos exibidos Eu preciso dessa condição para todas as possibilidades de caixas de seleção serem selecionadas (1 a 19).

Como posso fazer isso funcionar?

Código atual para condição única:

//loop through the checkbox questions
for (var h=1; h<20; h++) {
        //check to see if the checkbox is checked
        if (document.getElementById('q'+h).checked == true) {               
            for (var i=0; i<gmarkers.length; i++) { 
                //check to see if the Marker has that variable set to true for the question it is loop through                  
                if (h == 1 && gmarkers[i].q1 == 1) {                            
                                    \\ show marker                      
                                     gmarkers[i].show();                    
                }
                if (h == 2 && gmarkers[i].q2 == 1) {                            
                   // turned off for testing    
                                       //gmarkers[i].show();                    
                }
                if (h == 3 && gmarkers[i].q3 == 1) {                            
                    //gmarkers[i].show();                   
                }
                if (h == 4 && gmarkers[i].q4 == 1) {                            
                    //gmarkers[i].show();                   
                }
                if (h == 5 && gmarkers[i].q5 == 1) {                            
                    //gmarkers[i].show();                   
                }
                if (h == 6 && gmarkers[i].q6 == 1) {                            
                    //gmarkers[i].show();                   
                }
                if (h == 7 && gmarkers[i].q7 == 1) {                            
                    //gmarkers[i].show();                   
                }
                if (h == 8 && gmarkers[i].q8 == 1) {                            
                    //gmarkers[i].show();                   
                }
                if (h == 9 && gmarkers[i].q9 == 1) {                            
                    //gmarkers[i].show();                   
                }
                if (h == 10 && gmarkers[i].q10 == 1) {                          
                    //gmarkers[i].show();                   
                }
                if (h == 11 && gmarkers[i].q11 == 1) {                          
                    //gmarkers[i].show();                   
                }
                if (h == 12 && gmarkers[i].q12 == 1) {                          
                    //gmarkers[i].show();                   
                }
                if (h == 13 && gmarkers[i].q13 == 1) {                          
                    gmarkers[i].show();

                }
                if (h == 14 && gmarkers[i].q14 == 1) {                          
                    //gmarkers[i].show();                   
                }
                if (h == 15 && gmarkers[i].q15 == 1) {                          
                    //gmarkers[i].show();                   
                }
                if (h == 16 && gmarkers[i].q16 == 1) {                          
                    //gmarkers[i].show();                   
                }
                if (h == 17 && gmarkers[i].q17 == 1) {                          
                    //gmarkers[i].show();                   
                }
                if (h == 18 && gmarkers[i].q18 == 1) {                          
                    //gmarkers[i].show();                   
                }                   
                if (h == 19 && gmarkers[i].q19 == 1) {                          
                    //gmarkers[i].show();           
                }


            }

        }

questionAnswers(1)

yourAnswerToTheQuestion