Я включил google map
для проекта, с которым я работаю. У меня есть несколько флажков, которые являются динамическими, и при нажатии на флажок, согласно которому эти местоположения будут отображаться на google map
. Как следует : Дело в том, что он не обновляет и не удаляет предыдущие маркеры, когда я снова или снова отмечаю или снимаю эти флажки.
Vue Component
:
<div v-for="vnos in vehicle_nos">
<input class="" type="checkbox" name="vehicle_num" :value="vnos.name" v-model="vehicle_nums" @change="getVehicleNumbers(vehicle_nums)">
<label for="vehicle_num">{{vnos.name}}</label><br>
</div>
функции Я запускаю:
getVehicleNumbers(vehicle_num){
this.allSelectedVehicles = vehicle_num;
axios.post('gps/get-gps-location/'+this.allSelectedVehicles)
.then(response => {
for (let i = 0; i < response.data.data.length; i++) {
this.all_data = JSON.parse(response.data.data[i]);
this.longtitudes = this.all_data.item.pos.x;
this.latitudes = this.all_data.item.pos.y;
let longlatitude = this.latitudes+','+this.longtitudes;
this.geocoder = new google.maps.Geocoder;
this.infowindow = new google.maps.InfoWindow;
//here I pass those coordinates to geocodeLatLng() function
this.geocodeLatLng(this.geocoder, this.map, this.infowindow, longlatitude);
}
}).catch(Erors => {
console.log('errors');
});
},
geocodeLatLng(geocoder, map, infowindow, longlatitude = null) {
var input = longlatitude;
var latlngStr = input.split(',', 2);
var latlng = {lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1])};
//latlng looks like '6.916333,79.861018' this
geocoder.geocode({'location': latlng}, function(results, status) {
if (status === 'OK') {
if (results[0]) {
map.setZoom(11);
var marker = new google.maps.Marker({
position: latlng,
map: map,
});
infowindow.setContent(results[0].formatted_address);
infowindow.open(map, marker);
} else {
// alert('No results found');
}
} else {
// alert('Geocoder failed due to: ' + status);
}
});
},
По моему controller
Я передаю данныекак массив к ответу в axios.post('gps/get-gps-location/'+this.allSelectedVehicles)
этом.
Затем я зацикливаю все эти и устанавливаю маркеры один за другим. Но мне нужно удалить все маркеры из google map
и отобразить данные о предстоящих ответах. Он не удаляет и показывает предстоящие маркеры, а также существующие маркеры. Таким образом, есть несколько маркеров на одну точку.
Я также попробовал большинство приведенных примеров и ссылок на stackoverfow, но не смог найти лучшего решения. Ваша помощь очень ценится.