2010-03-16 4 views
16

나는 하나의 방법을 알고 :Google지도에서 아이콘을 삭제하려면 어떻게해야하나요?

마우스 오른쪽 버튼으로 클릭하고 '나를 삭제'를 클릭

어떻게 다른 내가 Google지도에서 마커를 삭제할 수 있습니까?

이 지금 내 코드입니다 :

GEvent.addListener(marker, 'mousedown', function(e) { 
    alert(e) 
    if (e.button == 2){ 
    alert('sss') 
    map.removeOverlay(marker); 
} 

내가 마우스 오른쪽 버튼으로 클릭하면, 그것은 (40.23141543543321,114.3214121421) 경고는;

mousedown(latlng:GLatLng) 

그래서 난 e 이벤트 아니라고 생각하지만, 나는 'singlerightclick'를 사용하는 경우 '하여 GLatLng'는

, 아무 때 권리가 발생하지 : 나는 API에서 볼 때,이 참조 -딸깍 하는 소리.

이 내 전체 코드입니다 :

GEvent.addListener(map, 'singlerightclick', function(point, source, overlay) { 
    map.removeOverlay(marker); 
     }); 

하지만,이 상관없이 마커를 삭제 내가지도를 클릭하는 위치 :

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <meta name="viewport" content="width=device-width,minimum-scale=0.3,maximum-scale=5.0,user-scalable=yes"> 

    </head> 
<body onload="initialize()" onunload="GUnload()"> 

<style type="text/css"> 
*{ 
    margin:0; 
    padding:0; 
    } 
#head{ 
    height:70px; 
    background:#a00; 
    } 
#logo{ 
color:white; 
font-weight:bold; 
line-height:70px; 
margin-left:100px; 
    } 
#main{ 
position:relative; 
margin-top:1px; 
    } 
#left{ 
border:1px solid red; 
height:700px; 
margin-right:202px; 
    } 
#top{ 
font-weight:bold; 
line-height:70px; 
margin-left:120px; 
    } 
#map_canvas{ 
height:630px; 
    } 
#right{ 
background:#ff0; 
float:right; 
height:702px; 
position:absolute; 
right:0; 
top:0; 
width:200px; 
    } 

.container{ 
border:5px solid red; 
height:50px; 
margin-left:50px; 
padding:17px 0 0 20px; 
width:85%; 
    } 
.b{ 
    background:url(img/xr.png) right no-repeat; 
    } 
.b > div{ 
    width:30px; 
    height:31px; 
    background:url(img/xpinIcon.png) 0 0 no-repeat; 
    } 
.c{ 
    background:url(img/xr.png) right no-repeat; 
    margin-left:60px; 
    } 
.c > div{ 
    width:30px; 
    height:31px; 
    background:url(img/xlineIcon.png) 0 0 no-repeat; 
    } 
</style> 
<!--<div style="width:100px;height:100px;background:blue;"> </div>--> 
<div id=head> 
    <div id=logo>logo</div> 
</div> 
<div id=main> 
    <div id=left> 
     <div id=top>search 
     <input type="text" name="" id="" style="width:80%"/> 
     </div> 
     <div id="map_canvas" ></div> 
    </div> 
    <div id=right ></div> 
</div> 


<script src="jquery-1.4.2.js" type="text/javascript"></script> 
<script src="jquery-ui-1.8rc3.custom.min.js" type="text/javascript"></script> 
<script type="text/javascript" src="nicEdit.js"></script> 
    <script src="http://ditu.google.cn/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAA-7cuV3vqp7w6zUNiN_F4uBRi_j0U6kJrkFvY4-OX2XYmEAa76BSNz0ifabgugotzJgrxyodPDmheRA" type="text/javascript"></script> 

<script type="text/javascript"> 
var aFn; 
//********** 
function initialize() { 
    if (GBrowserIsCompatible()) { 

     //************ 
     function a() { 
     } 
     //if(GControl) 
     a.prototype = new GControl(); 
     a.prototype.initialize = function(map) { 
      var container = document.createElement("div"); 
      var a=''; 
      for(i=0;i<2;i++){ 
       a+='<div class=b style="position:absolute;"><div></div></div>' 
       } 
      for(i=0;i<2;i++){ 
       a+='<div class=c style="position:absolute;"><div></div></div>' 
       } 
      $(container).addClass('container'); 
      $(map.getContainer()).append($(container).append(a)); 
      return container; 
     } 
     a.prototype.getDefaultPosition = function() { 
      return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7)); 
     } 

     //************ 
       var map = new GMap2(document.getElementById("map_canvas")); 
       map.addControl(new a()); 
       map.enableScrollWheelZoom(); 
       var center=new GLatLng(39.9493, 116.3975); 
       map.setCenter(center, 13); 


     aFn=function(x,y){ 

      var point =new GPoint(x,y) 
      point = map.fromContainerPixelToLatLng(point); 
      var marker = new GMarker(point,{draggable:true}); 

      var a=$(
      '<form method="post" action="" style="height:100px;overflow:hidden;width:230px;">'+ 
       '<textarea id="area1" cols="22" rows="5" style="border:none">cilck edit</textarea>'+ 
      '</form>') 

      var once; 
      a.click(function(){ 
       if(!once)var area1=new nicEditor({buttonList : ['bold','fontSize','left','center','right','forecolor']}).panelInstance('area1') 
     once=1; 
     }) 
      GEvent.addListener(marker, "click", function(){ 
       marker.openInfoWindowHtml(a[0]); 
     }); 


      map.addOverlay(marker); 
     GEvent.addListener(marker, 'singlerightclick', function(point, source, overlay) { 
      alert('sss') 
      map.removeOverlay(marker); 
      }); 

      } 
     $(".b").draggable({ 
      revert: true, 
      revertDuration: 0 
      }); 
     $('.container').droppable({greedy: true}); 

     $("#map_canvas").droppable({ 
     drop: function(event,ui) { 
      aFn(event.pageX-$("#map_canvas").offset().left,event.pageY-$("#map_canvas").offset().top); 
      //} 
      } 
     }); 
     } 
} 
//************* 
</script> 
</body> 
</html> 

은 내가이 그것을 알아 냈다고 생각 .

내가 지금 생각 :

GEvent.addListener(map, 'singlerightclick', function(pixel,tile, marker) { 
    if(marker) 
    map.removeOverlay(marker); 
     }); 
+0

업데이트 내 대답을 Google에 '오른쪽 클릭하면'이벤트 리스너를 추가합니다. –

+0

@ zjm1126 "대답" – Korayem

답변

8
var marker = new GMarker(latlng); 
map.addOverlay(marker); 

GEvent.addListener(marker, 'singlerightclick', function(point, source, overlay) { 
    this.setMap(null); 
}); 
+0

안녕 Björn, 귀하의 코드를 감사하지만 아직 성공적으로 업데이 트하십시오 업데이 트를 업데이 트하십시오 업데이 트하십시오. – zjm1126

+0

안녕 Björn, 아직 성공하지 못했습니다, 내 문제가 업데이 트되었습니다 .. – zjm1126

+0

Korayem에서 아래 답변은 나를 위해 작동합니다. 나는 google지도 api v3에 –

46

link에 따르면 단순히

marker.setMap(null); 
+2

그것이 저를 위해 일한 유일한 것입니다! – igordcard

+0

위로 올려주세요 :) – Korayem

+1

@ zjm1126 "대답"을 업데이트하십시오 – Korayem

3

이 removeOverlay (처럼 보이지 않는)가 V3의 API에 할 수있는 . 고마워, Korayem!

+0

당신은 환영합니다 :) – Korayem

1

V3 API를 사용하여 누구나하여 Marker 보이지을 만들 수 있습니다

marker.setVisible(false);

0

오버레이

google.maps.event.addListener(overlay, 'rightclick', function (event) { 
}) 
관련 문제