使用 osmdroid 显示多个 InfoWindows
Display multiple InfoWindows using osmdroid
我想显示多个标记信息窗口来标记不同的路线。但是,只显示最后创建的一个。
我的(相关)标记创建代码是:-
if (routes.size() < 3) {
Polyline roadOverlay = new Polyline();
roadOverlay.setColor(polyClr.get(routes.size()));
roadOverlay.setWidth(5f);
roadOverlay.setPoints(waypoints);
// Add Route Marker
Marker m = new Marker(map);
double d = roadOverlay.getDistance()*5/8000;
GeoPoint midpt = waypoints.get((int)(waypoints.size()/2));
m.setTitle(rteDesc.get(routes.size())+" - "+String.format("%.2f miles",d));
m.setSnippet("Tap to Save");
m.setIcon(getResources().getDrawable(R.drawable.transparent));
m.setPosition(midpt);
m.showInfoWindow();
rtemkrs.add(m);
routes.add(roadOverlay);
}
显示代码为:-
for (int j = rtemkrs.size()-1; j>=0; j--) {
map.getOverlays().add(rtemkrs.get(j));
}
map.invalidate();
我正在使用 osmdroid v 6.1.0 和 osmbonuspack v 6.6.0
如何显示多个标记信息窗口?
默认情况下,所有标记都使用一个共享视图作为它们的信息窗口。因此只能显示一个视图。
但可以改变行为:
- 您需要为每个标记创建一个
MarkerInfoWindow
实例,例如,这是默认标记的创建方式:new MarkerInfoWindow(R.layout.bonuspack_bubble, mMapView);
- 您必须通过为每个标记调用
marker.setInfoWindow(...)
(see method's javadoc) 将视图传递给标记
我想显示多个标记信息窗口来标记不同的路线。但是,只显示最后创建的一个。
我的(相关)标记创建代码是:-
if (routes.size() < 3) {
Polyline roadOverlay = new Polyline();
roadOverlay.setColor(polyClr.get(routes.size()));
roadOverlay.setWidth(5f);
roadOverlay.setPoints(waypoints);
// Add Route Marker
Marker m = new Marker(map);
double d = roadOverlay.getDistance()*5/8000;
GeoPoint midpt = waypoints.get((int)(waypoints.size()/2));
m.setTitle(rteDesc.get(routes.size())+" - "+String.format("%.2f miles",d));
m.setSnippet("Tap to Save");
m.setIcon(getResources().getDrawable(R.drawable.transparent));
m.setPosition(midpt);
m.showInfoWindow();
rtemkrs.add(m);
routes.add(roadOverlay);
}
显示代码为:-
for (int j = rtemkrs.size()-1; j>=0; j--) {
map.getOverlays().add(rtemkrs.get(j));
}
map.invalidate();
我正在使用 osmdroid v 6.1.0 和 osmbonuspack v 6.6.0
如何显示多个标记信息窗口?
默认情况下,所有标记都使用一个共享视图作为它们的信息窗口。因此只能显示一个视图。
但可以改变行为:
- 您需要为每个标记创建一个
MarkerInfoWindow
实例,例如,这是默认标记的创建方式:new MarkerInfoWindow(R.layout.bonuspack_bubble, mMapView);
- 您必须通过为每个标记调用
marker.setInfoWindow(...)
(see method's javadoc) 将视图传递给标记