C'est le 15e anniversaire de Google Maps Platform. Découvrez les dernières actualités et annonces.

Mode simplifié

Le SDK Maps pour Android peut diffuser une image bitmap d'une carte, offrant une interactivité limitée à l'utilisateur. Il s'agit d'une carte en mode simplifié.

Exemples de code

Le référentiel ApiDemos sur GitHub inclut des exemples qui illustrent l'utilisation du mode simplifié :

  • LiteDemoActivity : Principes de base de l'utilisation d'une carte en mode simplifié
  • LiteListDemoActivity : Afficher correctement des cartes sous forme de liste à l'aide du mode simplifié

Présentation du mode simplifié

Une carte en mode simplifié est une image bitmap d'une carte à un emplacement géographique et avec un niveau de zoom donnés. Le mode simplifié accepte tous les types de cartes (normal, mixte, satellite et relief) et propose un sous-ensemble des fonctionnalités fournies par l'API complète. Le mode simplifié est utile lorsque vous souhaitez fournir un certain nombre de cartes dans un flux, ou une carte trop petite pour offrir une véritable interaction.

Les utilisateurs qui visualisent la carte ne peuvent pas effectuer de zoom ni de panoramique. Les icônes présentes sur la carte permettent aux utilisateurs de visionner la carte dans l'application mobile Google Maps et de demander des itinéraires.

Ajouter une carte en mode simplifié

Le mode simplifié utilise les mêmes classes et les mêmes interfaces que la version complète de l'API Google Maps pour Android. Vous pouvez définir une GoogleMap en mode simplifié de deux façons :

  • Soit en tant qu'attribut XML d'une classe MapView ou MapFragment
  • Soit dans l'objet GoogleMapOptions

En tant qu'attribut XML d'une classe MapView ou MapFragment

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.gms.maps.MapFragment"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraZoom="13"
    map:mapType="normal"
    map:liteMode="true"/>

Dans l'objet GoogleMapOptions

GoogleMapOptions options = new GoogleMapOptions().liteMode(true);

Pour plus d'informations sur la définition de l'état initial de la carte, consultez le guide dédié à l'objet Carte.

Objets Intent utilisés pour lancer une vue de carte ou une demande d'itinéraire

Par défaut, une barre d'outils située dans l'angle inférieur droit de la carte contient des icônes qui permettent d'accéder à un type de vue de carte ou de rechercher un itinéraire dans l'application mobile Google Maps. Vous pouvez désactiver la barre d'outils en appelant UiSettings.setMapToolbarEnabled(false). Pour plus d'informations, consultez la documentation de la barre d'outils.

De même, par défaut, lorsqu'un utilisateur appuie sur la carte, l'API lance l'application mobile Google Maps. Vous pouvez modifier ce paramètre en utilisant GoogleMap.setOnMapClickListener() pour définir votre propre écouteur. Vous pouvez également désactiver les événements de clic sur la carte en appelant setClickable() sur la vue contenant la classe MapView ou MapFragment. Pour en savoir plus sur ces deux techniques, consultez la documentation sur les événements.

Événements liés au cycle de vie

Lorsque l'API est utilisée en mode interactif complet, la classe MapView doit transmettre toutes les méthodes du cycle de vie de l'activité aux méthodes correspondantes de la classe MapView. Voici quelques exemples de méthodes de cycle de vie : onCreate(), onDestroy(), onResume() et onPause().

Lorsque la classe MapView est utilisée en mode simplifié, la transmission des événements de cycle de vie est facultative, sauf dans les situations suivantes :

  • Il est obligatoire d'appeler onCreate(), sinon la carte ne s'affichera pas.
  • Si vous souhaitez afficher le point Ma position sur votre carte en mode simplifié et utiliser la source de géolocalisation par défaut, vous devez appeler onResume() et onPause(), car la source n'est actualisée qu'entre ces deux appels. Si vous utilisez votre propre source de géolocalisation, il n'est pas nécessaire d'appeler ces deux méthodes.

Fonctionnalités de l'API prises en charge

Le tableau suivant décrit le comportement d'une carte en mode simplifié pour chaque domaine de fonctionnalité de l'API. Si une application appelle une méthode qui n'est pas prise en charge en mode simplifié, l'API envoie un message d'avertissement.

Fonctionnalité
Types de carte
Pris en charge ? Oui
Les types de carte suivants sont disponibles via GoogleMapOptions.mapType() et GoogleMap.setMapType() : MAP_TYPE_NORMAL, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, MAP_TYPE_HYBRID, MAP_TYPE_NONE.
Polylignes, polygones, cercles
Pris en charge ? Oui
En mode simplifié, la fonctionnalité de formes correspond à celle de la version complète de l'API.
Projection
Pris en charge ? Oui
En mode simplifié, la fonctionnalité de projection correspond à celle de la version complète de l'API.
Ma position
Pris en charge ? Oui
En mode simplifié, la fonctionnalité du calque Ma position correspond à celle de la version complète de l'API.
Marge extérieure de carte
Pris en charge ? Oui
En mode simplifié, la fonctionnalité de marge extérieure de carte correspond à celle de la version complète de l'API.
Fenêtres d'informations
Pris en charge ? Oui
Si vous définissez le title() d'un repère, la fenêtre d'informations par défaut apparaît dès que l'utilisateur appuie sur le repère. Vous pouvez afficher la fenêtre d'informations par programmation en appelant showInfoWindow() sur le repère. Vous pouvez également créer des fenêtres d'informations personnalisées via l'interface InfoWindowAdapter.
Styles de carte de base personnalisés
Pris en charge ? Oui
Le SDK Maps pour Android prend en charge le style personnalisé de la carte de base.
Repères
Pris en charge ? Partiellement
Vous pouvez ajouter un repère et répondre à un événement de clic. Vous pouvez également ajouter des icônes de repère personnalisées. Il n'est pas possible de rendre un repère déplaçable. Sur une carte en mode simplifié, les repères sont plats et ne peuvent pas pivoter.
Position de la caméra, zoom et animation
Pris en charge ? Partiellement

Vous pouvez définir la cible et le zoom de la caméra, mais pas l'inclinaison ni l'orientation. En mode simplifié, le niveau de zoom est arrondi à l'entier le plus proche. Le fait d'appeler GoogleMap.moveCamera() renvoie une autre image de carte en mode simplifié. Pour plus d'informations sur le réglage et la manipulation de la caméra, consultez la section Changer la vue.

Le fait d'appeler GoogleMap.animateCamera() n'entraîne pas d'animation du mouvement de la caméra. La vue de la caméra passe instantanément à la nouvelle position.

Événements de carte
Pris en charge ? Partiellement

Le mode simplifié prend en charge GoogleMap.setOnMapClickListener() et GoogleMap.setOnMapLongClickListener().

Pour désactiver les événements de clic sur une carte en mode simplifié, vous pouvez appeler setClickable() sur la vue contenant la classe MapView ou MapFragment. Cela est utile, par exemple, pour afficher une ou plusieurs cartes sous forme de liste, où l'événement de clic doit appeler une action sans rapport avec la carte.

Pour plus d'informations, consultez la documentation sur les événements.

Plans d'intérieur et bâtiments
Pris en charge ? Non
Le mode simplifié affiche les mêmes tuiles que l'API Maps Static. Cela signifie que si le plan d'étage intérieur est présent dans la tuile par défaut, il apparaîtra. Sinon, il n'apparaîtra pas. En outre, vous ne pouvez pas modifier le niveau affiché ni manipuler un sélecteur de niveau.
Calque de trafic
Pris en charge ? Non
GoogleMap.setTrafficEnabled() n'est pas pris en charge en mode simplifié.
Superpositions au sol
Pris en charge ? Non
GoogleMap.addGroundOverlay() n'est pas pris en charge en mode simplifié.
Superpositions de tuiles
Pris en charge ? Non
GoogleMap.addTileOverlay() n'est pas pris en charge en mode simplifié.
Gestes
Pris en charge ? Non
Le mode simplifié n'est pas compatible avec les gestes. L'activation et la désactivation des gestes seront sans effet.
Street View
Pris en charge ? Non
Street View n'est pas compatible avec le mode simplifié.