also update on scale changes

This commit is contained in:
Hannes Janetzek 2013-05-01 03:42:00 +02:00
parent 18fdbd07d7
commit c682ae518c

View File

@ -71,6 +71,7 @@ public class MapScaleBar extends Layer {
private final Canvas mMapScaleCanvas; private final Canvas mMapScaleCanvas;
private boolean mRedrawNeeded; private boolean mRedrawNeeded;
private double mPrevLatitude = -1; private double mPrevLatitude = -1;
private final double mPrevScale = -1;
private final Map<TextField, String> mTextFields; private final Map<TextField, String> mTextFields;
/* private */final Bitmap mMapScaleBitmap; /* private */final Bitmap mMapScaleBitmap;
@ -125,15 +126,17 @@ public class MapScaleBar extends Layer {
}; };
} }
@Override @Override
public void onUpdate(MapPosition mapPosition, boolean changed) { public void onUpdate(MapPosition mapPosition, boolean changed) {
double latitude = MercatorProjection.toLatitude(mapPosition.y); double latitude = MercatorProjection.toLatitude(mapPosition.y);
if (!mRedrawNeeded) { if (!mRedrawNeeded) {
double latitudeDiff = Math.abs(mPrevLatitude - latitude); double scaleDiff = mPrevScale / mapPosition.scale;
if (latitudeDiff < LATITUDE_REDRAW_THRESHOLD) if (scaleDiff < 1.1 && scaleDiff > 0.9) {
return; double latitudeDiff = Math.abs(mPrevLatitude - latitude);
if (latitudeDiff < LATITUDE_REDRAW_THRESHOLD)
return;
}
} }
mPrevLatitude = latitude; mPrevLatitude = latitude;
@ -166,7 +169,6 @@ public class MapScaleBar extends Layer {
mRedrawNeeded = false; mRedrawNeeded = false;
} }
/** /**
* @return true if imperial units are used, false otherwise. * @return true if imperial units are used, false otherwise.
*/ */