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

Établissements et autres points d'intérêt

Par défaut, les points d'intérêt (POI) sont affichés sur la carte de base avec les icônes qui leur correspondent. Les POI incluent les parcs, les écoles, les bâtiments administratifs, etc.

Par ailleurs, les POI de type "établissement" sont affichés par défaut sur la carte lorsque le type de la carte est défini sur normal. Ces POI représentent des établissements tels que des magasins, des restaurants, des hôtels, etc. Sur les plans d'intérieur (plans d'étage), les POI de type "établissement" sont uniquement affichés lorsque la carte est en mode simplifié.

Un POI correspond à un lieu, tel que défini dans l'API Places. Par exemple, les parcs de loisirs sont des POI, mais les éléments tels que les fontaines ne sont en général pas considérés comme des points d'intérêt (à moins qu'ils ne revêtent une importance historique ou nationale).

Écouter les événements de clic sur des POI

Si vous souhaitez répondre à un utilisateur qui appuie sur un POI, vous pouvez utiliser un OnPoiClickListener comme illustré dans l'exemple de code suivant :

public class OnPoiClickDemoActivity extends FragmentActivity
    implements OnMapReadyCallback, GoogleMap.OnPoiClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.poi_click_demo);

        SupportMapFragment mapFragment =
                (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap map) {
        map.setOnPoiClickListener(this);
    }

    @Override
    public void onPoiClick(PointOfInterest poi) {
        Toast.makeText(getApplicationContext(), "Clicked: " +
                        poi.name + "\nPlace ID:" + poi.placeId +
                        "\nLatitude:" + poi.latLng.latitude +
                        " Longitude:" + poi.latLng.longitude,
                Toast.LENGTH_SHORT).show();
    }
}

Par défaut, les POI sont affichés sur la carte, mais il n'y a pas d'interface utilisateur de clic par défaut. Autrement dit, l'API n'affiche pas automatiquement une fenêtre d'informations ou toute autre interface utilisateur lorsque l'utilisateur appuie sur un POI.

Comme le montre l'exemple ci-dessus, vous définissez OnPoiClickListener sur la carte en appelant GoogleMap.setOnPoiClickListener(OnPoiClickListener). Lorsqu'un utilisateur clique (ou appuie) sur un POI, votre application reçoit un événement OnPoiClick(PointOfInterest) indiquant le point d'intérêt sur lequel l'utilisateur a cliqué. Le PointOfInterest contient les coordonnées de latitude/longitude, l'identifiant de lieu et le nom du point d'intérêt.

Masquer des POI sur la carte

Vous pouvez masquer des points d'intérêt (POI) sur la carte en appliquant des styles personnalisés à tous les POI ou à certaines catégories de POI seulement.

La déclaration de style JSON suivante masque tous les POI de type "établissement" sur la carte :

[
  {
    "featureType": "poi.business",
    "stylers": [
      { "visibility": "off" }
    ]
  }
]

Dans cet autre exemple, la déclaration JSON simplifie l'affichage de toutes les catégories de POI :

[
  {
    "featureType": "poi",
    "stylers": [
      { "visibility": "simplified" }
    ]
  }
]

Pour obtenir plus d'informations sur le code Java, consultez le guide qui explique comment masquer des composants de carte à l'aide des styles.