如何撤消在javascript google maps中创建的标记
我用JavaScript制作了一张谷歌地图。当用户左键单击地图时,它将添加一个pin,因此我希望当用户右键单击该标记时将其删除 我现在已经做了,只是添加了标记如何撤消在javascript google maps中创建的标记,javascript,google-maps,Javascript,Google Maps,我用JavaScript制作了一张谷歌地图。当用户左键单击地图时,它将添加一个pin,因此我希望当用户右键单击该标记时将其删除 我现在已经做了,只是添加了标记 <script> var map; function initMap() { var coords; var next = document.getElementById('next');
<script>
var map;
function initMap() {
var coords;
var next = document.getElementById('next');
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 40.7142700, lng: -74.0059700},
zoom: 4
});
var marker;
map.addListener('click', function(event) {
let lat = event.latLng.lat();
let lng = event.latLng.lng();
placeMarker(event.latLng,map);
next.onclick = function() {
var socket = io.connect("http://localhost:3000");
if(socket !== undefined)
{
console.log('Connected to Live Server');
socket.emit('pin-coords',{
lat:lat,
lng:lng
});
socket.on('redirect', function(destination) {
console.log('am ajuns aici');
window.location.href = destination;
})
}
};
});
function placeMarker(location,map) {
if (marker == null)
{
marker = new google.maps.Marker({
position: location,
map: map
});
} else { marker.setPosition(location); } }
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer>
</script>
,但我的函数placeMarker不返回标记,也找不到右键单击的键代码。如果你能帮助我,我将非常高兴和感激。
提前谢谢你 若要在上将标记的映射属性设置为null,请向标记添加事件侦听器以侦听
右键单击事件。在事件侦听器回调函数中,this
将引用标记,调用this.setMap(null)代码>
代码片段:
var映射;
函数initMap(){
var-coords;
map=new google.maps.map(document.getElementById('map'){
中心:{
拉脱维亚:40.7142700,
液化天然气:-74.0059700
},
缩放:4
});
var标记;
map.addListener('click',函数(事件){
设lat=event.latLng.lat();
设lng=event.latLng.lng();
地点标记(事件、时间、地图);
});
功能位置标记(位置、地图){
如果(标记==null){
marker=新的google.maps.marker({
位置:位置,,
地图:地图
});
marker.addListener('右键单击',函数(){
此.setMap(null);
})
}否则{
标记器。设置位置(位置);
}
}
}
/*始终明确设置贴图高度以定义div的大小
*包含映射的元素*/
#地图{
身高:100%;
}
/*可选:使示例页面填充窗口*/
html,
身体{
身高:100%;
保证金:0;
填充:0;
}
单击地图以添加标记
请不要在公共网站上共享私有API密钥,并确保按照以下要求对其进行限制:
marker.setMap(null);
marker.addListener('rightclick', function() {
this.setMap(null);
});