Sie wollen das Xamarin.Android
Binding-Projekt verwenden, die die android-maps-utils.aar
-Datei enthält.
Anmerkung: Ich habe forked eine ältere Github Repo, die ein verbindliches Projekt und Beispiel und aktualisiert sie auf die neueste Version von android-maps-utils.aar
(v0.4.3
als von diesem Post) enthalten.
Klonen Sie einfach diesen Repo und kopieren Sie das gesamte GoogleMapsUtility
Projekt in Ihre Xamarin.Android
Lösung und fügen Sie das zu Ihrer Lösung hinzu (über Add Existing Project).
Dann können Sie eine Google Map erstellen, wie Sie es normalerweise, das heißt:
GoogleMapOptions mapOptions = new GoogleMapOptions()
.InvokeMapType(GoogleMap.MapTypeNormal)
.InvokeZoomControlsEnabled(true)
.InvokeMapToolbarEnabled(true)
.InvokeZoomGesturesEnabled(true)
.InvokeRotateGesturesEnabled(true)
.InvokeCompassEnabled(true);
Dann können Sie Ihre Map Marker zum ClusterManager
hinzufügen und lassen Sie es die Clustering verwalten:
_clusterManager = new ClusterManager(this, _map);
_clusterManager.SetOnClusterClickListener(this);
_clusterManager.SetOnClusterItemClickListener(this);
_map.SetOnCameraChangeListener(_clusterManager);
_map.SetOnMarkerClickListener(_clusterManager);
I Das ursprüngliche Beispiel wurde geändert, um 20 Markierungen in einem Protokoll zu erstellen. Spiralmuster den Clusters bei verschiedenen Zoomstufen zu testen:
private void AddClusterItems()
{
double lat = 47.59978;
double lng = -122.3346;
var items = new List<ClusterItem>();
// Create a log. spiral of markers to test clustering
for (int i = 0; i < 20; ++i)
{
var t = i * Math.PI * 0.33f;
var r = 0.005 * Math.Exp(0.1 * t);
var x = r * Math.Cos(t);
var y = r * Math.Sin(t);
var item = new ClusterItem(lat + x, lng + y);
items.Add(item);
}
_clusterManager.AddItems(items);
}

Das ist wirklich cool..I die Lage ist, die Funktionalität zu erreichen. Vielleicht ist meine Frage albern. Ich bin mir nicht sicher, was die .aar-Datei tut. Danke vielmals!. Dieser Thread wird für Anfänger wie mich hilfreich sein. Nochmals vielen Dank für die ausführliche Erklärung. – Dilip
Hinweis: Es wird angezeigt, dass '_mapFragment.Map' veraltet ist: 'veraltet'. Wird es in Zukunft ein Problem sein? Ab sofort funktioniert es perfekt. – Dilip
@Dilip Das Paket 'aar' ist die Binärdistribution eines Android-Bibliotheksprojekts. Diese '.aar'-Datei enthält also die eigentlichen Java-Klassen und Ressourcen von Google (https://github.com/googlemaps/android-maps-utils). Das 'Xamarin.Android'-Bindungsprojekt stellt einen" C# -Wrapper "um diesen Java-Code bereit, damit er in der' Xamarin.Android'/C# /. Net-Welt funktionieren kann. – SushiHangover