2010-09-08 22 views
2

Si vous avez utilisé l'application Web Google Maps sur votre iphone ou ipad, vous savez de quoi je parle. Vous ne pouvez pas voir mes doigts dans cette capture d'écran, mais ceci est à mi-pincée (si vous voulez) zoom arrière. La zone détaillée était la zone de visualisation initiale de la carte et la partie externe floue est la carte supplémentaire qui est apparue à mi-parcours.Comment la mise à l'échelle de google maps (web app) est-elle si fluide sur l'iphone/ipad avec le geste/pincement?

zooming out with gesture

La fonction pinch-to-zoom qui utilise l'entrée tactile geste échelles de la carte actuellement en vue de vivre d'une manière qui est lisse il ressemble à la magie. Nous essayons d'agrandir les images et de reproduire cette mise à l'échelle en douceur. Est-ce que quelqu'un sait comment ils le font?

Nous ne savons pas s'il s'agit d'un seul élément img mis à l'échelle. Ou peut-être que tous les éléments img dans leur matrice de grille relative sont en quelque sorte tous mis à l'échelle en une fois (cela semble un peu improbable). Peut-être que c'est beaucoup d'éléments canvas .. ou un grand élément canvas (dont nous doutons également après une quantité raisonnable de tests). S'il vous plaît, toutes les suggestions, idées ou réponses (si vous êtes de Google) serait génial.

+0

La théorie actuelle est mise à l'échelle simplement beaucoup de (256x256) 'éléments img' avec une optimisation de la minuterie sans blocage. Je ne peux pas le prouver pour le moment. Des idées là-bas? –

+0

Travail sur CSS3 [accélération matérielle] (http://cubiq.org/scrolling-div-on-iphone-ipod-touch) [Transitions 3d pour webkit] (https://developer.apple.com/library/safari/ # documentation/AppleApplications/Référence/SafariCSSRef/Articles/Functions.html) –

Répondre

1

Vous devez utiliser les transformations CSS3 accélérées matériellement. par exemple.

  • translate3d() au lieu de traduire()
  • Scale3D() au lieu de l'échelle()

Seulement safari mobile prend en charge actuellement l'accélération matérielle. On ne sait pas quand Google implémentera cela pour les versions Android de son navigateur webkit.