我正在尝试使用 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。
为什么会这样?我只是简单地将“}”移到下面几行。我无法理解。
谢谢您的帮助!