Empresas y otros lugares de interés

De forma predeterminada, los lugares de interés aparecen en el Mapa base junto con sus íconos correspondientes. Los lugares de interés incluyen parques, escuelas, edificios gubernamentales y mucho más.

Además, los lugares de interés comerciales aparecen de forma predeterminada en el mapa cuando el tipo de mapa es normal. Estos representan empresas como tiendas, restaurantes, hoteles, etc. Los lugares de interés comerciales en mapas de interiores (planos de edificios) solo aparecen en mapas en el modo lite.

Un lugar de interés corresponde a un lugar, según se define en la API de Places. Por ejemplo, los parques recreativos son lugares de interés, pero los elementos como las fuentes de agua no suelen considerarse como tales (a menos que tengan cierta importancia histórica o nacional).

Escucha eventos de clic en los lugares de interés

Si deseas responder cuando un usuario presione un lugar de interés, puedes utilizar un objeto de escucha OnPoiClickListener como se ejemplifica en la siguiente muestra de código:

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();
    }
}

Los lugares de interés aparecen en el mapa de forma predeterminada, pero no hay una IU on-click predeterminada. Es decir, cuando el usuario presiona un lugar de interés, la API no muestra automáticamente una ventana de información ni ninguna otra interfaz de usuario.

Como se muestra en el ejemplo anterior, debes llamar a GoogleMap.setOnPoiClickListener(OnPoiClickListener) para configurar el objeto de escucha OnPoiClickListener en el mapa. Cuando un usuario haga clic en un lugar de interés (o lo presione), tu app recibirá un evento OnPoiClick(PointOfInterest) que indicará el lugares de interés que el usuario seleccionó. La porción PointOfInterest contiene las coordenadas de latitud y longitud, el ID del lugar y el nombre del punto de interés.

Deja de mostrar lugares de interés en el mapa

Para ocultar lugares de interés, puedes aplicar estilos personalizados a todos ellos o a determinadas categorías.

La siguiente declaración de estilo JSON oculta todos los lugares de interés comerciales en el mapa:

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

En este otro ejemplo, el siguiente JSON simplifica la visualización de todas las categorías de lugares de interés:

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

Para obtener el código Java y otros detalles, consulta la guía sobre cómo ocultar los elementos del mapa con diseño.