Итак, я проверил предыдущие вопросы по этому поводу, которые все относятся к V2, что бесполезно.
Итак, Но. В следующий раз, когда я использую его (с новыми маркерами в массиве), он просто добавляет туда ломаную линию, не удаляя предыдущую. Кажется, я перепробовал все, удалив из первого массива 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 необходимо инициализировать в области видимости, это сбрасывает массив каждый раз, когда он используется, и очищает его должным образом. (Также спасибо за введенные ниже данные, чтобы сделать код немного лучше.