我想从谷歌地图中删除一个标记,想象我有一个带有两个对象的json对象:
markers: [
{ lat:"35.554588", lng:"-5.325555" },
{ lat:"35.594588", lng:"-5.327555" }
]
以下方法将此对象添加到地图中:
getAddressOnChangeDepart(event){
this.myLatLngDepart = event.geometry.location;
this.markers.push(this.myLatLngDepart);
for(var i = 0; i < this.markers.length; i++){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(this.markers[i].lat(),this.markers[i].lng()),
map: this.map,
title: 'Hello World!'
});
}
}
它运作良好,但我的问题是当我从标记对象中删除一个对象时,属于它的标记仍然出现在地图中。如何从地图中删除(已删除对象的)标记?
答案 0 :(得分:0)
首先,您需要维护每个标记的引用。使用var marker =
即表示marker
变量只会是您创建的最后一个标记。
一旦您有对每个标记的引用,您就可以通过调用marker.setMap(null);
轻松地从地图中删除标记,如下例所示:https://developers.google.com/maps/documentation/javascript/examples/marker-remove
示例:
var markerReference = [];
getAddressOnChangeDepart(event){
this.myLatLngDepart = event.geometry.location;
this.markers.push(this.myLatLngDepart);
for(var i = 0; i < this.markers.length; i++){
markerReference[i] = new google.maps.Marker({
position: new google.maps.LatLng(this.markers[i].lat(),this.markers[i].lng()),
map: this.map,
title: 'Hello World!'
});
}
}
removeMarker(index) {
markerReference[index].setMap(null);
}