2010-03-16 19 views
16

Ben sadece bir yol biliyor:Google Haritalar’daki bir işaretleyiciyi nasıl silebilirim?

Sağ tıklayın ve 'Beni silme tıklayın

başka nasıl Google Maps üzerinde işaretleri silebilir?

Bu artık benim kodudur:

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

i sağ tıkladığınızda, (40.23141543543321,114.3214121421) uyarır;

mousedown(latlng:GLatLng) 

yüzden e bir olay olmadığını düşünüyorum, ama 'singlerightclick' kullanırsanız bir 'GLatLng'

, hiçbir şey zaman ben doğru olur: Ben API baktığınızda, bunu gördüm tuşa tıklayın.

Bu benim tam kodu:

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

ama hayır, bu olursa olsun işaretleyici kaldırır Haritaya tıklayın nerede:

<!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> 

Ben bu ile bunu anladım düşünce .

sanırım şimdi düşünüyorum:

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

Güncelleme cevabım google a 'rightclick' olay dinleyicisi ekleyin. –

+0

@ zjm1126 lütfen "cevabınız" – Korayem

cevap

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

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

hi Björn'i güncelleyin, kodunuz için teşekkürler, ancak başarılı değil, güncellemeye bakın. – zjm1126

+0

Merhaba Björn, henüz başarılı değil, benim sorunum güncellendi .. – zjm1126

+0

Korayem aşağıdaki cevap benim için çalışıyor. Ben google maps api v3 –

46

bu link göre sadece

marker.setMap(null); 
+2

üzerinde çalışıyorum benim için çalışan tek şeydi! – igordcard

+0

Kadar öyleyse lütfen :) – Korayem

+1

@ zjm1126 Lütfen "answer" güncelleyin – Korayem

3

o removeOverlay (gibi görünmüyor) v3 API olduğunu yapabilirim . Teşekkürler bir demet, Korayem!

+0

Siz welcomne :) – Korayem

1

v3 API kullanan herkes tarafından Marker görünmez yapabilir:

marker.setVisible(false);

0

bindirme

google.maps.event.addListener(overlay, 'rightclick', function (event) { 
}) 
İlgili konular