Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android osmdroid标记信息窗口在聚集标记后不显示_Android_Dictionary_Openstreetmap_Osmdroid - Fatal编程技术网

Android osmdroid标记信息窗口在聚集标记后不显示

Android osmdroid标记信息窗口在聚集标记后不显示,android,dictionary,openstreetmap,osmdroid,Android,Dictionary,Openstreetmap,Osmdroid,我正在使用osmdroid在android应用程序中显示开放的街道地图 问题是当聚集标记时,单击标记时,标记的信息窗口不会显示。 这是我如何为集群添加标记的: RadiusMarkerClusterer poiMarkers = new RadiusMarkerClusterer(this); Drawable clusterIconD = getResources().getDrawable(R.drawable.marker_cluster); Bitmap clus

我正在使用osmdroid在android应用程序中显示开放的街道地图 问题是当聚集标记时,单击标记时,标记的信息窗口不会显示。 这是我如何为集群添加标记的:

    RadiusMarkerClusterer poiMarkers = new RadiusMarkerClusterer(this);
    Drawable clusterIconD = getResources().getDrawable(R.drawable.marker_cluster);
    Bitmap clusterIcon = ((BitmapDrawable) clusterIconD).getBitmap();
    poiMarkers.setIcon(clusterIcon);
    poiMarkers.getTextPaint().setColor(Color.WHITE);
    poiMarkers.getTextPaint().setTextSize(12 * getResources().getDisplayMetrics().density); //taking into account the screen density
    poiMarkers.mAnchorU = Marker.ANCHOR_CENTER;
    poiMarkers.mAnchorV = Marker.ANCHOR_CENTER;
    poiMarkers.mTextAnchorV = 0.40f;
    map.getOverlays().add(poiMarkers);

    for (int i = 0; i < places.size(); i++) {
        final Marker startMarker = new Marker(map);
        startMarker.setPosition(new GeoPoint(places.get(i).getLat(), places.get(i).getLng()));

        startMarker.setIcon(getResources().getDrawable(R.drawable.ic_new_loc));

        startMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_CENTER);
        MyInfoWindow infoWindow = new MyInfoWindow(R.layout.map_marker_info_window, map);
        infoWindow.setPlace(places.get(i));
        startMarker.setInfoWindow(infoWindow);
        poiMarkers.add(startMarker);
    }
RadiusMarkerClusterer poimakers=新的RadiusMarkerClusterer(此);
Drawable clusterCond=getResources().getDrawable(R.Drawable.marker_cluster);
位图clusterIcon=((BitmapDrawable)clusterIconD.getBitmap();
集控器(clusterIcon);
POIMERKERS.getTextPaint().setColor(Color.WHITE);
POIMERKERS.getTextPaint().setTextSize(12*getResources().getDisplayMetrics().density)//考虑到屏幕密度
poiMarkers.mAnchorU=Marker.anchoru\u中心;
poiMarkers.mAnchorV=Marker.ANCHOR\u中心;
poi.mTextAnchorV=0.40f;
map.getOverlays().add(POI标记);
对于(int i=0;i
ReadiusMarkerCluster
不应显示群集的信息窗口。一个簇代表一组单独的标记,因此无法决定应该显示哪个信息窗口

你可以查一下教室

标记(表示集群)在方法
buildClusterMarker
中实例化:

@Override public Marker buildClusterMarker(StaticCluster cluster, MapView mapView) {
    Marker m = new Marker(mapView);
    m.setPosition(cluster.getPosition());
    m.setInfoWindow(null); //<===== there you can see, no info window
    m.setAnchor(mAnchorU, mAnchorV);

    Bitmap finalIcon = Bitmap.createBitmap(mClusterIcon.getWidth(), mClusterIcon.getHeight(), mClusterIcon.getConfig());
    Canvas iconCanvas = new Canvas(finalIcon);
    iconCanvas.drawBitmap(mClusterIcon, 0, 0, null);
    String text = "" + cluster.getSize();
    int textHeight = (int) (mTextPaint.descent() + mTextPaint.ascent());
    iconCanvas.drawText(text,
            mTextAnchorU * finalIcon.getWidth(),
            mTextAnchorV * finalIcon.getHeight() - textHeight / 2,
            mTextPaint);
    m.setIcon(new BitmapDrawable(mapView.getContext().getResources(), finalIcon));

    return m;
}
@覆盖公共标记buildClusterMarker(StaticCluster群集,MapView MapView){
标记m=新标记(地图视图);
m、 setPosition(cluster.getPosition());

m、 setInfoWindow(空);//我不想为集群显示信息窗口,我已经为集群内的每个标记设置了信息窗口问题是当我单击marker Not的标记信息窗口时show@edalat-费兹我明白了,我误解了你的问题。@EdalatFeizi在这种情况下,我恐怕无法发现问题。我查了图书馆的来源和d它似乎应该可以工作,并且您的代码是正确的。您可以尝试将OnMarkerClickListener添加到所有标记并调用marker.showInfoWindow()从它开始,但这正是Marker中默认实现所做的。感谢您的回答,在添加到集群之前,我还为每个标记添加了一个单击侦听器,但在单击标记时从未调用过。@EdalatFeizi是的,这是我所期望的。问题是,您在问题中包含的代码部分是正确的。我仔细检查了t中的示例他创建了一个库(),将您的代码复制到示例中,并进行了必要的修改以使其运行并正常工作。