2016-07-14 6 views
-1

Ich mache eine Mehrfachmarkierung in Google Map API mit festgelegten Symbol Bild hängt von dem Wert ich erstellt eine IF-Anweisung für Symbol, aber es zeigt nicht einen Fehler auf meiner KonsoleJavascript/Google Karte API wenn Anweisung innerhalb für Schleife

Uncaught Syntaxerror: unerwartete Token
auf dieser Linie

if (cicon[i][0]<= 1.49) { 

das ist mein ganzes Skript

 <script> 


    var cicon = <?php echo json_encode($js_array1); ?>;//added 
    var locations = <?php echo json_encode($js_array); ?>; 
    console.log(cicon);//added 
    console.log(locations);//added 
    var image1 = "/IntensityMeter/icon_img/number_1.png"; 
    var image2 = "/IntensityMeter/icon_img/number_2.png"; 
    var image3 = "/IntensityMeter/icon_img/number_3.png"; 
    var image4 = "/IntensityMeter/icon_img/number_4.png"; 
    var image5 = "/IntensityMeter/icon_img/number_5.png"; 
    var image6 = "/IntensityMeter/icon_img/number_6.png"; 
    var image7 = "/IntensityMeter/icon_img/number_7.png"; 
    var image8 = "/IntensityMeter/icon_img/number_8.png"; 
    var image9 = "/IntensityMeter/icon_img/number_9.png"; 
    var image10 = "/IntensityMeter/icon_img/number_10.png"; 
     var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 5, 
    center: new google.maps.LatLng(14.599512, 120.984222), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
     }); 
    var infowindow = new google.maps.InfoWindow(); 
    var marker, i; 
     for (i = 0; i < locations.length; i++) { 
     marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][0], locations[i][1]), 
     if (cicon[i][0]<= 1.49) { 
      icon: image1, 
      } elseif (cicon[i][0]<=2.49){ icon : image2 

     }elseif (cicon[i][0]<=3.49){ icon : image2 

      }elseif (cicon[i][0]<=4.49){ icon : image2 

     }elseif (cicon[i][0]<=5.49){ icon : image2 

      }elseif (cicon[i][0]<=6.49){ icon : image2 

      } 

    map: map 
     }); 
     google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
     infowindow.setContent(locations[i][0]); 
     infowindow.open(map, marker); 
     } 
     })(marker, i)); 
     } 
     </script> 
+0

Was muss ich tun, Sir, wo muss ich den if/elseif-Block platzieren? –

+0

@nnnnnn Nein. Und zumindest erklären, wie/warum Sie das sagen. – MrUpsidown

+0

@MrUpsidown - ah, ich sah nicht das Schließen ')'. Hoppla. – nnnnnn

Antwort

1

Sie können die Anweisung if nicht in impliziten Objektdefinitionen verwenden, und Sie können elseif nicht verwenden (verwenden Sie stattdessen else if). Um den ersten Fehler zu beheben, verwenden Sie stattdessen die Funktion.

var cicon = <?php echo json_encode($js_array1); ?>;//added 
var locations = <?php echo json_encode($js_array); ?>; 
console.log(cicon);//added 
console.log(locations);//added 
var image1 = "/IntensityMeter/icon_img/number_1.png"; 
var image2 = "/IntensityMeter/icon_img/number_2.png"; 
var image3 = "/IntensityMeter/icon_img/number_3.png"; 
var image4 = "/IntensityMeter/icon_img/number_4.png"; 
var image5 = "/IntensityMeter/icon_img/number_5.png"; 
var image6 = "/IntensityMeter/icon_img/number_6.png"; 
var image7 = "/IntensityMeter/icon_img/number_7.png"; 
var image8 = "/IntensityMeter/icon_img/number_8.png"; 
var image9 = "/IntensityMeter/icon_img/number_9.png"; 
var image10 = "/IntensityMeter/icon_img/number_10.png"; 
var map = new google.maps.Map(document.getElementById('map'), { 
zoom: 5, 
center: new google.maps.LatLng(14.599512, 120.984222), 
mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 
var infowindow = new google.maps.InfoWindow(); 
var marker, i; 
for (i = 0; i < locations.length; i++) { 
marker = new google.maps.Marker({ 
position: new google.maps.LatLng(locations[i][0], locations[i][1]), 

// Notice function here 
cicon: (function(){ 

    if (cicon[i][0]<= 1.49) { 
    return image1; 
    } else if (cicon[i][0]<=2.49){ return image2 

    }else if (cicon[i][0]<=3.49){ return image2 

    }else if (cicon[i][0]<=4.49){ return image2 

}else if (cicon[i][0]<=5.49){ return image2 

    }else if (cicon[i][0]<=6.49){ return image2 

     } 

    })(), 

map: map 
}); 
google.maps.event.addListener(marker, 'click', (function(marker, i) { 
return function() { 
    infowindow.setContent(locations[i][0]); 
infowindow.open(map, marker); 
} 
})(marker, i)); 
} 

Was ist Ihr Fehler verursacht wird, mit if Anweisung Objektschlüssel zu definieren. Zum Beispiel, wenn Sie der Wert der Variablen a je neue Objekt erstellt werden soll, wird dies einen Fehler zurück:

someObject = { 
    someParam: someValue, 
    someOtherParam: someOtherValue, 
    if(a < 5){ 
     param3: 'a lower than five' 
    }else{ 
     param3: 'a biger or equal to five' 
    } 
}; 

Sie if Aussage nur in Rahmen einer Funktion verwenden können. Korrekter Weg ist:

someObject = { 
    someParam: someValue, 
    someOtherParam: someOtherValue, 
    param3: (function(){if(a < 5){ 
      return 'a lower than five' 
     }else{ 
      return 'a biger or equal to five' 
     } 
    })() 
}; 
+0

während ich noch einige Fehler dieses Mal auf der Linie mit elseif (Cicon [i] [0] <= 2,49) {return image2;} und die rote Unterstreichung ist auf {return image2;} –

+0

@michaeljohnperalta. Entschuldigung, mein Tippfehler. Sie müssen ',' nach der Funktion hinzufügen. Korrigiert. –

+0

@michaeljohnperalta. Probieren Sie es jetzt. –