2010-03-16 21 views
16

मैं सिर्फ एक ही रास्ता के बारे में पता:मैं 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 एक घटना नहीं है, लेकिन एक 'GLatLng'

अगर मैं 'singlerightclick' का उपयोग, कुछ नहीं होता जब मैं सही क्लिक करें।

यह मेरा पूरा कोड है:

<!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(point, source, overlay) { 
    map.removeOverlay(marker); 
     }); 

लेकिन नहीं, इस मार्कर कोई बात नहीं निकालता है जहां मैं मानचित्र पर क्लिक करें ।

मुझे लगता है कि मैं अब है:

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

मेरा उत्तर अपडेट किए गए Google के लिए एक 'rightclick' घटना श्रोता जोड़ें। –

+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

hi Björn, अभी तक सफल नहीं है, मेरी समस्या अपडेट की गई .. – zjm1126

+0

Korayem से नीचे दिए गए उत्तर मेरे लिए काम करता है। मैं Google नक्शे एपीआई v3 –

46

इस link के अनुसार आप बस कर सकते हैं

marker.setMap(null); 
+2

पर हूं जो एकमात्र चीज थी जो मेरे लिए काम करती थी! – igordcard

+0

इसे ऊपर रखें :) – Korayem

+1

@ zjm1126 कृपया "उत्तर" – Korayem

3

यह removeOverlay (तरह नहीं दिखता है) में v3 API में है । धन्यवाद एक गुच्छा, कोरयम!

+0

आप स्वागत करते हैं :) – Korayem

1

v3 API का उपयोग कर किसी को भी द्वारा एक Marker अदृश्य कर सकते हैं:

marker.setVisible(false);

0

ओवरले

google.maps.event.addListener(overlay, 'rightclick', function (event) { 
}) 
संबंधित मुद्दे