我正在尝试创建一个javascript函数,该函数会在单击时更改Google Maps标记的颜色。然后,如果单击一个新标记,它会将旧标记恢复为原始颜色并更改新标记。
这是我的changeMarker(marker, i)
函数的名称
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
changeMarker(marker, i);
}
})(marker, i));
这是我的changeMarker()
函数
function changeMarker(marker, i) {
if(lastMarker) {
lastMarker.setMap(null);
console.log("Last Marker Removed");
var position = new google.maps.LatLng(buisnesses[lastID][1], buisnesses[lastID][2]);
marker = new google.maps.Marker({
position: position,
map: map,
title: buisnesses[lastID][0],
icon: ("http://www.googlemapsmarkers.com/v1/0099FF/")
});
console.log("Last Marker Replaced");
}
marker.setMap(null);
console.log("New Marker Removed");
var position = new google.maps.LatLng(buisnesses[i][1], buisnesses[i][2]);
bounds.extend(position);
var newMarker = new google.maps.Marker({
position: position,
map: map,
title: buisnesses[i][0],
icon: ("http://www.googlemapsmarkers.com/v1/D75C37/")
});
console.log("New Marker Created");
lastMarker = newMarker;
lastID = i;
}
因为我无法找到任何方法来简单地改变已经创建的标记的icon
字段,所以每次需要进行颜色更改时,我都会移除标记并替换它。但是,这个实现给了我非常不一致的结果(当第一次按下新标记时,永远不会替换第一个标记,按下时某些标记不会执行任何操作等等。)
如果有更简单的方法可以做任何想法吗?我会第一个承认我不是最好的javascript,所以希望有人可以指出我在此过程中犯的错误。
谢谢!
答案 0 :(得分:1)