@Override
        public boolean equals(final Object o) {
            if (!(o instanceof LocationWrapper)) {
                return false;
            }
            final LocationWrapper p = (LocationWrapper) o;
            return Objects.equals(p.location, location) && Objects.equals(p.heading, heading);
        }
Repaint position overlay but only with a max frequency and if position or heading changes sufficiently.
main/src/main/java/cgeo/geocaching/unifiedmap/LocUpdater.java