Javascript Google Maps api v3-在单击事件中添加新标记之前删除标记
我正在使用下面的代码,并试图找出如何添加一个我可以调用的函数,该函数将在添加新标记之前删除以前的标记。地图使用onclick事件在用户单击的位置添加标记。。。基本上,我只想在地图上的一个标记在任何给定的时间 我已经搜索和尝试了几乎所有的东西,但一定是做错了。。。请给代码一个快速的一瞥,让我知道它将如何实现 万分感谢Javascript Google Maps api v3-在单击事件中添加新标记之前删除标记,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我正在使用下面的代码,并试图找出如何添加一个我可以调用的函数,该函数将在添加新标记之前删除以前的标记。地图使用onclick事件在用户单击的位置添加标记。。。基本上,我只想在地图上的一个标记在任何给定的时间 我已经搜索和尝试了几乎所有的东西,但一定是做错了。。。请给代码一个快速的一瞥,让我知道它将如何实现 万分感谢 <script> function initialize() { var mapOptions = { zoom: 11, cente
<script>
function initialize() {
var mapOptions = {
zoom: 11,
center: new google.maps.LatLng(document.getElementById('field_lat').value,document.getElementById('field_lng').value),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
google.maps.event.addListener(map, 'click', function(e) {
// SET MY UI SEARCH TEXT FIELDS TO THE LAT AND LNG
document.getElementById('field_lat').value = e.latLng.lat();
document.getElementById('field_lng').value = e.latLng.lng();
placeMarker(e.latLng, map);
});
}
function placeMarker(position, map) {
//Marker.setMap(null);
var Marker = new google.maps.Marker({
position: position,
map: map
});
map.panTo(position);
$("#listbox ul").empty();
docall();
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
只需执行以下操作:
markersArray.push(marker);
google.maps.event.addListener(marker,"click",function(){});
I.声明一个全局变量:
var markersArray = [];
二,。定义一个函数:
function clearOverlays() {
for (var i = 0; i < markersArray.length; i++ ) {
markersArray[i].setMap(null);
}
}
四、 在需要时调用函数
clearOverlays();
或
就这样
希望这对你有帮助
来源:只要删除上一个标记(如果有)
var Marker;
function placeMarker(position, map) {
if(typeof marker!= 'undefined')
marker.setMap(null);
var Marker = new google.maps.Marker({
position: position,
map: map
});
map.panTo(position);
$("#listbox ul").empty();
docall();
}
您可以在第一次单击时设置标记,然后仅在后续单击时更改位置
var marker;
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event.latLng);
});
function placeMarker(location) {
if (marker == null) {
marker = new google.maps.Marker({
position: location,
map: map
});
} else {
marker.setPosition(location);
}
}
为什么不将现有标记移动到新位置?不需要删除和重新创建。可能的副本我不得不做一些调整,但能够遵循您提供的代码,它的工作非常好。非常感谢!
clearOverlays();
map.clearOverlays();
var Marker;
function placeMarker(position, map) {
if(typeof marker!= 'undefined')
marker.setMap(null);
var Marker = new google.maps.Marker({
position: position,
map: map
});
map.panTo(position);
$("#listbox ul").empty();
docall();
}
var marker;
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event.latLng);
});
function placeMarker(location) {
if (marker == null) {
marker = new google.maps.Marker({
position: location,
map: map
});
} else {
marker.setPosition(location);
}
}