Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
330 L’art du développement Android
Avec la sous-classe de MapActivity, c’est à peu près tout ce dont vous avez besoin pour
débuter. Si vous ne faites rien d’autre, que vous compiliez ce projet et que vous l’installiez
dans l’émulateur, vous obtiendrez une belle carte du monde. Notez, cependant, que
MapActivity est une classe abstraite et que vous devez donc implémenter la méthode
isRouteDisplayed() pour préciser si vous fournissez ou non une gestion des itinéraires.
En théorie, l’utilisateur doit pouvoir faire défiler la carte en utilisant le pad directionnel.
Cependant, ce n’est pas très pratique lorsque l’on a le monde entier dans sa main...
Une carte du monde n’étant pas très utile en elle-même, nous devons lui ajouter quelques
fonctionnalités.
Testez votre contrôle
Pour trouver votre widget MapView, il suffit, comme d’habitude, d’appeler la méthode
findViewById(). Le widget lui-même fournit la méthode getMapController(). Entre le
MapView et le MapController, vous disposez d’un bon nombre de possibilités pour déterminer ce qu’affiche la carte et la façon dont elle se comporte ; les sections suivantes
présentent le zoom et le centrage, qui sont sûrement celles que vous utiliserez le plus.
Zoom
La carte du monde avec laquelle vous démarrez est plutôt vaste. Sur un téléphone, on
préfère généralement consulter une carte ayant une étendue plus réduite – quelques pâtés
de maisons, par exemple.
Vous pouvez contrôler directement le niveau du zoom grâce à la méthode setZoom() de
MapController. Celle-ci attend un paramètre entier représentant le niveau du zoom, où 1
représente la vue du monde entier et 21, le plus fort grossissement que vous pouvez obtenir. Chaque niveau double la résolution effective par rapport au niveau précédent : au
niveau 1, l’équateur fait 256 pixels de large et il en fait 268 435 456 au niveau 21. L’écran
du téléphone n’ayant sûrement pas autant de pixels ; l’utilisateur ne verra donc qu’une
petite partie de la carte centrée sur un endroit du globe. Le niveau 16 montrera plusieurs
Livre Android.book Page 330 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
330 L’art du développement Android
Avec la sous-classe de MapActivity, c’est à peu près tout ce dont vous avez besoin pour
débuter. Si vous ne faites rien d’autre, que vous compiliez ce projet et que vous l’installiez
dans l’émulateur, vous obtiendrez une belle carte du monde. Notez, cependant, que
MapActivity est une classe abstraite et que vous devez donc implémenter la méthode
isRouteDisplayed() pour préciser si vous fournissez ou non une gestion des itinéraires.
En théorie, l’utilisateur doit pouvoir faire défiler la carte en utilisant le pad directionnel.
Cependant, ce n’est pas très pratique lorsque l’on a le monde entier dans sa main...
Une carte du monde n’étant pas très utile en elle-même, nous devons lui ajouter quelques
fonctionnalités.
Testez votre contrôle
Pour trouver votre widget MapView, il suffit, comme d’habitude, d’appeler la méthode
findViewById(). Le widget lui-même fournit la méthode getMapController(). Entre le
MapView et le MapController, vous disposez d’un bon nombre de possibilités pour déterminer ce qu’affiche la carte et la façon dont elle se comporte ; les sections suivantes
présentent le zoom et le centrage, qui sont sûrement celles que vous utiliserez le plus.
Zoom
La carte du monde avec laquelle vous démarrez est plutôt vaste. Sur un téléphone, on
préfère généralement consulter une carte ayant une étendue plus réduite – quelques pâtés
de maisons, par exemple.
Vous pouvez contrôler directement le niveau du zoom grâce à la méthode setZoom() de
MapController. Celle-ci attend un paramètre entier représentant le niveau du zoom, où 1
représente la vue du monde entier et 21, le plus fort grossissement que vous pouvez obtenir. Chaque niveau double la résolution effective par rapport au niveau précédent : au
niveau 1, l’équateur fait 256 pixels de large et il en fait 268 435 456 au niveau 21. L’écran
du téléphone n’ayant sûrement pas autant de pixels ; l’utilisateur ne verra donc qu’une
petite partie de la carte centrée sur un endroit du globe. Le niveau 16 montrera plusieurs
Livre Android.book Page 330 Dimanche, 8. novembre 2009 12:23 12
