Domanda

sto disegnando una polilinea con un numero abbastanza grande di lat / lng punti (~ 1000). Ho due cursori (inizio e fine) che permettono all'utente di regolare i limiti di tempo per l'aggiornamento della Polilinea per mostrare i dati tra queste due volte.

Il mio algoritmo di aggiornamento più o meno così:

var mvcPath = new google.maps.MVCArray();

for (var i = 0; i < gpsData.length; i++) {

    if (gpsData[i]['timestamp'] <= endDate && 
        gpsData[i]['timestamp'] >= startDate) {
        mvcPath.push(gpsData[i]['location']);
    }
}

this.path.setPath(mvcPath);

Ora la cosa strana è che quando mi trascina alla fine cursore i ridisegno della linea come previsto, tuttavia quando ho trascinare il cursore di avvio, si ridisegna la linea ad eccezione correttamente ad alti livelli di zoom parti della linea sembrano muoversi un po '(doesn 't fare questo, quando lo zoom in stretta). Ho pensato che potrebbe essere qualcosa a che fare con l'algoritmo di anti alias Google applica al Polilinea ma non faccio quando mi muovo il cursore finale.

Qualcuno sa che cosa sta causando questo sfarfallio?

È stato utile?

Soluzione

Ho messo una soluzione che sembra funzionare per ora. Ho cercato di mantenere il numero di punti coerenti come l'API non sembrava come me aggiungere punti al fronte.

Diciamo che ho una serie di 1000 punti e voglio solo mostrare da 200 - 900. Se ne traggo la posizione del punto 200, 200 volte quindi disegnare il resto dei dati a punto 900, si ferma lo sfarfallio. Per visualizzare 10 -. 330 Vorrei richiamare punto 10, 10 volte quindi disegnare il resto dei dati da punto 330

Credo che questo abbia qualcosa a che il modo in cui Google memorizza internamente le linee della mappa, se si aggiunge alla parte anteriore della linea, può essere necessario ri-index tutta una serie e ridisegnare la linea da zero.

I non accetterà la risposta per qualcuno ora incassa esce con una risposta migliore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top