2016-07-14 6 views
-1

Googleマップで複数のマーカーを使用しています指定したアイコンイメージを持つAPIは値に依存しますアイコンのIF文を作成しましたが、私のコンソールにエラーが表示されませんjavascript/google map api if文forループ内

キャッチされないでSyntaxError:予期しないトークン
この行には

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

これは私の全体のスクリプトです

 <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

if/elseifブロックはどこに置く必要がありますか? –

+0

@nnnnnnいいえ、少なくともあなたがそれをどうやって言っているのかを説明してください。 – MrUpsidown

+0

@MrUpsidown - ああ、私は閉じた ')'を見ませんでした。おっとっと。 – nnnnnn

答えて

1

ifステートメントを暗黙のオブジェクト定義に使用することはできません。elseif(代わりにelse ifを使用)を使用することはできません。最初のエラーを取り除くには、関数を代わりに使用します。あなたのエラーは、オブジェクトのキーを定義するにはif文を使用している原因は何

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)); 
} 

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

はあなたが唯一のいくつかの機能の範囲でifステートメントを使用することができます:あなたは、変数aの値に応じて、新しいオブジェクトを作成したい場合たとえば、これはエラーを返します。正しい方法は次のようになります:

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

elseif(cicon [i] [0] <= 2.49){return image2;}の行にこのエラーがまだ表示されていますが、赤い下線は {return image2;} –

+0

@michaeljohnperaltaです。申し訳ありません、私のタイプミス。関数の後に '、'を追加する必要があります。修正されました。 –

+0

@michaeljohnperalta。やってみよう。 –

関連する問題