2010-06-04 4 views
2

안녕하세요, 저와 관련하여 정보를 검색했지만 아무 소용이 없습니다.JQuery를 사용하여 Google지도 아이콘 제거하기

기본적으로 체크 상자로 여러 개의 카테고리를로드하는 페이지가 있습니다. 예를 들어 체크 박스 1은 '전시회'라고하고, 클릭하면지도의 모든 전시회가 표시됩니다 (확인란의 값을 XML을 필터링하는 JQuery 함수). 나는 6 개의 체크 박스가 모두 서로 다른 카테고리와 관련이있다. 이 부분은 잘 작동하지만 확인란이 선택되지 않은 경우이 마커를 제거해야합니다. 또한 해당 카테고리와 연관된 마커 만 제거해야합니다.

코드는 다음과 같습니다 :

MYMAP.placeMarkersTest = function(filename, CatValue) { 
$.get(filename, function(xml) { 
    $(xml).find("marker").each(function() { 

     var eventCat = $(this).find('Category').text(); 

     if (eventCat == CatValue) { 
      var name = $(this).find('name').text(); 
      var address = $(this).find('name').text(); 


      var lat = $(this).find('lat').text(); 
      var lng = $(this).find('lng').text(); 
      var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng)); 

      MYMAP.bounds.extend(point); 

      var icon = "/images/mapping/EventsIcon.png"; 

      var marker = new google.maps.Marker({ 
       position: point, 
       icon: icon, 
       map: MYMAP.map 
      }); 

      var infoWindow = new google.maps.InfoWindow(); 
      var html = '<strong>' + name + '</strong><br />'; 
      google.maps.event.addListener(marker, 'click', function() { 
       infoWindow.setContent(html); 
       infoWindow.open(MYMAP.map, marker); 
      }); 
      MYMAP.map.fitBounds(MYMAP.bounds); 


     } else { 
      //alert("There are no matches"); 
     } 
    }); 
}); 
} 

특정 마커가 좋은 것 제거하는 방법에 어떤 아이디어가, 감사합니다.

답변

6

마커를 만들 때 marker.Set ('MyProperty', 'MyCategory')를 사용하여 속성으로 속한 범주를 추가 한 다음 전역 배열에 마커를 추가 할 수 있습니다. 마커를 제거 할 준비가되면 마커 배열을 반복하고 marker.setMap (null)을 호출하여지도에서 제거 할 수 있습니다.

+0

대단히 감사합니다. 이상적인 해결책입니다. 나는 그것을 줄 것이다! – RichW

+0

그냥 코드로 바이올린을 가지고 완벽하게 작동하도록했습니다. 감사합니다. jacksonakj – RichW

0

전역 배열에 각 표식을 추가하여 해당 표식을 문맥에 저장하고 Map.removeOverlay (markerArray [indexvalue])를 사용하여 제거 했습니까?

관련 문제