2016-11-03 9 views
-1

마커 색상을 클릭 할 때 마커 색상을 변경하고 닫힌 마커 또는 다른 마커를 클릭하면 기본 색상으로 되돌아가는 기능을 구현하려고합니다. 지금까지 Ive는 클릭했을 때 색상을 변경하는 코드를 가져 왔지만 닫힌 표시를 원래 색상으로 되돌릴 수는 없습니다.마커 애니메이션

marker.addListener('click', function() { 
      this.setIcon(defaultMarker); 
     }); 

     marker.addListener('click', function() { 
      this.setIcon(highlightedMarker); 
      }); 

     google.maps.event.addListener(infoWindow,'closeclick', function(){ 
       marker.setIcon(defaultMarker); 
       infoWindow.close(defaultMarker) 

     }) 

여기 https://jsfiddle.net/Jcook894/88j5ud5h/

답변

1

귀하의 문제는 당신이 두 click 당신의 마커 이벤트 마지막 하나를 설정 청색 마커 색상을 설정하는 것이 내 JS 바이올린입니다.

원하는만큼 여러 번 클릭 할 수 있습니다. 마지막에는 항상 파란색이됩니다.

그래서 저는하십시오 정보창이 닫혀 이벤트를 : marker.addListener('click', function(){})

  • click 청취자
  • infowindow.closeclick 이벤트를 추가 Google지도에서 .setIcon(highlightedMarker) 이동 :
    • 마커 click 이벤트를 모두 제거 트리거됩니다. infoWindow.marker = marker;

    :

  • marker 오브젝트 당신의 infowindow 객체에 사용자 정의 속성을 추가 null가 아니라면 전에 정보창 객체에 새로운 marker 속성을 설정 확인합니다. 설정 한 기본 색상

    if (infoWindow.marker) { 
        infoWindow.marker.setIcon(defaultMarker); 
    } 
    
    • 변경 infowindow.closeclick 이벤트의 기본 하나 마커 색상 : this.marker.setIcon(defaultMarker);

    google.maps.event.addListener(marker,'click', (function(marker, location){ 
        return function() { 
        console.log("that " + location); 
        streetViewService.getPanoramaByLocation(marker.position, streetRadius, getStreetData); 
    
         // Infowindow 
         // Marker 
         if (infoWindow.marker) { 
         infoWindow.marker.setIcon(defaultMarker); 
         } 
         infoWindow.marker = marker; 
    
         // Open 
         infoWindow.open(map, marker); 
         infoWindow.setContent("<div>" + marker.title + "</div><div id='pano'></div><div><a href=" + location.url + ">"+ location.url +"</a></div>"); 
    
         // Set the marker color 
        } 
    })(marker, locationArray[i])); 
    
    google.maps.event.addListener(infoWindow,'closeclick',function(){ 
        this.marker.setIcon(defaultMarker); 
    }); 
    

    하지 않으면, 실제로 강조 마커가있다 Here the JSFiddle

  • +0

    감사합니다. 또한 그것을 만들기 위해 노력하고 메신저 그래서 만약 당신이 다른 마커를 클릭하면, 이전 마커는 기본 색상으로 돌아갑니다, 나는 이것을 동일한 수신기에 추가 할 것인가? – Jcook894

    +0

    흠, 나는'closeclick' 이벤트가 시작되었지만 끝내지 않았 음을 확신했다. 나는 – Robiseb

    +0

    을 확인해 주셔서 감사합니다. – Jcook894

    관련 문제