Google Maps API と赤い点のアイコン (別名地震アイコン) を使用してマップを作成しようとしています。
いくつかの場所といくつかのマグニチュードがあります。マグニチュードの一部はより低く、あまり目立たないため、赤い点のアイコンは一部の場所にのみ適用されます。
var marker1;
var marker2
for (var i = 0; i < locations.length; i++) {
if (locations[i][3] > 5){
alert("I am in");}
marker1 = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
icon: getCircle(locations[i][3])
});
if(locations[i][3] < 5){
marker2 = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
animation: google.maps.Animation.BOUNCE
});
}
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker1);
}
})(marker1, i));
}
問題はmarker1にあります。マグニチュードが 5 を超える場所にマーカーを制限しようとすると、単一のアイコンが設計されず、アラートもトリガーされないためです。
しかし、(例のように)「if」ステートメント内からmarker1のコードを削除すると、アラートがトリガーされ、アイコンがマップに表示されます。
マーカー 2 は問題なくフィルタリングできます。
なぜこれがこのように機能するのですか?「}」を数行下に移動するだけです。私は理解できない。
助けてくれてありがとう!