gpt4 book ai didi

javascript - 标记.setMap(null);不起作用

转载 作者:行者123 更新时间:2023-12-03 07:28:46 25 4
gpt4 key购买 nike

我想从谷歌地图中删除所有旧标记并添加新标记,但 setMap(null) 不起作用,它会添加新标记而不删除旧标记。请查看我的代码

                var markers = data['map'];
if (marker != null) {
marker.setMap(null);
}
marker.setMap(null);
for (var i = 0; i < markers.length; i++) {
alert(1);
var data = markers[i];
var infoWindow = new google.maps.InfoWindow();
var img1 = data.imageUrl != '' ? '<img src= <?php echo $baseUrl; ?>/uploads/property/thumb/' + data.imageUrl + '>' : "";

var bed1 = data.beds != '' ? data.beds + ' beds' : "";
var bath1 = data.bath != '' ? data.bath + ' bath' : "";
var squarefeet1 = data.areaSqaureFeet != '' ? data.areaSqaureFeet + ' squarefeet' : "";
var contentString = '<div id="content">';
contentString += img1+ '<p>' + data.propertyAddress + ' </p><p> ' + bed1 + ' </p><p>' + bath1 + ' </p><p>' + squarefeet1 + ' </p>';
contentString += '</div>';

var myLatlng = new google.maps.LatLng(data.lat, data.lng);
marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: contentString
});

google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(this.title);
infowindow.open(map, this);
});
}
}

最佳答案

我不明白你在哪里定义了“标记”变量。但是,一般来说,您应该创建一个标记 -> 将其插入全局定义的数组(或只是您可以访问的数组)中,以便您可以引用它。然后,您可以运行标记数组并将其设置为空。所以你可以这样做:

var markers = []; //Global Marker array to keep references
var marker = new google.maps.Marker({
position: {lat: lat, lng: lng},
icon: icon,
map: map
});
markers.push(marker);

这将使您的标记易于访问。如果你想将它们设置为空你可以编写一个像这样的函数:

removeMarker: function () {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
markers = [];
},

希望有所帮助。

关于javascript - 标记.setMap(null);不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35891987/

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