0

以下のコードをクリックすると、ポリラインの色を簡単に変更できます。

 var points = [  
     new GLatLng(24.85229, 67.01703),  
     new GLatLng(24.914463, 67.0965958)];
 var polyline = new GPolyline(points, '#ff0000', 5, 0.7); 

 GEvent.addListener(polyline, "click", function() {polyline.setStrokeStyle({ color: "#0000FF" }); });
map.addOverlay(polyline); 

しかし、最初の色が赤で、クリックすると青に変わり、他のクリックで再び赤に変わるように、クリック時に色を前の色に戻したい... . じゃあどうすればいいの?

お返事いただければ幸いです..

4

1 に答える 1

2

これには多くの解決策があります。1 つは swap 関数を作成することです。

 var activeColor = '#ff0000';
 var inactiveColor = '#0000FF';

 var points = [   
                                   new GLatLng(24.85229, 67.01703),   
                                   new GLatLng(24.914463, 67.0965958)]; 
                                   var polyline = new GPolyline(points, activeColor, 5, 0.7);  

GEvent.addListener(polyline, "click", function() {
           // swap activecolor with inactivecolor
           var color = inactiveColor;
           inactiveColor = activeColor;
           activeColor = color;

           // set activecolor
           polyline.setStrokeStyle({ color: activeColor }); 
       }); 
       map.addOverlay(polyline);  
于 2011-08-26T04:12:41.723 に答える