如何删除固定标记,该标记添加到包含谷歌地图的div元素中。下面的代码行使用类&#39; centerMarker&#39;,$('<div/>').addClass('centerMarker').appendTo(map.getDiv());
添加它
但我如何删除它(理想情况下使用Javascript)?
以下是添加固定标记的full JS Fiddle example(来自this stack overflow question)。 JS Fiddle示例中的代码也如下所示。
HTML
<div id="map_canvas"></div>
CSS
body,html,#map_canvas{height:100%;margin:0;}
#map_canvas .centerMarker{
position:absolute;
/*url of the marker*/
background:url(http://maps.gstatic.com/mapfiles/markers2/marker.png) no-repeat;
/*center the marker*/
top:50%;left:50%;
z-index:1;
/*fix offset when needed*/
margin-left:-10px;
margin-top:-34px;
/*size of the image*/
height:34px;
width:20px;
cursor:pointer;
}
的Javascript
function initialize() {
var mapOptions = {
zoom: 14,
center: new google.maps.LatLng(52.5498783, 13.425209099999961),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
$('<div/>').addClass('centerMarker').appendTo(map.getDiv())
//do something onclick
.click(function(){
var that=$(this);
if(!that.data('win')){
that.data('win',new google.maps.InfoWindow({content:'this is the center'}));
that.data('win').bindTo('position',map,'center');
}
that.data('win').open(map);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
答案 0 :(得分:1)
您可以使用GoogleMaps DOMEvents删除它,例如我们想要在点击时将其删除(似乎更合适,因为至少我们要在标记上显示标记,如果没有,只需删除它来自js代码)。
使用Google Maps API
根据您的示例,只需将此代码添加到initialize
函数
google.maps.event.addDomListener(map, 'click', removeMarker());
以下是JSfiddle
如果您想提醒用户标记消失的原因,请改用函数,如下所示。
function removeMarker(ele){
ele.remove();
alert('Ok the marker is GONE!')
}
google.maps.event.addDomListener(map, 'click', removeMarker(this));
以下是具有该功能的其他JSFiddle。
纯Javascript
如果您想使用纯Javascript代码在初始化函数之外删除它,请在注释上使用remove()方法,例如@Adam点,就像这样。
function removeMarker(elem){
console.log('removed')
elem = document.getElementById("map_canvas");
elem.childNodes[0].remove()
}
setTimeout(function(){ removeMarker(this) }, 3000);
这是纯JS JSFiddle