2012-03-01 9 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; 
         }; 

        } 
       } 
      } 
     }); 

    }); 
関連する問題