2011-09-27 8 views
5

Uso lo strumento di debug di Chrome per confrontare la mappa di google e altre mappe. Ho trovato per la funzione di misurazione della distanza, google map usa canvas per disegnare il percorso e alcuni altri usano SVG. Suppongo che forse questo è perché la tela è più veloce. Ma SVG ha molte buone parti per disegnare il percorso. C'è qualche altro motivo?Perché google map usa Canvas per misurare la distanza non in SVG?

risposta

10

Ogni elemento SVG è un elemento DOM e con oltre 10.000 percorsi SVG provoca un rallentamento notevole rispetto a Canvas. Quindi una possibilità è la sua esecuzione.

Ma originariamente Android non rendeva/supporta SVG. Questa è probabilmente la vera ragione per cui Google ha scelto di utilizzare Canvas.

Oggi, Tablet Android (3.0+) ha il supporto per SVG ma 1.0-2.3 no.

+0

Grazie mille! E per il motivo della performance, se disegno una linea sia su canvas che su SVG, i percorsi SVG attiveranno il reflusso? e per quanto riguarda la tela? ri-dipingere solo? – cnzhenyu

+0

Una volta caricati tutti gli oggetti SVG DOM, le cose non sono * troppo * cattive. Entrambi saranno abbastanza lenti nel ridisegnare tutti i 10.000 oggetti, ma c'è molto più spazio per migliorare le prestazioni di quello Canvas. –

+0

@SimonSarris Mi piacerebbe sapere per quanto riguarda la lentezza nel ridisegnare di dire 10.000 oggetti, come Canvas può migliorare su questo? Grazie! – kakacii

Problemi correlati