2011-09-27 6 views
5

Utilizo la herramienta de depuración de Chrome para comparar el mapa de google y otros mapas. Encontré para la función de medición de distancia, el mapa de google utiliza el lienzo para dibujar la ruta y algunos otros usan SVG. Supongo que tal vez esto se deba a que el lienzo es más rápido. Pero SVG tiene muchas partes buenas para dibujar el camino. ¿Hay alguna otra razón?¿Por qué google map usa Canvas para hacer mediciones de distancia no SVG?

Respuesta

10

Cada elemento SVG es un elemento DOM y tener más de 10,000 rutas SVG provoca una desaceleración masiva en comparación con Canvas. Entonces, una posibilidad es el rendimiento de la misma.

Pero originalmente Android no renderizó/admitió SVG. Esa es probablemente la verdadera razón por la cual Google eligió usar Canvas.

Hoy en día, la tableta Android (3.0+) tiene soporte para SVG, pero 1.0-2.3 no.

+0

¡Muchas gracias! Y por el motivo de rendimiento, si dibujo una línea tanto en lienzo como en SVG, ¿las rutas de SVG activarán el re-flujo? y ¿qué tal lienzo? volver a pintar solo? – cnzhenyu

+0

Una vez que todos los objetos SVG DOM están cargados, las cosas no son * demasiado * malas. Ambos serán bastante lentos al volver a dibujar los 10.000 objetos, pero hay mucho más espacio para mejorar el rendimiento del Canvas. –

+0

@SimonSarris Me gustaría saber si se tarda un poco en volver a dibujar, digamos 10,000 objetos, ¿cómo Canvas puede mejorar esto? ¡Gracias! – kakacii

Cuestiones relacionadas