Android osmdroid标记信息窗口在聚集标记后不显示
我正在使用osmdroid在android应用程序中显示开放的街道地图 问题是当聚集标记时,单击标记时,标记的信息窗口不会显示。 这是我如何为集群添加标记的: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
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中的示例他创建了一个库(),将您的代码复制到示例中,并进行了必要的修改以使其运行并正常工作。