É o 15º aniversário da Plataforma Google Maps: confira as notícias e avisos mais recentes

Pontos de interesse comerciais e de outros tipos

Por padrão, os pontos de interesse (PDIs) aparecem no mapa básico com os respectivos ícones. Esses pontos incluem parques, escolas, edifícios governamentais e muito mais.

Além disso, os PDIs comerciais são exibidos por padrão no mapa quando o tipo dele é normal. Esses pontos representam empresas como lojas, restaurantes, hotéis e outros. Os PDIs comerciais em mapas internos (plantas baixas) só aparecem no Modo Lite.

Um PDI corresponde a um lugar, conforme definido na API Places. Por exemplo, parques são pontos de interesse, mas locais como fontes d'água geralmente não são, a menos que tenham relevância nacional ou histórica.

Detectar eventos de clique em PDIs

Se você quiser responder a um clique em um PDI, utilize um OnPoiClickListener, conforme exemplificado na amostra de código a seguir:

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

Os PDIs aparecem no mapa, mas não há IU padrão para cliques. Ou seja, a API não exibe automaticamente uma janela de informações ou outra interface do usuário quando alguém toca em um ponto de interesse.

Conforme o exemplo acima, você define o OnPoiClickListener no mapa chamando GoogleMap.setOnPoiClickListener(OnPoiClickListener). Quando um usuário clica (toca) em um PDI, seu app recebe um evento OnPoiClick(PointOfInterest) indicando o ponto de interesse clicado. O PointOfInterest contém as coordenadas de latitude/longitude, o código do lugar e o nome do ponto de interesse.

Impedir que os PDIs sejam exibidos no mapa

Para ocultar pontos de interesse, aplique estilos personalizados a todos os PDIs ou a categorias específicas deles.

A seguinte declaração de estilo JSON oculta todos os PDIs comerciais no mapa:

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

Em outro exemplo, o JSON abaixo simplifica a exibição de todas as categorias de PDIs:

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

Para ver o código Java e outros detalhes, consulte o guia sobre como ocultar elementos do mapa com estilos.