Попытка добавить функцию удаления маркера, щелкнув правой кнопкой мыши, чтобы добавить код маркера, щелкните левой кнопкой мыши.
Привет и заранее спасибо. Следующий модифицированный пример кода Google создает маркеры при щелчках левой кнопкой мыши и добавляет эти маркеры в массив. Эта часть отлично работает. Я попытался добавить второй обработчик событий, который удаляет маркер, если на нем щелкнуть правой кнопкой мыши. Я перепробовал много вариантов без успеха. Насколько я понимаю, использование marker.setMap (null) установит для связанного элемента массива значение null и удалит маркер с дисплея. Еще раз спасибо!
<!DOCTYPE html>
<html>
<head>
<title>Marker Test</title>
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map-canvas, #map_canvas {
height: 100%;
}
#map-canvas, #map_canvas {
height: 650px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
var map;
var markers = [];
function initialize() {
var NY = new google.maps.LatLng(40.739112,-73.785848);
var mapOptions = {
zoom: 16,
center: NY,
mapTypeId: google.maps.MapTypeId.TERRAIN
}
map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
google.maps.event.addListener(map, 'click', function(event) {
addMarker(event.latLng);
});
google.maps.event.addListener(map, 'rightclick', function(event) {
marker.setMap(null);
});
}
function addMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map
});
markers.push(marker);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>
1 ответ
Вы хотите, чтобы прослушиватель событий "щелкнул правой кнопкой мыши" на маркере, а не на карте. Поместите это в функцию addMarker:
function addMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map
});
google.maps.event.addListener(marker, 'rightclick', function(event) {
marker.setMap(null);
});
markers.push(marker);
}
Примечание: это удалит маркер с карты, но не удалит его из массива маркеров.
Удалите один на карте, удалите эти строки:
google.maps.event.addListener(map, 'rightclick', function(event) {
marker.setMap(null);
});