Quindi ho controllato le domande precedenti su questo argomento, che riguardano tutte V2, il che non è di alcun aiuto.Google Maps Polyline - Come lo rimuovo?
Così, ho creare due marcatori, salvarli in un array come marcatori [ "a"] e marcatori [ "da"]
quindi aggiungerli alla presente
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);
}
brillante. Ma. La prossima volta che lo uso (con nuovi marker nell'array) aggiunge solo una polilinea lì senza rimuovere quella precedente. Mi sembra di aver provato tutto, rimuovendo dal primo array, il flightPath, setMap (null) e così via.
Qual è il modo corretto di rimuovere la riga precedente prima di disegnarne una nuova?
EDIT: risolto Soluzione
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);
}
}
Motivo: flightPlanCoordinates deve essere inizializzato nell'ambito, questo resetta l'array ogni volta che viene usato, pulizia correttamente. (Grazie anche per l'ingresso di seguito per rendere il codice un po 'più bello.
Puoi condividere un collegamento di funzionamento di questo progetto? Sto facendo qualcosa di simile per una compagnia aerea locale. – andufo