android地图扩展信息窗口没有';不显示

android地图扩展信息窗口没有';不显示,android,android-maps-extensions,Android,Android Maps Extensions,我需要在地图上显示>100个标记,并在单击标记后显示信息窗口。 我曾经使用过android google maps api v2,但它的标记数量太多了。所以我决定改用android地图扩展。点击标记后,信息窗口停止显示 这是我的密码: private void prepareMap() { SupportMapFragment fragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id

我需要在地图上显示>100个标记,并在单击标记后显示信息窗口。 我曾经使用过android google maps api v2,但它的标记数量太多了。所以我决定改用android地图扩展。点击标记后,信息窗口停止显示

这是我的密码:

private void prepareMap() {
    SupportMapFragment fragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.locationsMap);
    map = fragment.getExtendedMap();

    ClusteringSettings settings = new ClusteringSettings();
    settings.clusterOptionsProvider(new ClusterOptionsProvider() {
        @Override
        public ClusterOptions getClusterOptions(List<Marker> markers) {
            float hue = BitmapDescriptorFactory.HUE_RED;
            BitmapDescriptor icon = BitmapDescriptorFactory.defaultMarker(hue);
            return new ClusterOptions().icon(icon);
        }
    });
    settings.clusterSize(100);
    settings.addMarkersDynamically(true);
    map.setClustering(settings);

    map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            // breakpoint here are working. marker is not null
            marker.showInfoWindow();
            return false;
        }
    });
}

public void onLoadFinished(android.support.v4.content.Loader loader, Cursor cursor) {
    if (map != null) {
        cursor.moveToFirst();
        int count = cursor.getCount();
        for (int i = 0; i < count; i++) {

            Location location = new Location(cursor);

            MarkerOptions options = new MarkerOptions();
            options.position( new LatLng(location.getLatitude(), location.getLongitude()));
            options.title(location.getTitle()); // title is not null
            options.snippet(location.getAddress()); // address is not null
            options.data(location);
            map.addMarker(options);
            cursor.moveToNext();
        }
    }
}
private void prepareMap(){
SupportMapFragment fragment=(SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.locationsMap);
map=fragment.getExtendedMap();
ClusteringSettings=新建ClusteringSettings();
settings.clusterOptionsProvider(新的clusterOptionsProvider(){
@凌驾
公共ClusterOptions getClusterOptions(列表标记){
浮动色调=位图描述符工厂.hue\u红色;
BitmapDescriptor图标=BitmapDescriptorFactory.defaultMarker(色调);
返回新的ClusterOptions()。图标(图标);
}
});
设置。集群大小(100);
settings.addMarkersDynamics(true);
map.setClustering(设置);
setOnMarkerClickListener(新的GoogleMap.OnMarkerClickListener(){
@凌驾
公共布尔onMarkerClick(标记){
//此处的断点正在工作。标记不为空
marker.showInfoWindow();
返回false;
}
});
}
public void onLoadFinished(android.support.v4.content.Loader,游标){
if(map!=null){
cursor.moveToFirst();
int count=cursor.getCount();
for(int i=0;i

有什么建议吗?我已尝试使用自己的InfoWindowAdapter,但它没有缩放此窗口以获得适当的内容,但我使用xml中的wrap_content属性。

由于不支持在
ClusterOptions上设置标题(但),您必须使用
InfoWindowAdapter
(您可以提出一个单独的问题,说明为什么它不能按您的要求工作)或者自己将
title
添加到
ClusterOptions
中,并确保其值被转发到表示集群的
virtual
标记。这听起来很复杂,但相当简单。您可能还想在GitHub上添加关于clustrers不支持title的问题。
在此之后,您可以使用以下内容:

return new ClusterOptions().icon(icon).title("Test");
然后,您必须找出最适合您需要的标题。您很可能希望使用
List
计算这组标记的标题


注意:如果你缩放到足以显示单独的标记,你可以点击它们来显示标题。如果没有,你的代码中有更多错误。

你从
onMarkerClick
返回
false
的原因是什么?当我返回
false
时,它是否显示了任何信息窗口默认行为(如标记上的中心地图)出现。当我使用自己的
InfoWindowAdapter
时,它会显示固定大小的窗口,其中包含部分内容。如果您没有示例中提供的代码以外的任何代码,您可以删除
OnMarkerClickListener
,因为显示信息窗口是一种默认行为。感谢您的响应。没有即使在max zoom上也没有信息窗口。无论如何,我会在GitHub上分叉repo,并尝试将标题转发到
virtual
marker。@如果您将群集图标颜色更改为
float-hue=BitmapDescriptorFactory.hue_-BLUE;
,并找到红色标记(这些将是您添加的标记,并在其上设置标题),它们不显示“信息”窗口?当我使用蓝色标记时,不会显示红色。即使在最大缩放级别上也是如此。@Vladimir,这就是原因。所有标记总是聚集在一起。它们之间的距离一定太近,或者每个标记都要添加多次。