2014-05-12 44 views
0

目前我有一個地圖有很多由多邊形定義的區域,每個多邊形都有不同的fillColor許多谷歌地圖聽衆同時存在

然後,我具有以下效果,當我懸停在每個多邊形區域:

google.maps.event.addListener(MapArea, "mouseover", function() { 
    this.setOptions({ fillColor: 'rgb(0,255,255)' }); 
}); 
google.maps.event.addListener(MapArea, "mouseout", function() { 
    this.setOptions({ fillColor: 'rgb(255,0,0)' }); 
}); 

換句話說,當我鼠標懸停,該區域變成青色,當我移開鼠標,區域變爲紅色。但是,由於我的區域都是不同的顏色,因此我希望在刪除鼠標時恢復其顏色。

不同的顏色被實現:

for (var t=0; t< lAll_Areas.length; t++) { 
    var n = //arbitrary number 0<n<255; 
    var m = (255-cd).toString(); 
    var col = 'rgb(' + n + ',' + m + ',0)'; 
    lAll_Areas[t].setOptions({ fillColor: col }); 
} 

所以,在那裏我想有這樣的:

google.maps.event.addListener(MapArea, "mouseout", function() { 
    this.setOptions({ fillColor: col }); 
}); 

如何mouseout事件附加到每個單獨的多邊形?

回答

1

一個選項:設置默認值並突出顯示顏色作爲多邊形的屬性。

for (var t=0; t< lAll_Areas.length; t++) { 
    var n = //arbitrary number 0<n<255; 
    var m = (255-cd).toString(); 
    var col = 'rgb(' + n + ',' + m + ',0)'; 
    lAll_Areas[t].defaultColor = col; 
    lAll_Areas[t].highlightColor = 'rgb(0,255,255)'; 
    lAll_Areas[t].setOptions({ fillColor: col }); 
} 

然後:

google.maps.event.addListener(MapArea, "mouseover", function() { 
    this.setOptions({ fillColor: this.highlightColor }); 
}); 
google.maps.event.addListener(MapArea, "mouseout", function() { 
    this.setOptions({ fillColor: this.defaultColor }); 
}); 
0

有你mouseover事件偵聽器存儲在一個全局變量,你的聽衆mouseout可以參考當前顏色。

var color; 

google.maps.event.addListener(MapArea, "mouseover", function() { 
    color = this.fillColor; 
    this.setOptions({ fillColor: 'rgb(0,255,255)' }); 
}); 
google.maps.event.addListener(MapArea, "mouseout", function() { 
    this.setOptions({ fillColor: color }); 
});