Итак, я проверил предыдущие вопросы по этому вопросу, которые все относятся к V2, который не помогает.
Итак, я создаю два маркера, сохраняю их в массиве как маркеры ["to"] и маркеры["from"]
А затем добавьте их с этим
function route(){
for(var key in markers) {
flightPlanCoordinates.push(markers[key].position);
}
flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
Brilliant.Но.В следующий раз, когда я использую его (с новыми маркерами в массиве), он просто добавляет туда полилинию, не удаляя предыдущую.Кажется, я все перепробовал, удалив из первого массива flightPath, setMap (null) и т. Д.
Как правильно удалить предыдущую строку перед рисованием новой?
РЕДАКТИРОВАТЬ: РЕШЕННОЕ РЕШЕНИЕ
function route(){
var flightPlanCoordinates = [];
for(var key in markers) {
flightPlanCoordinates.push(markers[key].position);
}
if(flightPath) {
flightPath.setPath(flightPlanCoordinates);
} else {
flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
}
Причина: flightPlanCoordinates необходимо инициализировать в области видимости: при каждом использовании он сбрасывает массив, правильно его очищая.(Также спасибо за ввод, сделанный ниже, чтобы сделать код немного лучше.