Olá pessoal.
Gostaria de saber como faço para, quando clicar num overlay da tela (numa aplicação que usa Mapas), seja mostrado um Toast com informações como “Estabelecimento Comercial\nMcDonalds”, algo assim.
Ou seja, quando eu clicar na “bandeirinha” do mapa, seja mostrada uma caixa de texto con informações sobre o endereço que o overlay está representando.
Ops, já consegui. Eis como ficou meu evento onTap:
@Override
public boolean onTap(GeoPoint geoPoint, MapView mapView) {
Point ponto = mapView.getProjection().toPixels(this.coordenada, null);
// Cria o retângulo
margin = (int) Math.floor(height / 3);
RectF recf = new RectF(ponto.x - margin, ponto.y - margin, ponto.x + margin, ponto.y + margin);
// Converte para ponto em pixels
Point newPoint = mapView.getProjection().toPixels(geoPoint, null);
// Corrige coordenada do ponto clicado na tela
Integer centerWidth = (int) Math.floor(width / 2);
Integer centerHeight = (int) Math.floor(height / 2);
// Verifica se o ponto está contido no retângulo
boolean ok = recf.contains(newPoint.x - centerWidth, newPoint.y - centerHeight);
if (ok) {
Log.v("map", "Clicou dentro da bandeira!");
} else {
Log.v("map", "Clicou fora da bandeira!");
}
return super.onTap(geoPoint, mapView);
}
Mudarei o tópico para [RESOLVIDO].