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 dépôt ApiDemos sur GitHub inclut des exemples illustrant l'utilisation du mode simplifié :

Présentation du mode simplifié

Une carte en mode simplifié correspond à l'image bitmap d'une carte associée à un emplacement géographique et un niveau de zoom spécifiques. 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. Vous pouvez utiliser le mode simplifié pour fournir un certain nombre de cartes dans un flux ou lorsqu'une carte est trop petite pour offrir une véritable interaction.

Les utilisateurs qui visualisent la carte ne peuvent pas effectuer de zoom ni de panoramique. Des icônes 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 MapView ou d'un MapFragment
  • Soit dans l'objet GoogleMapOptions

En tant qu'attribut XML d'une MapView ou d'un 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

Kotlin

val options = GoogleMapOptions()
    .liteMode(true)

      

Java

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

      

Pour savoir comment définir l'état initial de la carte, consultez le guide dédié à l' objet map.

Intents pour lancer une vue plan ou une demande d'itinéraire

Par défaut, une barre d'outils située en bas à droite de la carte contient des icônes qui permettent d'accéder à un type de vue plan 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 MapView ou le MapFragment. Pour en savoir plus sur ces deux techniques, consultez la documentation sur les événements.

Événements liés au cycle de vie

S'ils utilisent l'API en mode interactif complet, les utilisateurs de la classe MapView doivent 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 position 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 compatibles

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
Compatible ? 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 et MAP_TYPE_NONE.
Polylignes, polygones, cercles
Compatible ? Oui
En mode simplifié, la fonctionnalité de formes correspond à celle de la version complète de l'API.
Projection
Compatible ? Oui
En mode simplifié, la fonctionnalité de projection correspond à celle de la version complète de l'API.
Ma position
Compatible ? Oui
En mode simplifié, la fonctionnalité du calque "Ma position" correspond à celle de la version complète de l'API.
Marge extérieure de la carte
Compatible ? Oui
En mode simplifié, la fonctionnalité de marge extérieure de la carte correspond à celle de la version complète de l'API.
Fenêtres d'informations
Compatible ? 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 personnalisés de la carte de base
Compatible ? Partiellement
Le SDK Maps pour Android prend en charge le style personnalisé de la carte de base. Le mode simplifié n'accepte que les styles personnalisés JSON. Il n'accepte pas les styles dans le cloud, qui nécessitent un ID de carte pour afficher une carte avec styles. Le mode simplifié ne permet pas non plus de définir le schéma de couleurs de la carte pour utiliser le mode sombre.
Repères
Compatible ? 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
Compatible ? 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. En appelant GoogleMap.moveCamera(), vous affichez une autre image de carte en mode simplifié. Pour savoir comment régler et manipuler la caméra, consultez 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
Compatible ? Partiellement

Le mode simplifié est compatible avec 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 MapView ou le MapFragment. Par exemple, cette méthode permet d'afficher une ou plusieurs cartes sous forme de liste lorsque 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
Compatible ? 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
Compatible ? Non
GoogleMap.setTrafficEnabled() n'est pas compatible en mode simplifié.
Superpositions au sol
Compatible ? Non
GoogleMap.addGroundOverlay() n'est pas compatible en mode simplifié.
Superpositions de tuiles
Compatible ? Non
GoogleMap.addTileOverlay() n'est pas compatible en mode simplifié.
Gestes
Compatible ? Non
Le mode simplifié n'est pas compatible avec les gestes. Activer et désactiver les gestes n'auront aucun effet.
Street View
Compatible ? Non
Street View n'est pas compatible avec le mode simplifié.