gpt4 book ai didi

google-maps-api-3 - 尝试添加右键删除标记功能,以工作左键添加标记代码

转载 作者:行者123 更新时间:2023-12-04 07:49:56 26 4
gpt4 key购买 nike

您好,提前感谢您。以下修改后的示例 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>

最佳答案

您希望标记上的“右键单击”事件监听器,而不是 map 。放到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);
}

注意:这将从 map 中删除标记,但不会将其从标记数组中删除。

删除 map 上的那一行,删除这些行:

google.maps.event.addListener(map, 'rightclick', function(event) {
marker.setMap(null);
});

关于google-maps-api-3 - 尝试添加右键删除标记功能,以工作左键添加标记代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17396129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com