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é :
- LiteDemoActivity (Java) : principes de base pour utiliser une carte en mode simplifié en Java
- LiteDemoActivity (Kotlin) : principes de base pour utiliser une carte en mode simplifié en Kotlin
- LiteListDemoActivity (Java) : afficher correctement des cartes dans des ListViews à l'aide du mode simplifié en Java
- LiteListDemoActivity (Kotlin) : afficher correctement des cartes dans des ListViews à l'aide du mode simplifié en Kotlin
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'unMapFragment
- 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()
etonPause()
, 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
jeu 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 Le fait d'appeler |
Événements de carte | Compatible ? Partiellement
Le mode simplifié est compatible avec Pour désactiver les événements de clic sur une carte en mode simplifié, vous pouvez appeler 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é. |