fixed removal of replaced boat markers

This commit is contained in:
Axel Uhl
2011-12-28 00:01:09 +01:00
parent fa0765d7eb
commit bbbf32a61c
@@ -841,19 +841,19 @@ public class RaceMapPanel extends FormPanel implements EventDisplayer, TimeListe
map.addOverlay(boatMarker);
boatMarkers.put(competitorDAO, boatMarker);
} else {
competitorDAOsOfUnusedMarkers.remove(competitorDAO);
// check if anchors match; re-use marker with setImage only if anchors match
Point newAnchor = getBoatImageRotator(lastPos,
competitorsSelectedInMap.contains(competitorDAO)).getAnchor();
Point oldAnchor = boatMarker.getIcon().getIconAnchor();
if (oldAnchor.getX() == newAnchor.getX() && oldAnchor.getY() == newAnchor.getY()) {
competitorDAOsOfUnusedMarkers.remove(competitorDAO);
boatMarker.setLatLng(LatLng.newInstance(lastPos.position.latDeg,
lastPos.position.lngDeg));
boatMarker.setImage(getBoatImageURL(lastPos,
competitorsSelectedInMap.contains(competitorDAO)));
} else {
// anchors don't match; replace marker
// it will be removed later because it remains in competitorDAOsOfUnusedMarkers
map.removeOverlay(boatMarker);
boatMarker = createBoatMarker(competitorDAO,
competitorsSelectedInMap.contains(competitorDAO));
map.addOverlay(boatMarker);