· · 3 minutos de leitura

Clustering de Pins Finalmente Chega ao .NET MAUI Maps — Uma Propriedade, Zero Dor de Cabeça

.NET MAUI 11 Preview 3 adiciona clustering nativo de pins ao controle Map. Uma propriedade, grupos de clustering separados e tratamento de taps — tudo integrado.

dotnet maui mobile maps dotnet-11
Este artigo também está disponível em:English, Español, Deutsch, Français, Italiano, 日本語, 中文, 한국어, Русский

Este post foi traduzido automaticamente. Para a versão original, clique aqui.

Sabe aquele momento quando você carrega um mapa com uma centena de pins e tudo vira uma mancha ilegível? É, essa tem sido a experiência com .NET MAUI Maps até agora. Acabou.

David Ortinau acabou de anunciar que o .NET MAUI 11 Preview 3 traz clustering de pins embutido no Android e iOS/Mac Catalyst. E a melhor parte — é ridiculamente simples de ativar.

Uma propriedade para governar todos

<maps:Map IsClusteringEnabled="True" />

É isso. Pins próximos são agrupados em clusters com um badge de contagem. Dá zoom e eles expandem. Afasta e eles colapsam. O tipo de comportamento que os usuários esperam de qualquer mapa moderno — e agora você consegue com uma única propriedade.

Grupos de clustering independentes

Aqui é onde fica interessante. Nem todos os pins devem se agrupar juntos. Cafeterias e parques são coisas diferentes, e seu mapa deveria saber disso.

A propriedade ClusteringIdentifier permite separar pins em grupos independentes:

map.Pins.Add(new Pin
{
    Label = "Pike Place Coffee",
    Location = new Location(47.6097, -122.3331),
    ClusteringIdentifier = "coffee"
});

map.Pins.Add(new Pin
{
    Label = "Occidental Square",
    Location = new Location(47.6064, -122.3325),
    ClusteringIdentifier = "parks"
});

Pins com o mesmo identificador se agrupam juntos. Identificadores diferentes formam clusters independentes mesmo quando estão geograficamente próximos. Sem identificador? Grupo padrão. Limpo e previsível.

Tratamento de taps em clusters

Quando um usuário toca em um cluster, você recebe um evento ClusterClicked com tudo que precisa:

map.ClusterClicked += async (sender, e) =>
{
    string names = string.Join("\n", e.Pins.Select(p => p.Label));
    await DisplayAlert(
        $"Cluster ({e.Pins.Count} pins)",
        names,
        "OK");

    // Suppress default zoom-to-cluster behavior:
    // e.Handled = true;
};

Os argumentos do evento te dão Pins (os pins no cluster), Location (o centro geográfico) e Handled (defina como true se quiser sobrescrever o zoom padrão). Simples, prático, exatamente o que você esperaria.

Detalhes de plataforma que vale a pena conhecer

No Android, o clustering usa um algoritmo personalizado baseado em grid que recalcula nas mudanças de zoom — sem dependências externas. No iOS e Mac Catalyst, ele aproveita o suporte nativo do MKClusterAnnotation do MapKit, o que significa animações suaves e nativas da plataforma.

Esse é um daqueles casos em que o time do MAUI tomou a decisão certa — apoiar-se na plataforma onde faz sentido.

Por que isso importa

Clustering de pins tem sido uma das funcionalidades mais solicitadas no .NET MAUI (issue #11811), e com razão. Toda app que mostra localizações em um mapa — rastreamento de entregas, localizadores de lojas, imobiliárias — precisa disso. Antes você tinha que construir por conta própria ou usar uma biblioteca de terceiros. Agora vem integrado.

Para nós desenvolvedores .NET construindo apps móveis multiplataforma, esse é o tipo de melhoria de qualidade de vida que faz do MAUI uma escolha genuinamente prática para cenários com uso intensivo de mapas.

Comece agora

Instale o .NET 11 Preview 3 e atualize o workload do .NET MAUI. O exemplo de Maps inclui uma nova página de Clustering com a qual você pode brincar imediatamente.

Vá construir algo com isso — e deixe seus mapas finalmente respirarem.

Compartilhar:
Ver código-fonte deste artigo no GitHub ↗
← .NET Abril 2026 Servicing — Patches de segurança que você deve aplicar hoje
As ferramentas Azure MCP agora vêm integradas no Visual Studio 2022 — Sem extensão necessária →