В моем приложении есть следующий код:
createCargoRoute: function(cargo_id) {
var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();
var storehouse = new google.maps.LatLng(53.243757, 50.269379);
var cargo_orders = this.orders.filter(order => this.cargos[cargo_id]['orders_ids'].includes(order.id));
var cargo_waypoints = cargo_orders.map(cargo_order => cargo_order['waypoint']);
directionsDisplay.setMap(this.$refs.olkonmap.$mapObject);
directionsService.route({
origin: storehouse,
destination: storehouse,
travelMode: 'DRIVING',
waypoints: cargo_waypoints,
optimizeWaypoints: true
}, function(result, status) {
if(status == 'OK') {
directionsDisplay.setDirections(result);
}
});
},
Это работает, но когда я вызываю его во второй раз, чтобы нарисовать другой маршрут, первый маршрут не удаляется с карты. Я прочитал, что мне нужно позвонить directionsDisplay.setDirections(null)
, чтобы очистить направления, и это работает, например, если я добавлю setTimeout(function() { directionsDisplay.setDirections(null); }, 2000);
createCargoRoute функция.
Но если я добавлю directionsDisplay.setDirections(null);
перед любыми действиями в createCargoRoute , это не повлияет на второй вызов. Я думаю, это может быть связано с новым объектом DirectionsRenderer, который создается каждый раз, когда я вызываю функцию. Любой совет будет принят во внимание. Спасибо!