2014-04-12 3 views
2

지도를 클릭하여 Google지도에 마커를 추가합니다. 이제 마커를 클릭하여 Google지도에서 마커를 제거하려고하지만 행운이 없습니다. Google지도에서 마커를 클릭하여 닫습니다.

var myMean = new google.maps.LatLng(22.321074,87.307710); 

var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 15, 
    center: myMean, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

var icon = new google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/micons/blue.png", new google.maps.Size(32, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 32)); 


var points=[]; 
var markers=[]; 


function setAllMap(map) 
{ 
    for (var i = 0; i < markers.length; i++) 
    { 
     markers[i].setMap(map); 
    } 
} 



function addMarker(point) 
{ 
    var marker=new google.maps.Marker(
    { 
     position: point, 
     icon: icon, 
     map: map 
    }); 
    markers.push(marker); 

    google.maps.event.addListener(marker, "click", function() 
    { 
     var i; 
     for(i=0;i<points.length;i++) 
     { 
      if(points[i].equals(point)) 
      { 
       points.splice(i,1); 
       markers.splice(i,1); 
      } 
     } 
     setAllMap(null); 
     setAllMap(map); 
     alert(points); 
    }); 
} 

google.maps.event.addListener(map, 'click', function(event) { 
    points.push(event.latLng); 
    alert(points[points.length-1]); 
    addMarker(points[points.length-1]); 
}); 

나는 마커의 목록을 유지하려고하고 목록에서 현재 마커를 제거하고지도에 다른 마커를 설정하고 있지만 작동하지 않습니다. 마커를 클릭하여 마커를 제거하려면 마커 수신기에서 수정해야 할 내용을 알려주십시오.

답변

1

모든 마커의 맵을 null으로 잘못 설정했습니다. 에있는 모든 표식을 전에 클릭하여 현재 표시된 표식을 제거해야합니다. 이처럼 addMarker 로직을 변경하는 경우

그래서, 그것은 작동합니다 :

기능 setAllMap (지도) { 을 위해 (var에 나는 = 0; 나는 < markers.length를, 내가 ++) { 마커 [I] .setMap (map); 예에게 답변을 here

+0

감사 작업 } }

function addMarker(point) { var marker = new google.maps.Marker({ position: point, map: map }); markers.push(marker); google.maps.event.addListener(marker, "click", function() { setAllMap(null); var i; for (i = 0; i < points.length; i++) { if (points[i].equals(marker.getPosition())) { points.splice(i, 1); markers.splice(i, 1); } } setAllMap(map); //alert(points); }); } 

. – arpp

+0

도움이되어 기쁩니다. – keune

관련 문제