0

id = "showmarkers"버튼을 클릭하면 Google지도에 아이콘이 표시되는 코드를 작성했습니다.버튼 클릭 숨기기 Google지도 아이콘

동일한 버튼을 다시 클릭하거나 id = "hidemarkers"로 다른 버튼을 클릭했을 때 마커가 숨겨지기를 원합니다.

어떤 도움이 많이 주시면 감사하겠습니다, 감사

$(document).ready(function() { 
$("#map").css({ 
    height: 500, 
    width: 600 
}); 
var myLatLng = new google.maps.LatLng(51.50754,-0.127894); 
    MYMAP.init('#map', myLatLng, 13); 

$("#showmarkers").click(function(e){ 
    MYMAP.placeMarkers('markers.xml'); 
}); 

}); 

var MYMAP = { 
    map: null, 
bounds: null 
    } 

MYMAP.init = function(selector, latLng, zoom) { 
var myOptions = { 
zoom:zoom, 
center: latLng, 
mapTypeId: google.maps.MapTypeId.ROADMAP 
} 

this.map = new google.maps.Map($(selector)[0], myOptions); 
this.bounds = new google.maps.LatLngBounds(); 
} 

MYMAP.placeMarkers = function(filename) { 
$.get(filename, function(xml){ 
    $(xml).find("marker").each(function(){ 
     var name = $(this).find('name').text(); 
     var address = $(this).find('address').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 marker = new google.maps.Marker({ 
      position: point, 
      map: MYMAP.map 
     }); 

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

    }); 
}); 
} 

답변

0

당신은 부울 플래그 'shouldHideMarkers'를 가지고 있고 그것이 사실 어떠했는지를 확인, 그래서 그들을 숨기거나 거짓, 그래서 그들을 표시 할 수 있습니다. 지도에서 마커를 제거하려면 map 속성을 null로 설정해야합니다. 가장 좋은 방법은 모든 마커 변수를 배열에 저장하고 배열을 탐색하여지도 속성을 숨기기 위해 null로 설정하는 것입니다.