#AdditionalJar: android-maps-utils-3.8.2.aar
Sub Process_Globals
Private GoogleMap As GoogleMap
End Sub
Sub Globals
Private MapFragment As MapFragment
Private MarkerClusterManager As JavaObject
Private joMa As JavaObject
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout")
End Sub
Sub MapFragment_Ready
GoogleMap = MapFragment.GetMap
Sleep(500)
InitializeClusterManager
AddMarkers
End Sub
Sub InitializeClusterManager
MarkerClusterManager = CreateClusterManager
joMa = GoogleMap
joMa.RunMethod("setOnCameraIdleListener", Array(MarkerClusterManager))
joMa.RunMethod("setOnMarkerClickListener", Array(MarkerClusterManager))
End Sub
Sub CreateClusterManager As JavaObject
Dim context As JavaObject
context.InitializeContext
Dim jo As JavaObject
jo.InitializeNewInstance("com.google.maps.android.clustering.ClusterManager", Array(context, GoogleMap))
Return jo
End Sub
Sub AddMarkers
Dim items As List
items.Initialize
For i = 1 To 10
Dim jo As JavaObject
jo.InitializeNewInstance(Application.PackageName & ".MyItem", Array(LatLng(37.7749 + Rnd(0, 10) / 1000, -122.4194 + Rnd(0, 10) / 1000)))
items.Add(jo)
Next
MarkerClusterManager.RunMethod("addItems", Array(items))
MarkerClusterManager.RunMethod("cluster", Null)
End Sub
Sub LatLng(lat As Double, lng As Double) As JavaObject
Dim jo As JavaObject
jo.InitializeNewInstance("com.google.android.gms.maps.model.LatLng", Array(lat, lng))
Return jo
End Sub
#If JAVA
import com.google.android.gms.maps.model.LatLng;
import com.google.maps.android.clustering.ClusterItem;
public class MyItem implements ClusterItem {
private final LatLng position;
private final String title;
private final String snippet;
public MyItem(double lat, double lng, String title, String snippet) {
position = new LatLng(lat, lng);
this.title = title;
this.snippet = snippet;
}
@Override
public LatLng getPosition() {
return position;
}
@Override
public String getTitle() {
return title;
}
@Override
public String getSnippet() {
return snippet;
}
@Override
public Float getZIndex() {
return 0f;
}
}
#End If