Questo articolo è stato tradotto automaticamente. Per la versione originale, clicca qui.
Conosci quel momento in cui carichi una mappa con un centinaio di pin e tutto diventa una macchia illeggibile? Sì, questa è stata l’esperienza con .NET MAUI Maps fino ad ora. Non più.
David Ortinau ha appena annunciato che .NET MAUI 11 Preview 3 include il pin clustering out of the box su Android e iOS/Mac Catalyst. E la parte migliore — è ridicolmente semplice da attivare.
Una proprietà per dominarli tutti
<maps:Map IsClusteringEnabled="True" />
Tutto qui. I pin vicini vengono raggruppati in cluster con un badge di conteggio. Zoom in e si espandono. Zoom out e si raggruppano. Il tipo di comportamento che gli utenti si aspettano da qualsiasi mappa moderna — e ora lo ottieni con una singola proprietà.
Gruppi di clustering indipendenti
Ecco dove diventa interessante. Non tutti i pin dovrebbero raggrupparsi insieme. Le caffetterie e i parchi sono cose diverse, e la tua mappa dovrebbe saperlo.
La proprietà ClusteringIdentifier ti permette di separare i pin in gruppi indipendenti:
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"
});
I pin con lo stesso identificatore si raggruppano insieme. Identificatori diversi formano cluster indipendenti anche quando sono geograficamente vicini. Nessun identificatore? Gruppo predefinito. Pulito e prevedibile.
Gestione dei tap sui cluster
Quando un utente tocca un cluster, ricevi un evento ClusterClicked con tutto ciò di cui hai bisogno:
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;
};
Gli argomenti dell’evento ti danno Pins (i pin nel cluster), Location (il centro geografico) e Handled (impostalo su true se vuoi sovrascrivere lo zoom predefinito). Semplice, pratico, esattamente quello che ti aspetteresti.
Dettagli di piattaforma da conoscere
Su Android, il clustering usa un algoritmo personalizzato basato su griglia che ricalcola ai cambi di zoom — nessuna dipendenza esterna. Su iOS e Mac Catalyst, sfrutta il supporto nativo di MKClusterAnnotation di MapKit, il che significa animazioni fluide e native della piattaforma.
Questo è uno di quei casi in cui il team MAUI ha fatto la scelta giusta — appoggiarsi alla piattaforma dove ha senso.
Perché è importante
Il pin clustering è stata una delle funzionalità più richieste in .NET MAUI (issue #11811), e a buon ragione. Ogni app che mostra posizioni su una mappa — tracciamento consegne, localizzatori di negozi, immobiliare — ne ha bisogno. Prima dovevi costruirlo da solo o integrare una libreria di terze parti. Ora è integrato.
Per noi sviluppatori .NET che costruiamo app mobile multipiattaforma, questo è il tipo di miglioramento della qualità della vita che rende MAUI una scelta genuinamente pratica per scenari con uso intensivo di mappe.
Per iniziare
Installa .NET 11 Preview 3 e aggiorna il workload .NET MAUI. L’esempio Maps include una nuova pagina Clustering con cui puoi giocare subito.
Vai a costruire qualcosa — e lascia che le tue mappe finalmente respirino.
