Android 使用osmdroid的群集太多

Android 使用osmdroid的群集太多,android,osmdroid,Android,Osmdroid,我正在使用osmdroid库在我的应用程序中使用osm地图。我已经使用下面的代码成功地在osm映射中实现了集群 private void populateMarkers(final List<Datum> datumList) { RadiusMarkerClusterer poiMarkers = new RadiusMarkerClusterer(this); map.getOverlays().add(poiMarkers); for (int i =

我正在使用osmdroid库在我的应用程序中使用osm地图。我已经使用下面的代码成功地在osm映射中实现了集群

private void populateMarkers(final List<Datum> datumList) {
    RadiusMarkerClusterer poiMarkers = new RadiusMarkerClusterer(this);
    map.getOverlays().add(poiMarkers);
    for (int i = 0; i < datumList.size(); i++) {
        Marker marker = new Marker(map);
        marker.setPosition(new GeoPoint(Double.parseDouble(datumList.get(i).getLat()), Double.parseDouble(datumList.get(i).getLng())));
        Drawable currentDraw = ResourcesCompat.getDrawable(getResources(), R.drawable.location_marker, null);

        marker.setIcon(currentDraw);
        final int finalI = i;
        marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker, MapView mapView) {
                if (marker.isInfoWindowShown()) {
                    InfoWindow.closeAllInfoWindowsOn(mapView);
                } else {
                    getMarkerDetails(marker, datumList.get(finalI).getId());

                }
                return false;
            }
        });

        poiMarkers.add(marker);
        Drawable clusterIconD = getResources().getDrawable(R.drawable.marker_cluster);
        Bitmap clusterIcon = ((BitmapDrawable) clusterIconD).getBitmap();
        poiMarkers.setIcon(clusterIcon);

        map.invalidate();
    }
    progressDialog.dismiss();
}
private void populateMarkers(最终列表datumList){
RadiusMarkerClusterer POIMERKERS=新的RadiusMarkerClusterer(此);
map.getOverlays().add(POI标记);
对于(int i=0;i
这是可行的,但问题是它向许多小集群显示,而不是向附近的单个大集群显示

另外,对于集群,我使用的是osmdroid奖金包依赖项

如果您查看for
RadiusMarkerClusterer
,您可以看到有一种
setRadius
方法:

/** Set the radius of clustering in pixels. Default is 100px. */
public void setRadius(int radius){
    mRadiusInPixels = radius;
}
我认为您所要做的就是设置一个更大的半径,以将更多的点合并到一个簇中。

如果您查看for
radiusmarkercluster
,您可以看到有一种
setRadius
方法:

/** Set the radius of clustering in pixels. Default is 100px. */
public void setRadius(int radius){
    mRadiusInPixels = radius;
}
我认为你所要做的就是设置一个更大的半径,将更多的点合并到一个簇中