2012-03-01 4 views

답변

1

지도에서 마커를 지우는 방법은 marker에서 setMap (null)을 호출하는 것입니다. Google지도 용 타사 플러그인 (jquery-ui-map?)을 사용하고있는 것 같습니다. jquery-ui-map을 사용하는 경우 find 메소드를 사용하여 원하는 마커를 찾은 다음 setMap(null)을 호출하십시오.

0

marker.setMap (null)은 마커 오버레이 만 지 웁니다. 마커를 파괴하지 않습니다. "명백한"가능성이 있습니다. 나도 마커를 지우고 클릭 한 것을 파괴하고 싶다. 나는 내가 공유하고자하는 데모를 가지고있다. marker.setMap (null)을 사용했는데 마커 만 숨 깁니다. 나는 그것을 완전히 파괴 할 길을 아직 찾지 못했다.

jsFiddle :

jsfiddle.net/ryanverdel/WRyrJ/

코드 :

$(document).ready(function() { 

     var markerCount = 0; 

     $("#test1").gmap3({ 
      map: { 
       options: { 
        center: [-2.2214281090541204, -78.695068359375], 
        zoom: 8, 
        mapTypeId: google.maps.MapTypeId.ROADMAP, 
        mapTypeControl: true, 
        mapTypeControlOptions: { 
         style: google.maps.MapTypeControlStyle.DROPDOWN_MENU 
        }, 
        navigationControl: true, 
        scrollwheel: true, 
        disableDoubleClickZoom: true, 
        streetViewControl: false, 

       }, 
       events: { 


        click: function (map, event) { 

         if (markerCount < 10) { 


          $(this).gmap3(

          { 
           marker: { 
            latLng: event.latLng, 
            options: { 
             draggable: true, 
             animation: google.maps.Animation.DROP, 
            }, 



            events: { 
             click: function (marker) { 

              marker.setMap(map); 
              marker.setMap(null); 
              marker = null; 
              delete marker; 
              console.log(marker); 

              markerCount--; 
             }, 

             dragend: function (marker) { 
              $("#inputArray").empty(); 

              setTimeout(function() { 
               var markers = $("#test1").gmap3({ 
                get: { 
                 all: true 
                } 
               }); 

               $.each(markers, function (i, marker) { 

                $("#inputArray").append('<p>{"latitude":' + marker.position.lat() + ', ' + '"longitude":' + marker.position.lng() + '},' + '</p>'); 
               }); 
              }, 400); 



             } 


            }, 


           }, 


          }); 

          markerCount++; 

          $("#inputArray").empty(); 

          setTimeout(function() { 
           var markers = $("#test1").gmap3({ 
            get: { 
             all: true 
            } 
           }); 

           $.each(markers, function (i, marker) { 

            $("#inputArray").append('<p>{"latitude":' + marker.position.lat() + ', ' + '"longitude":' + marker.position.lng() + '},' + '</p>'); 
           }); 
          }, 400); 

         } else { 
          return false; 
         }; 

        } 
       } 
      } 
     }); 

    });