2017-08-14 10 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 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

おかげで、以前に選択されたマーカーのキープトレース用のウィンドウレベルのVARを管理し、これにあなたのリスナーに、通常のアイコンを割り当てることができ、マーカーは強調表示されたままになりますが、別のマーカーをクリックしても通常の状態に戻りません。 –

+0

答えが更新されました。 – scaisEdge

+0

ありがとう@scaisEdge –

関連する問題