Еще раз я ищу мудрости моих подопечных ...
Я работаю над приложением для Android, которое использует Карты Google и программно размещает маркеры на карте на основе информации о состоянии из файла, считываемого из Интернета.
У меня проблема в том, что каждый маркер рисуется дважды. Один раз в правильном месте и один раз чуть ниже (верхняя строка второго маркера совпадает с нижней частью первого маркера).
private class SitesOverlay extends ItemizedOverlay<OverlayItem> {
private List<OverlayItem> items=new ArrayList<OverlayItem>();
private Drawable marker=null;
public SitesOverlay(Drawable marker) {
super(marker);
this.marker=marker;
try {
data = getData();
} catch (MalformedURLException e) {
//
}
if (!data.equals("")) {
String[] msg = data.split(NEWLINE);
for (Integer i = 0; i < msg.length; i++) {
items.add(new OverlayItem(
getPoint(lat.get(suburb), lng.get(suburb)),
msg[i], msg[i]));
}
}
populate();
map.postInvalidate();
}
@Override
protected OverlayItem createItem(int i) {
return(items.get(i));
}
@Override
public void draw(Canvas canvas, MapView mapView,
boolean shadow) {
super.draw(canvas, mapView, false);
//boundCenterBottom(marker);
}
@Override
protected boolean onTap(int i) {
Toast.makeText(getBaseContext(),
items.get(i).getSnippet(),
Toast.LENGTH_LONG).show();
map.getController().setZoom(16 + zoomModifier);
return(true);
}
@Override
public int size() {
return(items.size());
}
}
Однако второй маркер становится видимым, только если я раскомментирую boundCenterBottom (marker) в функции рисования.
Я пытался выяснить, что ставит второй маркер в течение нескольких дней. Кто-нибудь может указать мне правильное направление?
Спасибо
РЕДАКТИРОВАТЬ: я забыл упомянуть, что если я коснусь экрана, маркер, который не boundCenterBottom исчезнет.