2017-08-14 171 views
0

我想添加一個onlick seticon功能來改變圖標,當有人點擊標記,然後當他們點擊標記時變回來。我試過當點擊更改圖標,然後再點擊其他標記時改回

google.maps.event.addListener(marker, 'click', function() { 
marker.setIcon('/url.jpg') 
} 

但是圖標在1秒後變回舊圖標。 任何幫助表示讚賞。

這是當前的代碼:

function readData() { 
    var url = 'aircraft.json'; 
$.when($.getJSON(url)).done(function(data) { 
    $.each(data.aircraft, function(i, value) { 
     var plane = value; 
     var myLatlng = new google.maps.LatLng(value.lat, value.lon, value.flight, value.altitude); 
     if (markers[value.hex]) { 
     markers[value.hex].setPosition(myLatlng); 
     //console.log("moving marker for " + value.hex); 
     markers[value.hex].setIcon(getIconForPlane(value)); 
     infoWindows[value.hex].setContent(text(value)); 




     } else { 
     // create new 
     markers[value.hex] = new google.maps.Marker({ 
      position: myLatlng, 
      icon: getIconForPlane(value), 
      map: map, 
      title: "Callsign: " + value.flight + ", Altitude: " + value.altitude, 
     }); 
     //console.log("creating marker for " + value.hex); 
     infoWindows[value.hex] = createInfoWindow(value, markers[value.hex] ,map) 
     } 

    }); 


    }); 

} 

回答

0

你可以管理一個窗口水平VAR爲先前選擇標記保持跟蹤並分配給該正常圖標在您的聽者

var selectedMarker = null; 

    ..... 


    google.maps.event.addListener(marker, 'click', function() { 
    if (selectedMarker !== null){ 
     selectedMarker.setIcon('/normal_url_icon.jpg') 
    } 
    marker.setIcon('/url.jpg'); 
    selectedMarker = marker; 
    } 
+0

謝謝,標記現在保持突出顯示,但在點擊另一個時不會變回正常狀態。 –

+0

答案更新.. – scaisEdge

+0

謝謝@scaisEdge –

相關問題